Добавляем колонку «Валюта» в список документов по товару. УНФ 1.6
Клиент обратился с задачей — выводить колонку «Валюта» в списке документов по товару.
Сначала хотел залезть в запрос, но там сложный запрос по каждому виду документов.
Поступил проще — добавляю поле с валютой в таблицу документов и рассчитываю валюту после получения списка документов.
Рассчитываю не запросом, но там особой скорости не требуется, выводится по 100 документов.
Можно, конечно, оптимизировать и переписать на запрос, но не буду, не стоит того.
Расширение формы СписокДокументов обработки ДокументыПоКритериюОтбора выглядит так:
&НаСервере Процедура дор_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) дор_СоздатьПоляФормы(); КонецПроцедуры &НаСервере &После("ОбновитьТаблицуДокументовНаСервере") Процедура дор_ОбновитьТаблицуДокументовНаСервере(ВсеСтроки) дор_СоздатьПоляФормы(); Для Каждого Строка ИЗ ТаблицаДокументов Цикл Попытка Строка.дор_Валюта = Строка.Документ.ВалютаДокумента; Исключение КонецПопытки; КонецЦикла; КонецПроцедуры Процедура дор_СоздатьПоляФормы() Если Элементы.Найти("дор_Валюта") = Неопределено Тогда Реквизиты = Новый Массив; Реквизиты.Добавить(Новый РеквизитФормы("дор_Валюта", Новый ОписаниеТипов("СправочникСсылка.Валюты"), "ТаблицаДокументов", "Валюта", Истина)); ИзменитьРеквизиты(Реквизиты); Привязка = Элементы.ТаблицаДокументовВидОперации; Элемент = Элементы.Вставить("дор_Валюта", Тип("ПолеФормы"), Привязка.Родитель, Привязка); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.АвтоМаксимальнаяШирина = ложь; Элемент.РастягиватьПоГоризонтали = ложь; Элемент.Ширина = 4; Элемент.ПутьКДанным = "ТаблицаДокументов.дор_Валюта"; КонецЕсли; КонецПроцедуры
Пришлось вызывать создание элементов несколько раз, потому что почему-то сначала вызывается обновление таблицы документов а потом при создании на сервере.
Форма с валютой выглядит так:
Самое забавное, что 1С завела поле под валюту документа в этой таблице (с типом строка почему-то), но не выводит это поле:
И в запросе это в поле подставляется NULL, может рассчитывали в будущем доработать:
Среда: 1.6.27.167. Платформа: 8.3.20.1838. Объем: 0.8 час.
1 комментарий
[…] Я уже писал ранее, как дорабатывал список документов по товару в УНФ 1.6. […]