Использование аннотации &После на примерах

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

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

Теперь давайте разберем примеры использования аннотации &После в общих модулях и модулях форм. Для этого Вам необходимо будет создать произвольное расширение конфигурации.

Использование в общих модулях

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

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

В этом примере мы будем использовать аннотацию &После для следующей процедуры:

Процедура ЗаполнитьКонтрагентаПартнераПоУмолчанию(Знач Партнер, Контрагент, ПерезаполнятьКонтрагента = Ложь) Экспорт
	
	Если ЗначениеЗаполнено(Партнер)
		И (ПерезаполнятьКонтрагента Или Не ЗначениеЗаполнено (Контрагент)) Тогда
		
		Если ЗначениеЗаполнено(Контрагент) Тогда
			Если КонтрагентДоступенДляВыбораДляПартнера(Партнер, Контрагент) Тогда
				Возврат;
			КонецЕсли;
		КонецЕсли;
		
		КонтрагентПоУмолчанию = ПолучитьКонтрагентаПартнераПоУмолчанию(Партнер);
		
		Если КонтрагентПоУмолчанию <> Неопределено Тогда
			Контрагент = КонтрагентПоУмолчанию;
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

При использовании аннотации &После Вам не нужно использовать текст из основной процедуры — Вы используете только наименование процедуры и ее параметры. Ниже показан пример, в котором мы заполняем контрагента с помощью своей функции:

&После ("ЗаполнитьКонтрагентаПартнераПоУмолчанию")
Процедура ТН_ЗаполнитьКонтрагентаПартнераПоУмолчанию(Знач Партнер, Контрагент, ПерезаполнятьКонтрагента = Ложь) Экспорт
	
	Контрагент = ПолучитьКонтрагентаПоУмолчанию(Партнер);
	
КонецПроцедуры

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

Использование в формах объектов

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

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

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

&НаСервере
Процедура ТН_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	// Вставить содержимое обработчика.
КонецПроцедуры

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

Наши разработки:
Учет сертификатов номенклатуры в УНФ (печать реестра сертификатов)

Учет сертификатов номенклатуры в УНФ (печать реестра сертификатов)

Расширение конфигурации добавит возможность вести учет сертификатов номенклатуры в конфигурации "Управление нашей фирмой, редакция 1.6". Вы сможете организовать учет сертификатов ...
Обмен 1С и OZON (УТ11, ERP2, КА2, БП3, УНФ, Розница)

Обмен 1С и OZON (УТ11, ERP2, КА2, БП3, УНФ, Розница)

Расширение конфигурации позволяет выполнять автоматический обмен между 1С и OZON и совместимо с актуальными конфигурациями Управление торговлей 11, ERP Управление ...
Расширенная форма заказа клиента для УТ11, КА2, ERP2

Расширенная форма заказа клиента для УТ11, КА2, ERP2

Расширение конфигурации позволяет выводить остатки по всем необходимым складам, отображать цены номенклатуры и дополнительные колонки номенклатуры прямо в списке товаров ...
Управление запасами: Товары поставщиков (УТ11, КА2, ERP2)

Управление запасами: Товары поставщиков (УТ11, КА2, ERP2)

Функционал расширения конфигурации позволяет в удобной форме автоматически загружать прайс-листы поставщиков в 1С, анализировать загруженные данные, автоматически устанавливать цены с ...
Изменение записей регистра сведений (универсальная обработка)

Изменение записей регистра сведений (универсальная обработка)

Обработка дает возможность массово или точечно изменять записи регистра сведений. Поддерживается изменение записей в независимых регистрах и регистрах с подчинением ...
Остатки товаров в РМК (УТ11, КА2, ERP2)

Остатки товаров в РМК (УТ11, КА2, ERP2)

Расширение конфигурации добавит возможность просматривать остатки по складу для выбранных в РМК (рабочее место кассира) товаров. При этом Вы сможете ...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *