Добавить в корзинуПозвонить
Найти в Дзене

Расширения конфигурации 1С:ERP

Внесение изменений, как небольших, так и масштабных, в типовую конфигурацию, зачастую, является трудозатратным процессом. Сложности возникают на каждом этапе разработки: от первичного внесения изменений до последующих обновлений конфигурации. Если говорить о крупных проектах, где изменения затрагивают большое количество взаимосвязанных объектов — затраты на поддержание актуальности доработок увеличиваются в разы. Но есть ли возможность внести точечные изменения в типовой механизм и меньше беспокоиться за поддержание актуальности доработки? В данной статье мы рассмотрим плюсы и минусы применения расширений для адаптации и доработки систем без внесения изменений в исходную конфигурацию. Простым языком, расширение конфигурации — это механизм, позволяющий подменить/ дополнить стандартное поведение системы без изменения основной конфигурации. Расширений, подключаемых к одной конфигурации, может быть несколько — они будут применяться последовательно в зависимости от назначения (Исправление -
Оглавление

Внесение изменений, как небольших, так и масштабных, в типовую конфигурацию, зачастую, является трудозатратным процессом. Сложности возникают на каждом этапе разработки: от первичного внесения изменений до последующих обновлений конфигурации. Если говорить о крупных проектах, где изменения затрагивают большое количество взаимосвязанных объектов — затраты на поддержание актуальности доработок увеличиваются в разы. Но есть ли возможность внести точечные изменения в типовой механизм и меньше беспокоиться за поддержание актуальности доработки?

Designed by Freepik. Источник: www.freepik.com
Designed by Freepik. Источник: www.freepik.com

В данной статье мы рассмотрим плюсы и минусы применения расширений для адаптации и доработки систем без внесения изменений в исходную конфигурацию.

В каких случаях применять расширения конфигурации 1С

Краткая теоретическая справка

Простым языком, расширение конфигурации — это механизм, позволяющий подменить/ дополнить стандартное поведение системы без изменения основной конфигурации. Расширений, подключаемых к одной конфигурации, может быть несколько — они будут применяться последовательно в зависимости от назначения (Исправление -> Адаптация -> Дополнение).

-2

Получить консультацию по продуктам 1С вы можете -> здесь

Мы несколько раз упомянули о том, что при работе с расширениями программист не изменяет объекты основной конфигурации, а точечно вносит изменения в заимствованные объекты и модули. Почему это важно?

  • Упрощение обновления типовой базы. Мы не рискуем потерять доработки, сделанные непосредственно в типовых объектах и модулях, исключаем конфликты, возникающие в процессе снятия объектов с поддержки, а также сокращаем время процесса сравнения и объединения конфигураций.
  • Возможность выпуска срочных обновлений, необходимых для исправления ошибок/ корректной работы функционала. Полноценное обновление базы — процесс, который может затянуться на несколько часов, что может быть совсем некстати.
  • Удобство в передаче расширения заказчику. Готовое расширение сохраняется в небольшой по объему файл, который можно подключить к базе даже в пользовательском режиме. Это упрощает жизнь как заказчику, так и разработчику.

Однако, использование расширений не всегда позволяет избежать изменения исходной конфигурации. Далее поговорим о возможностях и ограничениях данного механизма.

Возможности механизма расширений конфигурации

Расширения, с первого взгляда, похожи на обычную конфигурацию — те же объекты, которые можно создавать, редактировать и удалять. Поскольку расширения являются дополнением к существующей конфигурации, реализована возможность заимствования объектов.

Заимствованные объекты конфигурации — объекты основной конфигурации, добавленные в расширение разработчиком. Заимствование объектов необходимо в случае выполнения доработок уже существующего функционала/ в случае, если существует связь между новыми объектами расширения и уже существующими объектами основной конфигурации.

На данный момент реализована возможность заимствования большинства объектов конфигурации (информация актуальна для платформы 8.3.25). Если объект не может быть собственным объектом расширения ‑ его расширение также не поддерживается.

-3

Статьи и новости от наших экспертов 1С:ERP -> перейти в Телеграм

Объекты, недоступные для расширения:

  • Общие реквизиты, являющиеся разделителями;
  • Хранилища настроек;
  • Языки;
  • Журналы документов.

Для создания в расширении недоступны следующие объекты:

  • Не поддерживается изменение структуры регистров всех видов. Поддерживается только расширение состава регистраторов.
  • Не поддерживается добавление реквизитов и табличных частей для:
  1. плана видов характеристик;
  2. плана счетов;
  3. плана видов расчетов.
Стоит обращать внимание на режим совместимости конфигурации. Режим совместимости показывает версию платформы, возможности которой используются при разработке конфигурации. Это важно, так как именно с релизом платформы 1С появляются новые возможности, в том числе и расширенный список доступных для заимствования объектов (к примеру, в режиме совместимости 8.3.25 список доступных для расширения объектов увеличен — добавлена возможность заимствования бизнес — процессов, однако не все могут пользоваться данным функционалом, так как большинство типовых конфигураций еще не подняли режим совместимости до 8.3.25).
Источник 1С:ERP
Источник 1С:ERP

Принципы использования расширений при доработке типовых конфигураций 1С

Правильно указывать назначение расширения

Расширение может иметь одно из следующих назначений:

  • Исправление — временные расширения для срочного исправления ошибок конфигурации;
  • Адаптация — доработка основной конфигурации под нужды клиента;
  • Дополнение — разработка новых возможностей системы без изменения типовых объектов.
Источник 1С:ERP
Источник 1С:ERP

Создавать хранилища для расширений

Для расширения можно и нужно создавать хранилище, аналогично хранилищу конфигурации. Это упростит командную разработку и позволит отслеживать изменения в расширении. Исключением являются расширения с назначением исправление.

Минимизировать количество заимствованных объектов

Не следует добавлять в расширение объекты, которые не будут использоваться в разработке. Это усложнит поиск доработок в расширении и повысит шанс ложного срабатывания проверки контроля изменений при применении расширения.

Создавать новые объекты в основной конфигурации

Расширения позволяют создавать новые объекты напрямую в расширении, но при этом появляются риски потери сохраняемых в базе данных. При удалении расширения из конфигурации данные будут также удалены. Повторная установка расширения не вернет данные в базу. Поэтому сохраняемые данные (например, новый справочник, новый реквизит типового документа) рекомендуется добавлять непосредственно в основную конфигурацию.

Правильно выбирать аннотации расширяемого метода

При заимствовании метода основной конфигурации платформа предложит 4 варианта:

  • Перед — код из расширения будет выполнен перед выполнением основного метода;
  • После — код из расширения будет выполнен после выполнения основного метода;
  • Вместо — код из расширения полностью заменит основной метод;
  • Изменение и контроль — в расширение автоматически попадет полный текст основного метода. Далее разработчик, используя директивы препроцессора #Вставка … #КонецВставки и #Удаление … #КонецУдаления, вносит изменения в код.
Источник 1С:ERP
Источник 1С:ERP

Особенности аннотаций:

  • Аннотации Перед и После недоступны для функций;
  • Вместо — потенциально опасная аннотация, она не отслеживает наличие изменений в тексте основного метода. Рекомендуется использовать только для расширений с назначением исправление;
  • Изменение и контроль — самая часто используемая аннотация при адаптации конфигураций. Такой подход позволяет в автоматическом режиме отслеживать изменения основного метода. При наличии изменений при запуске платформа не применит расширении и оповестит разработчика о наличии изменений.
-7

Получить консультацию по продуктам 1С вы можете -> здесь

Объединять расширения

Так как разработчик не может напрямую влиять на порядок применения расширений с одинаковым назначением, могут возникнуть ошибки и неявное поведение системы. Поэтому расширения с типом адаптация рекомендуется со временем объединять по области доработок, со временем уменьшая общее количество расширений. Кроме того, этот шаг уменьшит количество хранилищ расширений и упростит последующую доработку.

Заключение

В данной статье мы затронули общие моменты, необходимые для начального погружения в работу с расширениями. Инструмент продолжает развиваться, а его функционал — расширяться. Большинство объектов, существующих в дереве объектов конфигурации уже можно использовать в расширениях, но не забывайте обращать внимание на то, с каким режимом совместимости вы работаете. Изменения касаются не только визуальной конструкции, но и методов работы с расширениями во встроенном языке.

Если вам понравилась статья и вы считаете, что она может быть полезна другим, пожалуйста, поставьте лайк!👍🏻 Ваша поддержка вдохновляет нас создавать еще больше качественного контента и делиться ценными знаниями. Спасибо!