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