Табличное поле ~ Дополнительные колонки в динамическом списке В процессе написания кода для отображения дополнительных вычисляемых полей в динамическом списке документов получились вот такие приемы (просто код, без комментариев).
Код 1C v 8.х Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ТекДокумент = ДанныеСтроки. Ссылка;
СуммаДокумента = ТекДокумент. Товары. Итог( "СуммаСНДС" ) ;
СуммаБезнал = ТекДокумент. Оплата. Итог( "СуммаОплаты" ) ;
СуммаНал = ? ( СуммаДокумента > СуммаБезнал, СуммаДокумента - СуммаБезнал, 0 ) ;
ОформлениеСтроки. Ячейки. СуммаДокумента. ОтображатьТекст = Истина ;
ОформлениеСтроки. Ячейки. НаличнаяОплата. ОтображатьТекст = Истина ;
ОформлениеСтроки. Ячейки. БезналичнаяОплата. ОтображатьТекст = Истина ;
ОформлениеСтроки. Ячейки. СуммаДокумента. Текст = Формат( СуммаДокумента, "ЧДЦ=2; ЧН=" ) ;
ОформлениеСтроки. Ячейки. НаличнаяОплата. Текст = Формат( СуммаНал, "ЧДЦ=2; ЧН=" ) ;
ОформлениеСтроки. Ячейки. БезналичнаяОплата. Текст = Формат( СуммаБезнал, "ЧДЦ=2; ЧН=" ) ;
Если ТекДокумент. ПолучитьОбъект( ) . ПолучитьСвязанныйПКО( ) < > Неопределено Тогда
ОформлениеСтроки. Ячейки. ЕстьПКО. ОтображатьКартинку = Истина ;
ОформлениеСтроки. Ячейки. ЕстьПКО. Картинка = БиблиотекаКартинок. ВыполненоУспешно32 ;
КонецЕсли ;
КонецПроцедуры
Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
МассивДокументов = Новый Массив;
Для каждого ТекСтрока Из ОформленияСтрок Цикл
МассивДокументов. Добавить( ТекСтрока. ДанныеСтроки. Ссылка) ;
КонецЦикла ;
Запрос = Новый Запрос( "ВЫБРАТЬ Основание ИЗ РегистрСведений.АА_СвязанныеДокументы КАК СД ГДЕ СД.Основание В (&Документы)" ) ;
Запрос. УстановитьПараметр( "Документы" , МассивДокументов) ;
Результат = Запрос. Выполнить( ) . Выгрузить( ) ;
Для Каждого ТекСтрока Из ОформленияСтрок Цикл
Ссылка = ТекСтрока. ДанныеСтроки. Ссылка;
ТекСтрока. Ячейки. ЕстьПКО. ЗначениеКартинки = Результат. Найти( Ссылка, "Основание" ) < > Неопределено ;
КонецЦикла ;
КонецПроцедуры
Категория:
Работа с Формой (Диалог) и её элементами Выборка документа по номеру и вывод на Печать, в Табличный Документ Код 1C v 7.x
Процедура Печать()
Если ( ПустоеЗначение( ДатаНач) = 1 ) или ( ПустоеЗначение( ДатаКон) = 1 ) Тогда
Предупреждение( "Не задан период отчета" ) ;
Возврат ;
КонецЕсли ;
Заг= "За период с " + ДатаНач+ " по " + ДатаКон;
Таб= СоздатьОбъект( "Таблица" ) ;
Таб. ВывестиСекцию( "Шапка" ) ;
Док= СоздатьОбъект( "Документ" ) ;
Док. ВыбратьДокументы( ДатаНач, ДатаКон) ;
ИтогоПриход= 0 ;
ИтогоРасход= 0 ;
Чеков= 0 ;
ТЗврем = СоздатьОбъект( "ТаблицаЗначений" ) ;
ТЗврем. НоваяКолонка( "Док" ) ;
ТЗврем. НоваяКолонка( "Дата" ) ;
ТЗврем. НоваяКолонка( "Номер" ) ;
ТЗврем. НоваяКолонка( "Приход" ) ;
ТЗврем. НоваяКолонка( "Расход" ) ;
ТЗврем. НоваяКолонка( "Чеков" ) ;
Пока Док. ПолучитьДокумент( ) = 1 Цикл
Если Док. Проведен( ) = 0 Тогда
Продолжить;
ИначеЕсли ( Док. Вид( ) = "ПриходныйОрдерТБ" ) и ( флПКО= 1 ) Тогда
Приход= Док. Сумма;
Расход= 0 ;
ИначеЕсли ( Док. Вид( ) = "БезналичнаяОплата" ) и ( флБН= 1 ) Тогда
Приход= Док. Сумма;
Расход= 0 ;
ИначеЕсли ( Док. Вид( ) = "РасходныйОрдерТБ" ) и ( флРКО= 1 ) Тогда
Приход= 0 ;
Расход= Док. Сумма;
ИначеЕсли Док. Вид( ) = "Чек" Тогда
Если ( Док. Тип= 1 ) и ( флЧекиП= 1 ) Тогда
Приход= Док. Сумма;
Расход= 0 ;
Чеков= Чеков+ 1 ;
ИначеЕсли ( Док. Тип= 2 ) и ( флЧекиВ= 1 ) Тогда
Приход= 0 ;
Расход= Док. Сумма;
Чеков= Чеков+ 1 ;
Иначе
Продолжить;
КонецЕсли ;
Иначе
Продолжить;
КонецЕсли ;
НовСТР= ТЗврем. НоваяСтрока( ) ;
ТЗврем. Док = Док;
ТЗврем. Дата = Док. ДатаДок;
ТЗврем. Номер = Док. НомерДок;
ТЗврем. Приход = Приход;
ТЗврем. Расход = Расход;
ТЗврем. Чеков = Чеков;
ИтогоПриход= ИтогоПриход+ Приход;
ИтогоРасход= ИтогоРасход+ Расход;
КонецЦикла ;
ТЗврем. Сортировать( "Номер" ) ;
ТЗврем. ВыбратьСтроки( ) ;
Пока ТЗврем. ПолучитьСтроку( ) = 1 Цикл
Док= ТЗврем. Док;
Приход= ТЗврем. Приход;
Расход= ТЗврем. Расход;
Таб. ВывестиСекцию( "Строка" ) ;
КонецЦикла ;
Таб. ВывестиСекцию( "Итого" ) ;
Таб. ТолькоПросмотр( 1 ) ;
Таб. Показать( "Отчет по кассе" ) ;
КонецПроцедуры
Категория:
Документы