8.х Вывод на печать списка товаров с группировкой

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем User, 24 апр 2014.

  1. TopicStarter Overlay
    User
    Offline

    User Опытный в 1С

    Регистрация:
    4 фев 2013
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Подскажите, пожалуйста как вывести на печать список товара с группировкой по родителю из обработки. Необходимые столбцы обработки для вывода на печать номенклатура и цена. Необходимо вывести список как в прикрепленном файле СписокТоваров.jpg . Процедура печати следующая
    Код:
    // Подготовим таблицу номенклатуры.
        ТаблицаНоменклатуры = Новый ТаблицаЗначений;
        ТаблицаНоменклатуры.Колонки.Добавить("Номенклатура");
        ТаблицаНоменклатуры.Колонки.Добавить("ГруппаНоменклатуры");
        ТаблицаНоменклатуры.Колонки.Добавить("Цена");
       
        ТаблицаНоменклатуры.Свернуть("Номенклатура, ГруппаНоменклатуры", "Цена");
        ТаблицаНоменклатуры.Сортировать("Номенклатура");
    
        ТабДокумент = Новый ТабличныйДокумент;
        ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РасчетПрайсовойЦены";
    
        Макет = ПолучитьМакет("РасчетПрайсовойЦены");
       
        ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
        ТабДокумент.Вывести(ОбластьМакета);
       
        // Вывод списка продукции
        ОбластьМакета = Макет.ПолучитьОбласть("Стр");
        Для Каждого Строка Из Товары Цикл
            ОбластьМакета.Параметры.Номенклатура = Строка.Номенклатура;
            ОбластьМакета.Параметры.Цена = Строка.Цена;
            ТабДокумент.Вывести(ОбластьМакета);
        КонецЦикла;
                   
        // Зададим параметры макета.
        ТабДокумент.ОбластьПечати = ТабДокумент.Область(2,2,ТабДокумент.ВысотаТаблицы, ТабДокумент.ШиринаТаблицы);
        ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
       
    УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, "РасчетПрайсовойЦены");
    Кто знает, как добавить группировку?
  2. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Делайте запрос в котором получайте итоги по группам. После этого из запроса получаете выборку с обходом результата по группировкам ну и заполняете макет.
  3. TopicStarter Overlay
    User
    Offline

    User Опытный в 1С

    Регистрация:
    4 фев 2013
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    В запросе не возможно выбрать ТЧ обработки.
  4. Briz
    Offline

    Briz Новичок в 1С

    Регистрация:
    9 апр 2013
    Сообщения:
    36
    Симпатии:
    3
    Баллы:
    4
    (3) но МОЖНО выгрузить ТЧ обработки в ТЗ, а ТЗ загрузить во временную таблицу.
    :cool:
  5. TopicStarter Overlay
    User
    Offline

    User Опытный в 1С

    Регистрация:
    4 фев 2013
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Не получается у меня ничего с этими таблицами значений. Можно более подробный алгоритм или пример...
  6. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    МояТаблицаСТоварами.Номенклатура,
    |    МояТаблицаСТоварами.Цена,
    |    МояТаблицаСТоварами.Номенклатура.Родитель КАК Родитель
    |ПОМЕСТИТЬ ВТТовары
    |ИЗ
    |    &МояТаблицаСТоварами КАК МояТаблицаСТоварами
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВТТовары.Родитель КАК Родитель,
    |    ВТТовары.Номенклатура,
    |    ВТТовары.Цена
    |ИЗ
    |    ВТТовары КАК ВТТовары
    |ИТОГИ ПО
    |    Родитель";
    
    Запрос.УстановитьПараметр("МояТаблицаСТоварами", МояОбработка.ТЧТовары.Выгрузить());
    ВыборкаГруппы = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаГруппы.Следующий() Цикл
        // тут выводим область группировки
        ВыборкаНоменклатура = ВыборкаГруппы.Выбрать();
       
        Пока ВыборкаНоменклатура.Следующий() Цикл
            // тут выводим область детальных записей   
        КонецЦикла;
       
    КонецЦикла;
    
    User нравится это.
  7. TopicStarter Overlay
    User
    Offline

    User Опытный в 1С

    Регистрация:
    4 фев 2013
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Спасибо огромнейшее!

Поделиться этой страницей