Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как свернуть табличную часть документа с иерархией?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
mact
Добрый день!
Подскажите, немогу сделать иерархию для вывода на печать из табличной части,
выдержка текста запрос
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ИнвентаризацияТоваровНаСкладе.Номер,
    |    ИнвентаризацияТоваровНаСкладе.Дата,
    |    ИнвентаризацияТоваровНаСкладе.Организация,
    |    ИнвентаризацияТоваровНаСкладе.Организация КАК Поставщик,
    |    ИнвентаризацияТоваровНаСкладе.Склад,
    |    ИнвентаризацияТоваровНаСкладе.Склад.Представление КАК Склад,
    |    ИнвентаризацияТоваровНаСкладе.Ответственный.ФизЛицо.Наименование КАК Выписал,
    |    ИнвентаризацияТоваровНаСкладе.ПредседательКомиссии.Наименование КАК ПредседательКомиссии,
    |    ИнвентаризацияТоваровНаСкладе.ПервыйЧленКомиссии.Наименование КАК ПервыйЧленКомиссии,
    |    ИнвентаризацияТоваровНаСкладе.ВторойЧленКомиссии.Наименование КАК ВторойЧленКомиссии,
    |    ИнвентаризацияТоваровНаСкладе.ТретийЧленКомиссии.Наименование КАК ТретийЧленКомиссии,
    |    &ВалютаПечати КАК Валюта,
    |    ИнвентаризацияТоваровНаСкладе.Товары.(
    |        НомерСтроки,
    |        Номенклатура КАК Номенклатура,
    |        Номенклатура.Родитель КАК ТоварРодитель,
    |        ВЫРАЗИТЬ(ИнвентаризацияТоваровНаСкладе.Товары.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар,
    |        Количество КАК Количество,
    |        КоличествоУчет КАК КоличествоПоУчету,
    |        ЦенаРегл КАК ЦенаРегл,
    |        СуммаРегл КАК СуммаРегл,
    |        Номенклатура.ЕдиницаХраненияОстатков.Представление КАК ЕдиницаИзмерения,
    |        Цена КАК Цена,
    |        Сумма КАК Сумма,
    |        СуммаУчет КАК СуммаПоУчету,
    |        ХарактеристикаНоменклатуры КАК Характеристика,
    |        NULL КАК Серия
    |    )
    |ИЗ
    |    Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе
    |ГДЕ
    |    ИнвентаризацияТоваровНаСкладе.Ссылка = &ТекущийДокумент
    |
    |УПОРЯДОЧИТЬ ПО
    |    Номенклатура
    |ИТОГИ ПО
    |    ОБЩИЕ";    
          
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
    ВыборкаСтрокТовары = Шапка.Товары.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);

    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ИнвентаризацияТоваровНаСкладеРозница_ИнвентаризацияТоваровНаСкладеРозница";
    
    Пока ВыборкаСтрокТовары.Следующий() Цикл

        Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
            Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
            Продолжить;
        КонецЕсли;

        ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
        ОбластьМакета.Параметры.Товар = СокрП(ВыборкаСтрокТовары.Товар) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары);
        Если ВыборкаСтрокТовары.Номенклатура.ЭтоГруппа Тогда
                       ОбластьМакета.Параметры.ТоварРодитель = СокрП(ВыборкаСтрокТовары.Товар.Родитель);
                КонецЕсли;

        Если ВыводитьКоды Тогда
            ОбластьМакета.Параметры.КодАртикул = ВыборкаСтрокТовары.КодАртикул;
        КонецЕсли;

        ТабДокумент.Вывести(ОбластьМакета);

    КонецЦикла;


Почему-то ВыборкаСтрокТовары.Номенклатура.ЭтоГруппа отрабатывает каждую строку, невыводит группу верхнего уровня, и как вывести общую сумму по группе.


 ! 

Правила, пункт 12: выделяйте код!
 
Petre
Даже не стану углубляться в код, раз вы не удосужились оформить его как следует.
Что на поверхности: в запросе в "ИТОГИ" не указано то, что вы хотите получить.
sava1
Цитата(mact @ 20.11.14, 11:36) необходимо зарегистрироваться для просмотра ссылки
ВЫРАЗИТЬ(ИнвентаризацияТоваровНаСкладе.Товары.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар,

Цитата(mact @ 20.11.14, 11:36) необходимо зарегистрироваться для просмотра ссылки
ОбластьМакета.Параметры.ТоварРодитель = СокрП(ВыборкаСтрокТовары.Товар.Родитель);


У строки не бывает родителя

Цитата(mact @ 20.11.14, 11:36) необходимо зарегистрироваться для просмотра ссылки
ИТОГИ ПО
| ОБЩИЕ, Номенклатура Иерархия"

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.