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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Наши разработки:
Конструктор прайс-листов (прайс-заказов) для УТ11, КА2, ERP2

Конструктор прайс-листов (прайс-заказов) для УТ11, КА2, ERP2

Расширение позволяет формировать произвольные прайс-листы с выгрузкой в Excel и обратной загрузкой в 1С (после обработки прайс-листа клиентом). Конструктор также ...
Далее
Помощник продаж (расширение для УТ11, КА2, ERP2)

Помощник продаж (расширение для УТ11, КА2, ERP2)

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

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

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

Розница: Расширенная форма списка номенклатуры

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

Контроль минимальной цены в заказах и реализациях (УТ11, КА2, ERP2)

Расширение конфигурации позволяет быстро решить проблему продажи товара по цене ниже закупочной или цены себестоимости. Контроль будет работать в разрезе ...
Далее
Удаление записей регистра сведений (универсальная обработка)

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

Обработка позволяет по расширенному отбору удалять записи в регистре сведений. Если отбор не задан - будет выполнена полная очистка. Поддерживается ...
Далее

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

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

5 × 3 =