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

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