Свой способ заполнения табличной части документа с срабатыванием процедуры ПриИзменении
Задача состояла в программном заполнении табличной части документа. При этом чтобы срабатывала процедура ПриИзменении при внесении значения в колонку Номенклатура.
- Описание
- Подробнее
Описание
После неудачного применения различных методик появилась собственная идея реализации данной задачи. Вот пример:
ДокПоступления = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ФормаДокПоступления = ДокПоступления.ПолучитьФорму();
ФормаДокПоступления.Открыть();
ПервоначальноПриАктивизацииСтроки = ФормаДокПоступления.ЭлементыФормы.Товары.ПолучитьДействие(«ПриАктивизацииСтроки»);
ПолеВводаПриИзменении = ФормаДокПоступления.ЭлементыФормы.Товары.Колонки.Номенклатура.ЭлементУправления.ПолучитьДействие(«ПриИзменении»);
ФормаДокПоступления.ЭлементыФормы.Товары.УстановитьДействие(«ПриАктивизацииСтроки», ПолеВводаПриИзменении);
Для каждого СтрокаТЗ Из ТЗКЗаполнению Цикл
НоваяСтрокаТовары = ДокПоступления.Товары.Добавить();
НоваяСтрокаТовары.Номенклатура = СтрокаТЗ.Номенклатура;
НоваяСтрокаТовары.Количество = СтрокаТЗ.Количество;
НоваяСтрокаТовары.Цена = СтрокаТЗ.Цена;
ФормаДокПоступления.ЭлементыФормы.Товары.ТекущаяСтрока = НоваяСтрокаТовары;
КонецЦикла;
ФормаДокПоступления.ЭлементыФормы.Товары.УстановитьДействие(«ПриАктивизацииСтроки», ПервоначальноПриАктивизацииСтроки);
ДокПоступления.Записать(РежимЗаписиДокумента.Проведение);
ФормаДокПоступления.Закрыть();
ФормаДокПоступления = Неопределено;
Суть заключается в подмене действия, происходящего при активизации строки, на действие, происходящее при изменении Номенклатуры. Потом действие возвращается назад.

