Программирование и доработка 1С: добавление реквизитов, функций и модулей
Программирование и доработка 1С при добавлении реквизитов, функций и модулей опирается на механизм расширений и штатные средства БСП. Такой подход позволяет изменять метаданные и логику работы без снятия конфигурации с поддержки, минимизируя риски при обновлении типовых решений.
Оглавление
Способы добавления реквизитов
Существует три основных подхода к добавлению полей в объекты 1С, выбор которых зависит от требуемой глубины изменений:
- Дополнительные реквизиты (без программирования). В типовых конфигурациях на базе БСП предпочтительным способом является использование механизма «Дополнительные реквизиты и сведения». Настройка выполняется через раздел «Администрирование» → «Общие настройки». Этот метод не требует снятия конфигурации с поддержки или написания кода, позволяя добавлять поля в справочники и документы непосредственно через пользовательский интерфейс.
- Через расширения конфигурации. Если необходимо добавить полноценный реквизит метаданных, рекомендуется использовать механизм расширений. В конфигураторе создается расширение, в него добавляется целевой объект (справочник или документ), и через контекстное меню выбирается команда «Добавить» для создания нового реквизита. Это сохраняет возможность обновления типовой конфигурации без снятия с поддержки.
- Программное создание на форме. Для динамического управления интерфейсом реквизиты формы создаются программно. Оптимальным местом для этого является процедура
ПриСозданииНаСервере, где используется конструкторНовый РеквизитФормыс указанием имени и типа данных. Также возможно программное добавление элементов формы, связанных с этими реквизитами, для их отображения пользователю.
Доработка функций и общих модулей
Модификация программного кода в современных стандартах 1С выполняется преимущественно через расширения:
- Доработка существующих модулей. Чтобы изменить функционал типового модуля, его необходимо добавить в расширение через контекстное меню в конфигураторе («Добавить в расширение»). При этом можно переопределять существующие процедуры или дополнять их, используя директивы компиляции
&Переди&Последля внедрения своего кода до или после основного алгоритма. - Изменение функций общих модулей. Для доработки конкретной функции общего модуля следует открыть этот модуль в расширении и воспользоваться командой добавления в расширение, установив курсор на заголовок нужной функции. Это создает копию метода в расширении, которую можно модифицировать без изменения оригинального кода поставщика.
- Создание новых общих модулей. Для реализации нового функционала создаются собственные общие модули в расширении или основной конфигурации. Согласно стандартам разработки, общие модули должны объединять процедуры и функции по единому признаку, а их имена должны отражать назначение содержащегося в них кода. При создании модуля важно корректно настроить свойства доступности (Клиент, Сервер, Вызов сервера), чтобы обеспечить возможность вызова функций из нужных контекстов.
Рекомендации и лучшие практики
- Соблюдение стандартов. При доработке типовых конфигураций следует придерживаться правил оформления кода, например, ставить закрывающие комментарии при добавлении процедур и переменных в чужие модули.
- Изоляция доработок. Использование расширений является приоритетным методом, так как оно минимизирует риски при обновлении системы и упрощает сопровождение.
- Переиспользование кода. Новый функционал следует выносить в общие модули для возможности многократного использования из различных объектов системы, избегая дублирования кода в формах и менеджерах объектов.
Частые ошибки
- Прямое изменение оригинального кода поставщика вместо использования расширений, что приводит к конфликтам и сложностям при обновлении конфигурации.
- Дублирование программного кода в формах и менеджерах объектов вместо выноса логики в общие модули для переиспользования.
- Некорректная настройка свойств доступности (Клиент, Сервер, Вызов сервера) при создании новых общих модулей, из-за чего функции становятся недоступными из требуемых контекстов выполнения.
- Отсутствие закрывающих комментариев при добавлении процедур и переменных в чужие модули, что нарушает стандарты оформления кода.
FAQ
Как добавить реквизит без программирования?
Использовать штатный механизм «Дополнительные реквизиты и сведения» в разделе «Администрирование» → «Общие настройки» типовых конфигураций на базе БСП. Это позволяет добавлять поля через пользовательский интерфейс без написания кода.
Как изменить функцию общего модуля, не трогая код поставщика?
Необходимо добавить модуль в расширение, установить курсор на заголовок нужной функции и выполнить команду добавления в расширение. Это создаст безопасную копию метода для доработки без изменения оригинального кода.
Зачем использовать директивы &Перед и &После?
Эти директивы компиляции позволяют внедрять собственный код до или после выполнения основного алгоритма типовой процедуры при доработке модулей в расширении, сохраняя целостность базовой логики.