Найти в Дзене
Будни одинэсника | 1С

Как работать с аннотацией &ИзменениеИКонтроль в расширении 1С?

При создании расширений бывают случаи, когда вам нужно полностью заменить какой-то метод основной конфигурации собственным методом. Для этого вы можете использовать аннотацию &Вместо. В таком случае, как бы ни изменялась типовая конфигурация, будет работать только ваш метод. Другими словами вы полностью берёте ответственность за работу расширяемого метода на себя.

Но бывают такие ситуации, когда вы не хотите полностью менять поведение метода конфигурации, а хотите лишь немного подкорректировать его. Так, чтобы основное «содержание» метода менялось бы вместе с изменениями конфигурации, и в то же время в нём сохранялись ваши небольшие изменения. Вот для таких целей используется аннотация &ИзменениеИКонтроль.

Основная проблема при использовании &Вместо это необходимость самостоятельно отслеживать изменения в типовом методе. Использование аннотации &ИзменениеИКонтроль упрощает обновление, так как за изменениями будет следить платформа и в случае изменения кода в заимствованной процедуре платформа сообщит об этом.

Давайте посмотрим как все работает

1. Для этого на нужной процедуре кликните правой клавишей мыши и в контекстном меню выберем пункт — Добавить в расширение:

Добавление метода в расширение
Добавление метода в расширение

2. В качестве типа вызова выбираем пункт — Вызвать вместо (с контролем)

-3

3. В итоге в модуль расширения будет добавлен процедура с аннотацией &ИзменениеИКонтроль:

-4

4. Для изменения процедуры мы можем использовать специальные вставки:

  • #Удаление и #КонецУдаления — Используется для удаления кода типовой конфигурации. Таким образом, весь код, который будет обрамлен этими вставками будет игнорироваться при компиляции модуля;
  • #Вставка и #КонецВставки — Используется для добавления своего кода;

5. Давайте изменим процедуру:

-5

Получается, что мы заменили всего одну строчку кода, если в остальную часть кода будет внесено изменение, то платформа отследить это и предупредит нас.