Программирование и доработка 1С: добавление реквизитов, функций и модулей

Иван Корнев·17 августа 2026·4 мин

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

Оглавление

Способы добавления реквизитов

Существует три основных подхода к добавлению полей в объекты 1С, выбор которых зависит от требуемой глубины изменений:

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

Доработка функций и общих модулей

Модификация программного кода в современных стандартах 1С выполняется преимущественно через расширения:

  • Доработка существующих модулей. Чтобы изменить функционал типового модуля, его необходимо добавить в расширение через контекстное меню в конфигураторе («Добавить в расширение»). При этом можно переопределять существующие процедуры или дополнять их, используя директивы компиляции &Перед и &После для внедрения своего кода до или после основного алгоритма.
  • Изменение функций общих модулей. Для доработки конкретной функции общего модуля следует открыть этот модуль в расширении и воспользоваться командой добавления в расширение, установив курсор на заголовок нужной функции. Это создает копию метода в расширении, которую можно модифицировать без изменения оригинального кода поставщика.
  • Создание новых общих модулей. Для реализации нового функционала создаются собственные общие модули в расширении или основной конфигурации. Согласно стандартам разработки, общие модули должны объединять процедуры и функции по единому признаку, а их имена должны отражать назначение содержащегося в них кода. При создании модуля важно корректно настроить свойства доступности (Клиент, Сервер, Вызов сервера), чтобы обеспечить возможность вызова функций из нужных контекстов.

Рекомендации и лучшие практики

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

Частые ошибки

  • Прямое изменение оригинального кода поставщика вместо использования расширений, что приводит к конфликтам и сложностям при обновлении конфигурации.
  • Дублирование программного кода в формах и менеджерах объектов вместо выноса логики в общие модули для переиспользования.
  • Некорректная настройка свойств доступности (Клиент, Сервер, Вызов сервера) при создании новых общих модулей, из-за чего функции становятся недоступными из требуемых контекстов выполнения.
  • Отсутствие закрывающих комментариев при добавлении процедур и переменных в чужие модули, что нарушает стандарты оформления кода.

FAQ

Как добавить реквизит без программирования?
Использовать штатный механизм «Дополнительные реквизиты и сведения» в разделе «Администрирование» → «Общие настройки» типовых конфигураций на базе БСП. Это позволяет добавлять поля через пользовательский интерфейс без написания кода.

Как изменить функцию общего модуля, не трогая код поставщика?
Необходимо добавить модуль в расширение, установить курсор на заголовок нужной функции и выполнить команду добавления в расширение. Это создаст безопасную копию метода для доработки без изменения оригинального кода.

Зачем использовать директивы &Перед и &После?
Эти директивы компиляции позволяют внедрять собственный код до или после выполнения основного алгоритма типовой процедуры при доработке модулей в расширении, сохраняя целостность базовой логики.