Имя: Пароль:
1C
1С v8
Вывод результата запроса в макет
0 Vladislava-smile
 
30.03.15
02:15
Помогите, пожалуйста, проблема с выводом в макет результата запроса, не могу понять как реализовать.
Текст запроса и вывода:
Функция Печать() Экспорт
ТабДок = Новый ТабличныйДокумент;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
Макет = ПолучитьМакет("НакопительнаяКалькуляция");
//ОбластьЗапросЗаголовок=Макет.ПолучитьОбласть("ЗапросЗаголовок");
ОбластьИзделие=Макет.ПолучитьОбласть("Шапка|Изделие");
ОбластьГруппа=Макет.ПолучитьОбласть("Шапка|Группа");
ОбластьРасшифровка=Макет.ПолучитьОбласть("Шапка|Расшифровка");

ОбластьИзделие2=Макет.ПолучитьОбласть("Строка|Изделие");
ОбластьГруппа2=Макет.ПолучитьОбласть("Строка|Группа");
ОбластьРасшифровка2=Макет.ПолучитьОбласть("Строка|Расшифровка");
//ОбластьРасчет=Макет.ПолучитьОбласть("Расчет");

Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
             |    ДЭМ_ПланированиеЗаказаИзделия.Изделие,
             |    РасчетСтоимостиМатериал.ВидНоменклатуры КАК Расшифровка,
             |    РасчетСтоимостиМатериал.Сумма КАК Сумма,
             |    ""Материалы, в том числе"" КАК Группа,
             |    ДЭМ_ПланированиеЗаказаИзделия.Количество,
             |    ДЭМ_ПланированиеЗаказаИзделия.Цена,
             |    1 КАК Сч
             |ПОМЕСТИТЬ Готово
             |ИЗ
             |    Документ.ДЭМ_ПланированиеЗаказа.Изделия КАК ДЭМ_ПланированиеЗаказаИзделия
             |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
             |            ДЭМ_РасчетСтоимостиИзделияМатериалы.Ссылка КАК Ссылка,
             |            ДЭМ_РасчетСтоимостиИзделияМатериалы.Материал.ВидНоменклатуры КАК ВидНоменклатуры,
             |            СУММА(ДЭМ_РасчетСтоимостиИзделияМатериалы.Сумма) КАК Сумма
             |        ИЗ
             |            Документ.ДЭМ_РасчетСтоимостиИзделия.Материалы КАК ДЭМ_РасчетСтоимостиИзделияМатериалы
             |        ГДЕ
             |            ДЭМ_РасчетСтоимостиИзделияМатериалы.Ссылка.Проведен = ИСТИНА
             |        
             |        СГРУППИРОВАТЬ ПО
             |            ДЭМ_РасчетСтоимостиИзделияМатериалы.Ссылка,
             |            ДЭМ_РасчетСтоимостиИзделияМатериалы.Материал.ВидНоменклатуры) КАК РасчетСтоимостиМатериал
             |        ПО ДЭМ_ПланированиеЗаказаИзделия.РасчетСтоимости.Ссылка = РасчетСтоимостиМатериал.Ссылка
             |ГДЕ
             |    ДЭМ_ПланированиеЗаказаИзделия.Ссылка = &Ссылка
             |
             |ОБЪЕДИНИТЬ ВСЕ
             |
             |ВЫБРАТЬ
             |    ДЭМ_ПланированиеЗаказаИзделия.Изделие,
             |    КорректировкаСтоимостиМатериал.МатериалВидНоменклатуры,
             |    КорректировкаСтоимостиМатериал.СуммаРазница,
             |    ""Материалы, в том числе"",
             |    ДЭМ_ПланированиеЗаказаИзделия.Количество,
             |    ДЭМ_ПланированиеЗаказаИзделия.Цена,
             |    1
             |ИЗ
             |    Документ.ДЭМ_ПланированиеЗаказа.Изделия КАК ДЭМ_ПланированиеЗаказаИзделия
             |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
             |            ДЭМ_КорректировкаСтоимостиИзделияМатериалы.Материал.ВидНоменклатуры КАК МатериалВидНоменклатуры,
             |            ДЭМ_КорректировкаСтоимостиИзделияМатериалы.СуммаРазница КАК СуммаРазница,
             |            ДЭМ_КорректировкаСтоимостиИзделияМатериалы.Ссылка.ДокРасчетСтоимостиИзделия.Ссылка КАК ДокРасчетСтоимостиИзделияСсылка
             |        ИЗ
             |            Документ.ДЭМ_КорректировкаСтоимостиИзделия.Материалы КАК ДЭМ_КорректировкаСтоимостиИзделияМатериалы
             |        ГДЕ
             |            ДЭМ_КорректировкаСтоимостиИзделияМатериалы.Ссылка.Проведен = ИСТИНА) КАК КорректировкаСтоимостиМатериал
             |        ПО ДЭМ_ПланированиеЗаказаИзделия.РасчетСтоимости.Ссылка = КорректировкаСтоимостиМатериал.ДокРасчетСтоимостиИзделияСсылка.Ссылка
             |ГДЕ
             |    ДЭМ_ПланированиеЗаказаИзделия.Ссылка = &Ссылка
             |
             |ОБЪЕДИНИТЬ ВСЕ
             |
             |ВЫБРАТЬ
             |    ДЭМ_ПланированиеЗаказаИзделия.Изделие,
             |    РасчетСтоимостиТрудоемкость.Подразделение,
             |    РасчетСтоимостиТрудоемкость.СуммарнаяТрудоемкость,
             |    ""Трудоемкость, н/час, в том числе:"",
             |    ДЭМ_ПланированиеЗаказаИзделия.Количество,
             |    NULL,
             |    2
             |ИЗ
             |    Документ.ДЭМ_ПланированиеЗаказа.Изделия КАК ДЭМ_ПланированиеЗаказаИзделия
             |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
             |            ДЭМ_РасчетСтоимостиИзделияТрудозатраты.Ссылка КАК Ссылка,
             |            ДЭМ_РасчетСтоимостиИзделияТрудозатраты.Подразделение КАК Подразделение,
             |            ДЭМ_РасчетСтоимостиИзделияТрудозатраты.СуммарнаяТрудоемкость КАК СуммарнаяТрудоемкость,
             |            ДЭМ_РасчетСтоимостиИзделияТрудозатраты.СтоимостьЧаса * ДЭМ_РасчетСтоимостиИзделияТрудозатраты.СуммарнаяТрудоемкость КАК ОсновнаяЗарплата
             |        ИЗ
             |            Документ.ДЭМ_РасчетСтоимостиИзделия.Трудозатраты КАК ДЭМ_РасчетСтоимостиИзделияТрудозатраты
             |        ГДЕ
             |            ДЭМ_РасчетСтоимостиИзделияТрудозатраты.Ссылка.Проведен = ИСТИНА) КАК РасчетСтоимостиТрудоемкость
             |        ПО ДЭМ_ПланированиеЗаказаИзделия.РасчетСтоимости.Ссылка = РасчетСтоимостиТрудоемкость.Ссылка
             |ГДЕ
             |    ДЭМ_ПланированиеЗаказаИзделия.Ссылка = &Ссылка
             |
             |ОБЪЕДИНИТЬ ВСЕ
             |
             |ВЫБРАТЬ
             |    ДЭМ_ПланированиеЗаказаИзделия.Изделие,
             |    КорректировкаСтоимостиТрудоемкость.Подразделение,
             |    КорректировкаСтоимостиТрудоемкость.СуммарнаяТрудоемкостьРазница,
             |    ""Трудоемкость, н/час, в том числе:"",
             |    ДЭМ_ПланированиеЗаказаИзделия.Количество,
             |    NULL,
             |    2
             |ИЗ
             |    Документ.ДЭМ_ПланированиеЗаказа.Изделия КАК ДЭМ_ПланированиеЗаказаИзделия
             |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
             |            ДЭМ_КорректировкаСтоимостиИзделияТрудозатраты.СуммарнаяТрудоемкостьРазница КАК СуммарнаяТрудоемкостьРазница,
             |            ДЭМ_КорректировкаСтоимостиИзделияТрудозатраты.Ссылка.ДокРасчетСтоимостиИзделия.Ссылка КАК ДокРасчетСтоимостиИзделияСсылка,
             |            ДЭМ_КорректировкаСтоимостиИзделияТрудозатраты.Подразделение КАК Подразделение
             |        ИЗ
             |            Документ.ДЭМ_КорректировкаСтоимостиИзделия.Трудозатраты КАК ДЭМ_КорректировкаСтоимостиИзделияТрудозатраты
             |        ГДЕ
             |            ДЭМ_КорректировкаСтоимостиИзделияТрудозатраты.Ссылка.Проведен = ИСТИНА) КАК КорректировкаСтоимостиТрудоемкость
             |        ПО ДЭМ_ПланированиеЗаказаИзделия.РасчетСтоимости.Ссылка = КорректировкаСтоимостиТрудоемкость.ДокРасчетСтоимостиИзделияСсылка.Ссылка
             |ГДЕ
             |    ДЭМ_ПланированиеЗаказаИзделия.Ссылка = &Ссылка
             |;
             |
             |////////////////////////////////////////////////////////////////////////////////
             |ВЫБРАТЬ
             |    Готово.Изделие КАК Изделие,
             |    Готово.Расшифровка КАК Расшифровка,
             |    СУММА(Готово.Сумма) КАК Сумма,
             |    Готово.Группа КАК Группа,
             |    МИНИМУМ(Готово.Количество) КАК Количество,
             |    МИНИМУМ(Готово.Цена) КАК Цена
             |ИЗ
             |    Готово КАК Готово
             |
             |СГРУППИРОВАТЬ ПО
             |    Готово.Группа,
             |    Готово.Изделие,
             |    Готово.Расшифровка
             |ИТОГИ
             |    СУММА(Сумма),
             |    МИНИМУМ(Количество),
             |    МИНИМУМ(Цена)
             |ПО
             |    Изделие,
             |    Группа,
             |    Расшифровка";
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);

// ******************************* ВЫВОД ШАПКИ ****************************************************


ТабДок.НачатьАвтогруппировкуСтрок();

ТабДок.Вывести(ОбластьИзделие);

    ВыборкаГруппа=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Группа", "ВСЕ");
    Пока ВыборкаГруппа.Следующий() цикл
    ОбластьГруппа.Параметры.Заполнить(ВыборкаГруппа);
    
    ТабДок.Присоединить(ОбластьГруппа);
    
        
        ВыборкаРасшифровка=ВыборкаГруппа.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Расшифровка");
        
        Пока ВыборкаРасшифровка.Следующий() цикл
            
        ОбластьРасшифровка.Параметры.Заполнить(ВыборкаРасшифровка);
        
        ТабДок.Присоединить(ОбластьРасшифровка);
    
        КонецЦикла;

    КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();


//**************************** ВЫВОД ПО ИЗДЕЛИЯМ *******************************************

ТабДок.НачатьАвтогруппировкуСтрок();

ВыборкаИзделие=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Изделие");


Пока ВыборкаИзделие.Следующий() цикл
ОбластьИзделие2.Параметры.Заполнить(ВыборкаИзделие);
ТабДок.Вывести(ОбластьИзделие2);

    
    ВыборкаГруппа=ВыборкаИзделие.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Группа","ВСЕ");
    Пока ВыборкаГруппа.Следующий() цикл
    ОбластьГруппа2.Параметры.Заполнить(ВыборкаГруппа);
    ТабДок.Присоединить(ОбластьГруппа2);
        
        
        ВыборкаРасшифровка=ВыборкаГруппа.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Расшифровка");
        
        Пока ВыборкаРасшифровка.Следующий() цикл
            
        ОбластьРасшифровка2.Параметры.Заполнить(ВыборкаРасшифровка);
        ТабДок.Присоединить(ОбластьРасшифровка2);

        
        КонецЦикла;
    КонецЦикла;
    

КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();


    Возврат ТабДок;
//ТабДок.ОтображатьСетку=Ложь;
//ТабДок.Показать("НакопительнаяКалькуляция");
    
КонецФункции
Результат запроса в консоли, есди проверять: [url=http://www.fayloobmennik.net/4740256]123.jpg[/url]
Результат макета: [url=http://www.fayloobmennik.net/4740257]456.jpg[/url]

Как сделать так, чтобы данные выводились в соответствующем столбце???
1 Vladislava-smile
 
30.03.15
02:16
Блин, сейчас на другой загружу
2 Vladislava-smile
 
30.03.15
02:19
4 Vladislava-smile
 
30.03.15
02:52
Ну что ни у кого даже вариантов нет? ((
5 Vladislava-smile
 
30.03.15
03:38
Можно ли вообще сделать так как я хочу или нет?
6 hhhh
 
30.03.15
06:55
почему не

ВыборкаИзделие=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Изделие", "ВСЕ");
7 ЧеловекДуши
 
30.03.15
07:04
(0) Что это? Где СКД? Где построитель запросов?

Если вы пишите по старинке, как в 1С 7.7. Так и соизвольте прорисовывать все графы :)
8 ЧеловекДуши
 
30.03.15
07:05
+ Где код вывода значений?
9 ЧеловекДуши
 
30.03.15
07:05
(5) Сделать можно все, вопрос как лучше?
К примеру "Штаны лучше не одевать через голову" ;)
10 Vladislava-smile
 
30.03.15
08:10
(6) - результат не меняется.
11 Vladislava-smile
 
30.03.15
08:15
(8) код вывода значений представлен в (0).
Не использую СКД и построитель.
Макет: http://my-files.ru/u3ankz
12 shuhard
 
30.03.15
08:18
(11)[Не использую СКД и построитель. ]
это твои личные проблемы
13 Vladislava-smile
 
30.03.15
08:21
Ладно, с помощью СКД или построителя это проблема решается или нет? Согласна, что мои, я сюда за советом обращаюсь, а не за такими отписками.
14 Vladislava-smile
 
30.03.15
08:33
Может с помощью таблицы значений легче потом правильно отобразить?
15 Остап Сулейманович
 
30.03.15
08:36
(14) Что нужно? В двух словах. А то вот из этого "чтобы данные выводились в соответствующем столбце" нифига не понятно.
16 Vladislava-smile
 
30.03.15
08:42
(15) - по примеру http://my-files.ru/ami5ad нужно, чтобы по изделию фильтр масляный число 21 отображалось в колонке "технический отдел" и в "Трудоемкость, н/час" а не сдвигалась влево.