Версия для печати темы (https://pro1c.org.ua/index.php?s=ef5cb8efbe9e4024e03a519cda35fc3e&showtopic=51906)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Вывод табличного поля на печать через ПостроительОтчётов

Автор: Yevhenii_S 09.05.19, 10:17

Добрый день колеги.
Столкнулся я давече с такой штукой как ПостроительОтчётов
Платформа - 1С:Предприятие 8.2 (8.2.19.130)
Конфа переписаная на основе "Управление торговым предприятием для Украины", редакция 1.2.
Разработка конфигурации: "ABBYY Ukraine", 2007-2015 (1.2.29.1)

Описание задачи:
Есть обработка для работы с "куском" номенклатуры. На форме лежит ТабличноеПоле с типом СправочникСписок.Номенклатура, добавил колонки, вывожу остатки по двум складам, вроде всё красиво.



Нужно вывести текущие показатели на отчёт
Стандартная процедура ВывыстиСписок отрабатыват нормально, вот только вид отчёта меня не устраивает


Набросал макет, вывожу его в новый ТабличныйДокумент и пробую подянуть данные с ТабличногоПоля через ПостроительОтчётов.
Всё вроде отрабатывает, да вот только данные выводит не те что на экране, а те что были бы в корне этого ТабПоля(точнее наивысшая иерархия СправочникСписок.Номенклатура)



Толи дело в отборе то ли в источнике данных, может вообще подход ложный. Помогите советом. Буду благодарен

Код своего вывода привожу:

Элемент = ЭлементыФормы.ТабПолеДерево.ТекущаяСтрока;
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Очистить();
    ТабДок.ПолеСлева=0;
    ТабДок.ПолеСправа=0;
    ТабДок.ПолеСнизу=0;
    ТабДок.НижнийКолонтитул.Выводить=Ложь;
    ТабДок.ВерхнийКолонтитул.Выводить = Ложь;
    
    Макет = Обработки.СкладСырья2.ПолучитьМакет("Остатки");
    
    ОблШапкаДокумента = Макет.ПолучитьОбласть("ШапкаОтчёта");
    ОблШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОблТаблица = Макет.ПолучитьОбласть("ТелоТаблицы");
    ОблПодвал = Макет.ПолучитьОбласть("ПодвалТаблицы");
    
    ОблШапкаДокумента.Параметры.ДатаОтчёта = Строка(Формат(ТекущаяДата(), "ДЛФ=Д" ));
    ОблШапкаДокумента.Параметры.ГруппаТоваров = Строка(Элемент.Родитель);
    ТабДок.ОтображатьСетку=Ложь;
    ТабДок.Вывести(ОблШапкаДокумента);
    ТабДок.Вывести(ОблШапкаТаблицы);
    
    Построитель = Новый ПостроительОтчета;     
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ЭлементыФормы.ТабПолеДерево.Значение);
    
    Выборка = Построитель.Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
        
        ОбработкаПрерыванияПользователя();
        ОблТаблица.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(ОблТаблица);    
    КонецЦикла;
    ТабДок.Вывести(ОблПодвал);
    
    ТабДок.ТолькоПросмотр = Истина;
    ТабДок.Показать();

Автор: most_fucking 21.06.19, 11:40

Yevhenii_S @ 09.05.19, 11:17 * ,

Через отладчик проверьте какую таблицу выдает:

ЭлементыФормы.ТабПолеДерево.Значение


и сразу поймете в чем дело


 ! 

http://pro1c.org.ua/index.php?act=announce&id=2: 1
 

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua