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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Мы постоянно общаемся с нашими клиентами и обсуждаем как можно упростить их работу. Помощник закупок - это не просто отчет! ...

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

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