Как правильно добавить собственную процедуру в расширение конфигурации 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Способ 1: Добавление процедуры в заимствованный модуль

Если вам нужно дополнить логику уже существующего модуля (например, модуля объекта документа), самым простым решением будет заимствование этого модуля в ваше расширение.

  1. Откройте расширение в конфигураторе.
  2. Перейдите в ветку «Заимствованные» и добавьте туда нужный модуль (например, Модуль объекта документа).
  3. Откройте этот модуль для редактирования. Вы увидите, что в расширение скопировалась структура исходного кода.
  4. Допишите вашу новую процедуру прямо в конец модуля.

Важно помнить: если вы просто добавили процедуру, она не выполнится сама по себе. Чтобы вызвать ее из другой части кода, она должна быть доступна в области видимости. Для использования в других модулях добавьте ключевое слово Экспорт.


Процедура МояНоваяПроцедура() Экспорт
    // Ваш код здесь
КонецПроцедуры

Способ 2: Использование аннотаций для расширения типового кода

Часто стоит задача вызвать ваш код сразу после или перед типовой процедурой. Для этого в платформе 1С предусмотрены специальные аннотации. Рассмотрим на примере типовой процедуры.

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


&После("ТиповаяПроцедура")
Процедура Расш_МояПроцедура()
    // Ваш код, который отработает после завершения типовой процедуры
КонецПроцедуры

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

Способ 3: Создание общего модуля в расширении

Если ваша процедура должна быть универсальной и вызываться из разных мест конфигурации, создание общего модуля — это «золотой стандарт» разработки. Это позволяет хранить код в одном месте и не загромождать заимствованные модули.

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

Почему моя процедура не «видится» системой?

Если вы добавили код, но получаете ошибку о том, что процедура не найдена, проанализируйте следующие возможные причины:

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

← На главную