В процессе написания кода для отображения дополнительных вычисляемых полей в динамическом списке документов получились вот такие приемы (просто код, без комментариев).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) ТекДокумент = ДанныеСтроки.Ссылка; СуммаДокумента = ТекДокумент.Товары.Итог("СуммаСНДС"); СуммаБезнал = ТекДокумент.Оплата.Итог("СуммаОплаты"); СуммаНал = ?(СуммаДокумента > СуммаБезнал, СуммаДокумента - СуммаБезнал, 0); ОформлениеСтроки.Ячейки.СуммаДокумента.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.НаличнаяОплата.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.БезналичнаяОплата.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.СуммаДокумента.Текст = Формат(СуммаДокумента, "ЧДЦ=2; ЧН="); ОформлениеСтроки.Ячейки.НаличнаяОплата.Текст = Формат(СуммаНал, "ЧДЦ=2; ЧН="); ОформлениеСтроки.Ячейки.БезналичнаяОплата.Текст = Формат(СуммаБезнал, "ЧДЦ=2; ЧН="); //Определяем наличие ПКО Если ТекДокумент.ПолучитьОбъект().ПолучитьСвязанныйПКО() <> Неопределено Тогда ОформлениеСтроки.Ячейки.ЕстьПКО.ОтображатьКартинку = Истина; ОформлениеСтроки.Ячейки.ЕстьПКО.Картинка = БиблиотекаКартинок.ВыполненоУспешно32; КонецЕсли; КонецПроцедуры Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок) //Определяем наличие ПКО МассивДокументов = Новый Массив; Для каждого ТекСтрока Из ОформленияСтрок Цикл МассивДокументов.Добавить(ТекСтрока.ДанныеСтроки.Ссылка); КонецЦикла; Запрос = Новый Запрос("ВЫБРАТЬ Основание ИЗ РегистрСведений.АА_СвязанныеДокументы КАК СД ГДЕ СД.Основание В (&Документы)"); Запрос.УстановитьПараметр("Документы", МассивДокументов); Результат = Запрос.Выполнить().Выгрузить(); Для Каждого ТекСтрока Из ОформленияСтрок Цикл Ссылка = ТекСтрока.ДанныеСтроки.Ссылка; ТекСтрока.Ячейки.ЕстьПКО.ЗначениеКартинки = Результат.Найти(Ссылка,"Основание") <> Неопределено; КонецЦикла; КонецПроцедуры |