helpf.pro
Регистрация

v8: Дерево значений из запроса на форму

z8491
07.12.2016 01:28Прочитано: 1640

День добрый прошу помочь , вывожу на форму в табличное поле дерево 

Код 1C v 8.х
 из запроса Запрос = Новый Запрос;
    Запрос.Текст =  "ВЫБРАТЬ
                    |ВыпускПолуфабрикатов.РабочийЦентр,    
                    |ВыпускПолуфабрикатов.Номенклатура КАК Номенклатура,
                    |    ВыпускПолуфабрикатов.ВзятоСПартии КАК Взято,
                    |    ВыпускПолуфабрикатов.Ссылка КАК Ссылка,
                    |    ВыпускПолуфабрикатов.НомерОперации КАК НомерОперации,
                    |    ВыпускПолуфабрикатов.КоличествоХорошейПродукции КАК Хорошая,
                    |    ВыпускПолуфабрикатов.КоличествоБракованнойПродукции КАК Брак,
                    |    ВыпускПолуфабрикатов.АрбитражноеХранение КАК Арбитраж,
                    |    ВыпускПолуфабрикатов.Слиток,
                    |    ВыпускПолуфабрикатов.Тело
                    |    
                    |ИЗ
                    |    Документ.ВыпускПолуфабрикатов КАК ВыпускПолуфабрикатов
                    |ГДЕ
                    |    ИСТИНА";
                                    
                     Если ЗначениеЗаполнено(ЗаданиеНаВыпуск) тогда
                         Запрос.Текст = Запрос.Текст + "
                         |    и ВыпускПолуфабрикатов.ЗаданиеНаВыпуск =ЗаданиеНаВыпуск";
                     КонецЕсли;
            
                     Если ЗначениеЗаполнено(Смена) тогда
                         Запрос.Текст = Запрос.Текст + "
                         |    и ВыпускПолуфабрикатов.ДокументСмены =Смена";
                     КонецЕсли;

                    Запрос.Текст = Запрос.Текст + "
                         |УПОРЯДОЧИТЬ ПО
                         |    НомерОперации
                         |ИТОГИ
                         |    СУММА(Взято),
                         |    СУММА(Хорошая),
                         |    СУММА(Брак),
                         |    СУММА(Арбитраж),
                         |    СУММА(Слиток),
                         |    СУММА(Тело),
                         |    МАКСИМУМ(Ссылка)
                         |ПО
                         |    РабочийЦентр,
                         |    Номенклатура";
                        

Запрос.УстановитьПараметр("ЗаданиеНаВыпуск",ЗаданиеНаВыпуск );
                         Запрос.УстановитьПараметр("Смена",Смена);
                         ЗаказыНаПроизводство = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
                          
    
    ЭлементыФормы.ЗаказыНаПроизводство.ГоризонтальныеЛинии = Истина;
    ЭлементыФормы.ЗаказыНаПроизводство.ВертикальныеЛинии = Истина;
    
    ЭлементыФормы.ЗаказыНаПроизводство.СоздатьКолонки();
    
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[0].Ширина = 15;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[0].ТолькоПросмотр=Истина;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[1].Ширина = 60;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[1].ТолькоПросмотр=Истина;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[2].Ширина = 8;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[2].ИзменениеРазмера=ИзменениеРазмераКолонки.НеИзменять;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[2].ТолькоПросмотр=Истина;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[3].Видимость = ложь;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[4].ТекстШапки = "Номер операции";
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[4].Видимость = ложь;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[4].ТолькоПросмотр=Истина;
    // Хорошая
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[5].Ширина = 8;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[5].ИзменениеРазмера=ИзменениеРазмераКолонки.НеИзменять;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[5].ТолькоПросмотр=Истина;
    // Брак
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[6].Ширина = 8;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[6].ИзменениеРазмера=ИзменениеРазмераКолонки.НеИзменять;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[6].ТолькоПросмотр=Истина;
    // Арбитраж
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[7].Ширина = 9;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[7].ИзменениеРазмера=ИзменениеРазмераКолонки.НеИзменять;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[7].ТолькоПросмотр=Истина;
    // Слиток
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[8].Ширина = 8;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[8].ИзменениеРазмера=ИзменениеРазмераКолонки.НеИзменять;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[8].ТолькоПросмотр=Истина;
    //  Тело
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[9].Ширина = 8;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[9].ИзменениеРазмера=ИзменениеРазмераКолонки.НеИзменять;
    ЭлементыФормы.ЗаказыНаПроизводство.Колонки[9].ТолькоПросмотр=Истина;
        
    ЗаказыНаПроизводство.Строки.Сортировать("НомерОперации ВОЗР");

Данные формируются но получается в первой колонке Рабочий центр повторяется столько раз сколько строчек во второй колонке и номенклатура аналогично хотя группирую

Получается так    

Рабочий центр     Номенклатура            Взято Хорошая Брак Арбитраж+ Рабочий центр 1   Номенклатура 1      3          3             2        2     Рабочий центр 1     Номенклатура 1       1          2             1        1    Рабочий центр 1     Номенклатура 1       2          1             1        1

Yandex
Возможно, вас также заинтересует
Реклама на портале
z8491
07.12.2016 18:36Ответ № 1
Вопрос закрыт!
Подсказка: Для быстрого перемещения к последнему ответу или к вопросу используйте или .
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.