Имя: Пароль:
1C
1С v8
Вывод результат запроса в макет
,
0 myc_oz
 
13.10.15
12:02
Доброго времени суток о великие умы) Помогите пожалуйста в следующей задаче: я получаю результат из запроса, мне надо "запилить" этот результат в макет. Проблема заключается в том что не могу достать свои итоги из запроса по группе,т.е. те итоги которые я уже получил. вот кусок запроса и вывод в макет:

|ВЫБРАТЬ
    |ВложенныйЗапрос.Номенклатура как Номенклатура,
    |ВложенныйЗапрос.ГруппаНоменклатуры как ГруппаНоменклатуры,
    |ВложенныйЗапрос.ЦенаПоступления КАК Цена,
    |ВложенныйЗапрос.КоличествоОстатокНаНачало КАК ОстатокНаНачало,
    |ВложенныйЗапрос.Поступило КАК Поступило,
    |ВложенныйЗапрос.Списано КАК Списано,
    |ВложенныйЗапрос.ПродажиМатериалы КАК ПродажиМатериалы,
    |ВложенныйЗапрос.КоличествоОтчетОрозничных КАК КоличествоОтчетОрозничных,
    |ВложенныйЗапрос.Перекидки КАК Перекидки,
    |(ВложенныйЗапрос.КоличествоОстатокНаНачало + ВложенныйЗапрос.Поступило - ВложенныйЗапрос.Списано - ВложенныйЗапрос.ПродажиМатериалы - ВложенныйЗапрос.КоличествоОтчетОрозничных - ВложенныйЗапрос.Перекидки) как ОстатокНаКонецМесяца,
    |ВложенныйЗапрос.ФактическийОстаток КАК ФактическийОстаток,
    |(ВложенныйЗапрос.ФактическийОстаток - (ВложенныйЗапрос.КоличествоОстатокНаНачало + ВложенныйЗапрос.Поступило - ВложенныйЗапрос.Списано - ВложенныйЗапрос.ПродажиМатериалы - ВложенныйЗапрос.КоличествоОтчетОрозничных - ВложенныйЗапрос.Перекидки)) как ИзлишкиНедостачи,
    |(ВложенныйЗапрос.ФактическийОстаток - (ВложенныйЗапрос.КоличествоОстатокНаНачало + ВложенныйЗапрос.Поступило - ВложенныйЗапрос.Списано - ВложенныйЗапрос.ПродажиМатериалы - ВложенныйЗапрос.КоличествоОтчетОрозничных - ВложенныйЗапрос.Перекидки)) * ВложенныйЗапрос.ЦенаПоступления как УДЕРЖАТЬНАНЕДОСТАЧУ,    
    |ЕСТЬNULL(ВложенныйЗапрос.ПроцентСписания,0) как ПроцентСписания,
    |ВложенныйЗапрос.РазрешеноСписать как РазрешеноСписать,
    |ВЫБОР
    |КОГДА ВложенныйЗапрос.РазрешеноСписать > ВложенныйЗапрос.Списано
    |ТОГДА (ВложенныйЗапрос.Списано-ВложенныйЗапрос.РазрешеноСписать)*ВложенныйЗапрос.ЦенаПоступления
    |ИНАЧЕ 0
    |КОНЕЦ КАК УДЕРЖАТЬЗАСПИСАНИЯ,
    |((ВложенныйЗапрос.ФактическийОстаток - (ВложенныйЗапрос.КоличествоОстатокНаНачало + ВложенныйЗапрос.Поступило - ВложенныйЗапрос.Списано - ВложенныйЗапрос.ПродажиМатериалы - ВложенныйЗапрос.КоличествоОтчетОрозничных - ВложенныйЗапрос.Перекидки)) * ВложенныйЗапрос.ЦенаПоступления ) + ((ВложенныйЗапрос.Списано-ВложенныйЗапрос.РазрешеноСписать)*ВложенныйЗапрос.ЦенаПоступления) как УДЕРЖАТЬВСЕГО
|ИЗ(

|ВЫБРАТЬ
    |ЕСТЬNULL(Инвентаризация.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) как Номенклатура,
    |ЕСТЬNULL(Инвентаризация.Номенклатура.НоменклатурнаяГруппа, ЗНАЧЕНИЕ(Справочник.НоменклатурныеГруппы.ПустаяСсылка)) как ГруппаНоменклатуры,
    |ЕСТЬNULL(РЕГИСТР.ПроцентСписания,0) как ПроцентСписания,
    |СУММА(ЕСТЬNULL(Инвентаризация.КоличествоИнвентаризация,0)) как ФактическийОстаток,
    |СУММА(ЕСТЬNULL(РегистрНаНачалоПериода.КоличествоОстатокНаНачалоПериода,0)) как КоличествоОстатокНаНачало,
    |Среднее(ЕСТЬNULL(ПоступлениеТовУслуг.ЦенаПоступления,0)) КАК ЦенаПоступления,
    |СУММА(ЕСТЬNULL(ПоступлениеТовУслуг.КоличествоПоступление,0)) КАК Поступило,
    |СУММА(ЕСТЬNULL(СписаниеТОваров.КоличествоСписание,0)) КАК Списано,
    |СУММА(ЕСТЬNULL(ОтчетПроизводстваЗаСменуМатериалы.КоличествоПроизводстваМатериалы,0)) КАК ПродажиМатериалы,
    |СУММА(ЕСТЬNULL(ОтчетОрозничныхПродажах.КоличествоОтчетОрозничных,0)) КАК КоличествоОтчетОрозничных,
    |СУММА(ЕСТЬNULL(РеализацияТОваровУслуг.КоличествоРеализация,0)) КАК Перекидки,
    |ВЫБОР
    |КОГДА РЕГИСТР.ПроцентСписания > 0
    |ТОГДА СУММА(ЕСТЬNULL(ОтчетПроизводстваЗаСменуМатериалы.КоличествоПроизводстваМатериалы,0))*РЕГИСТР.ПроцентСписания/100
    |ИНАЧЕ 0
    |КОНЕЦ КАК РазрешеноСписать
|ИЗ
        |Инвентаризация КАК Инвентаризация
        |Левое СОЕДИНЕНИЕ ПоступлениеТовУслуг КАК ПоступлениеТовУслуг
        |ПО Инвентаризация.Номенклатура = ПоступлениеТовУслуг.Номенклатура  
        |Левое СОЕДИНЕНИЕ РЕГИСТР КАК РЕГИСТР
        |ПО Инвентаризация.Номенклатура = РЕГИСТР.РегистрНоменклатура        
        |Левое СОЕДИНЕНИЕ РегистрНаНачалоПериода КАК РегистрНаНачалоПериода
        |ПО Инвентаризация.Номенклатура = РегистрНаНачалоПериода.Номенклатура
        |Левое СОЕДИНЕНИЕ РеализацияТОваровУслуг КАК РеализацияТОваровУслуг
        |ПО Инвентаризация.Номенклатура = РеализацияТОваровУслуг.Номенклатура
        |Левое СОЕДИНЕНИЕ СписаниеТОваров КАК СписаниеТОваров
        |ПО Инвентаризация.Номенклатура = СписаниеТОваров.Номенклатура
        |Левое СОЕДИНЕНИЕ ОтчетОрозничныхПродажах КАК ОтчетОрозничныхПродажах
        |ПО Инвентаризация.Номенклатура = ОтчетОрозничныхПродажах.Номенклатура
        |Левое СОЕДИНЕНИЕ ОтчетПроизводстваЗаСменуМатериалы КАК ОтчетПроизводстваЗаСменуМатериалы
        |ПО Инвентаризация.Номенклатура = ОтчетПроизводстваЗаСменуМатериалы.Номенклатура
|СГРУППИРОВАТЬ ПО    
    |Инвентаризация.Номенклатура,
    |Инвентаризация.КоличествоИнвентаризация,
    |РЕГИСТР.ПроцентСписания) КАК ВложенныйЗапрос
    |Итоги
|ВЫБОР
|КОГДА Сумма(ИзлишкиНедостачи)<0
|тогда Сумма(ИзлишкиНедостачи)*Среднее(ЦЕНА)
|ИНАЧЕ
|0 конец КАК УДЕРЖАТЬНАНЕДОСТАЧУ,
|Сумма(УДЕРЖАТЬЗАСПИСАНИЯ),
|ВЫБОР КОГДА Сумма(ИзлишкиНедостачи)<0 тогда (Сумма(ИзлишкиНедостачи)*Среднее(ЦЕНА)) + Сумма(УДЕРЖАТЬЗАСПИСАНИЯ) иначе Сумма(УДЕРЖАТЬЗАСПИСАНИЯ) конец как УДЕРЖАТЬВСЕГО,
|Сумма(ИзлишкиНедостачи),
|Среднее(ЦЕНА)
|ПО
|ВложенныйЗапрос.ГруппаНоменклатуры ИЕРАРХИЯ";
    Запрос.УстановитьПараметр("Ссылка",ИнвентаризацияСсылка);
    Запрос.УстановитьПараметр("Организация",Организация);
    Запрос.УстановитьПараметр("Склад",Склад);
    Запрос.УстановитьПараметр("НаДату",ДатаНач);
    Запрос.УстановитьПараметр("ДатаНач",ДатаНач);
    Запрос.УстановитьПараметр("ДатаКон",ДатаКон);
    Результат = Запрос.Выполнить();
    ЭтаФорма.ЭлементыФормы.ТабличноеПоле1.Значение = Результат.Выгрузить();
    
    
    
    ТабДок = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("Макет");
    РезультатГруппы = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    ТабДок.НачатьАвтогруппировкуСтрок();
    Пока РезультатГруппы.Следующий() Цикл
        ОбластьМакета = Макет.ПолучитьОбласть("Группа");
        ОбластьМакета.Параметры.Заполнить(РезультатГруппы);
        ТабДок.Вывести(ОбластьМакета,1);
           Результатноменклатура = РезультатГруппы.Выбрать();
  
        Пока Результатноменклатура.Следующий() Цикл
             ОбластьМакетаноменклатура = Макет.ПолучитьОбласть("Строка");
             ОбластьМакетаноменклатура.Параметры.Заполнить(Результатноменклатура);
             ТабДок.Вывести(ОбластьМакетаноменклатура);
          
            КонецЦикла;
  
        КонецЦикла;
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Показать();
1 Горогуля
 
13.10.15
12:05
не попутал итоги и группировку?
2 myc_oz
 
13.10.15
12:06
(1) ну итоги по группе)) вроде так звучит)
3 Горогуля
 
13.10.15
12:09
то есть, разницы не знаешь. понятно
4 myc_oz
 
13.10.15
12:11
(3) эт тип сейчас ниже плинтуса опустился или чего?
5 Горогуля
 
13.10.15
12:13
эт тип повод узнать разницу
6 GreatOne
 
13.10.15
12:16
(5) есть там итоги
7 GreatOne
 
13.10.15
12:16
Ты в консоли запросов смотрел результат?
8 Горогуля
 
13.10.15
12:17
(6) верю. а автору нужен обход дерева?
9 myc_oz
 
13.10.15
12:18
(7) результат шикарный, тот что надо, мне этот результат закатать в макет в том виде что я получаю, вот это было б круто
10 ВРедная
 
13.10.15
12:18
(0) "Проблема заключается в том что не могу достать свои итоги из запроса по группе,т.е. те итоги которые я уже получил" это можно как-то расшифровать?
11 myc_oz
 
13.10.15
12:20
(10) ВОТ ЭТО:
|ВЫБОР
|КОГДА Сумма(ИзлишкиНедостачи)<0
|тогда Сумма(ИзлишкиНедостачи)*Среднее(ЦЕНА)
|ИНАЧЕ
|0 конец КАК УДЕРЖАТЬНАНЕДОСТАЧУ,
|Сумма(УДЕРЖАТЬЗАСПИСАНИЯ),
|ВЫБОР КОГДА Сумма(ИзлишкиНедостачи)<0 тогда (Сумма(ИзлишкиНедостачи)*Среднее(ЦЕНА)) + Сумма(УДЕРЖАТЬЗАСПИСАНИЯ) иначе Сумма(УДЕРЖАТЬЗАСПИСАНИЯ) конец как УДЕРЖАТЬВСЕГО,
|Сумма(ИзлишкиНедостачи),
|Среднее(ЦЕНА)
|ПО
|ВложенныйЗапрос.ГруппаНоменклатуры ИЕРАРХИЯ";

есть мои итоги по группе, теперь надо нарисовать их на макете
12 GreatOne
 
13.10.15
12:22
Ок. Отладчик показывает РезультатГруппы?
13 myc_oz
 
13.10.15
12:27
(12) показывает
14 GreatOne
 
13.10.15
12:28
ты прикалываешься? С параметрами макета не совладать или что?
15 GreatOne
 
13.10.15
12:28
ОбластьМакета.Параметры.Заполнить(РезультатГруппы);
проверь совпадение названий параметров.
Ты по ходу троллишь
16 myc_oz
 
13.10.15
12:30
(15) блиииин братка, я действительно шлангом прикинулся, я только сейчас это понял... надо просто нарисовать параметры в макете))) сори ребят, всем спасибо кто откликнулся, всем хорошего дня
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс