Опять вывод дополнительной колонки в табличную часть документа. УТ11

Меня попросили вывести в документ «Заказ поставщику» колонку со свойством номенклатуры — количество упаковок.

Конечно, такую колонку можно вывести и без программирования через настройки формы. Но делать ее каждому пользователю сложно, проще запрограммировать.

И тут я допустил одну ошибку, над которой сразу же и посмеялся.

Я уже было готов был менять динамический список табличной части, но зашел в документ и обнаружил, что там уже в расширении имеется мой код по добавлению колонки «Остаток». Я об этом рассказывал в статье про добавление колонки Остаток.

Увидев свой же код, я понял, что всё забыл и конечно же, никакой динамический список тут не нужен, все сделал по аналогии.

В итоге получился такой код:

&НаСервере
Процедура дор_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    НовыеКолонки = Новый Массив;
    НовыеКолонки.Добавить(Новый РеквизитФормы("дор_КоличествоВУпаковке", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(10, 2)), "Объект.Товары", "В уп."));
    ИзменитьРеквизиты(НовыеКолонки); // ключевая процедура, которая добавляет ревизиты
    
    
    Элемент = Элементы.Вставить("дор_КоличествоВУпаковке", Тип("ПолеФормы"), Элементы.Товары, Элементы.ТоварыКоличествоУпаковок);
    Элемент.Вид = ВидПоляФормы.ПолеВвода;
    Элемент.ПутьКДанным = "Объект.Товары.дор_КоличествоВУпаковке";
    Элемент.ТолькоПросмотр = истина;
	
    дор_ПолучитьДопСвойстваТоваров(); //Дополнительные свойства
КонецПроцедуры

&НаСервере
Процедура дор_ПолучитьДопСвойстваТоваров(ИдентификаторСтроки = Неопределено) Экспорт
    
    ТЗ = Объект.Товары.Выгрузить(, "НомерСтроки, Номенклатура");
    З = Новый Запрос();
    З.Текст =
    "ВЫБРАТЬ
    |    Т.НомерСтроки КАК НомерСтроки,
    |    Т.Номенклатура КАК Номенклатура
    |ПОМЕСТИТЬ ТН
    |ИЗ
    |    &ТЗ КАК Т
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТН.НомерСтроки КАК НомерСтроки,
    |    Т.Значение КАК дор_КоличествоВУпаковке
    |ИЗ
    |    ТН КАК ТН
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК Т
    |        ПО ТН.Номенклатура = Т.Ссылка
    |            И (Т.Свойство = &СвойствоКоличествоВУпаковке)";
    СвойствоКоличествоВУпаковке = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("ИдентификаторДляФормул", "КоличествоВУпаковкеОбщ");
    З.УстановитьПараметр("СвойствоКоличествоВУпаковке", СвойствоКоличествоВУпаковке);
    З.УстановитьПараметр("ТЗ", ТЗ);
    
    Выборка = З.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Зн = Выборка.дор_КоличествоВУпаковке;
        Объект.Товары[Выборка.НомерСтроки - 1].дор_КоличествоВУпаковке = Зн;
    КонецЦикла;

КонецПроцедуры


&НаКлиенте
Процедура дор_ТоварыПриИзмененииПосле(Элемент)
    дор_ПолучитьДопСвойстваТоваров();
КонецПроцедуры

Форма выглядит так:

Среда: УТ 11.4.13.46
Объем план: 0.6 час