Имя: Пароль:
1C
1С v8
Помогите с запросом: обход "ВыборкаДокумент.Номенклатура" - неопределенное знач
,
0 q1w2e3r4
 
08.09.13
22:48
Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ
        |   ВложенныйЗапрос.Контрагент КАК Контрагент,
        |   ВложенныйЗапрос.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |   ВложенныйЗапрос.Ссылка КАК Ссылка,
        |   ВложенныйЗапрос.Номенклатура КАК Номенклатура,
        |   ВложенныйЗапрос.Количество КАК Количество,
        |   ВложенныйЗапрос.СуммаНДС КАК СуммаНДС,
        |   ВложенныйЗапрос.СуммаДокумента КАК СуммаДокумента,
        |   ВложенныйЗапрос.Организация КАК Организация,
        |   ВложенныйЗапрос.ПометкаУдаления КАК ПометкаУдаления,
        |   ВложенныйЗапрос.Дата КАК Дата
        |ИЗ
        |   (ВЫБРАТЬ
        |        СчетНаОплатуПокупателю.Ссылка.Контрагент КАК Контрагент,
        |        СчетНаОплатуПокупателю.Ссылка.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |        СчетНаОплатуПокупателю.Ссылка КАК Ссылка,
          |         СчетНаОплатуПокупателю.Номенклатура КАК Номенклатура,
        |         СчетНаОплатуПокупателю.Количество КАК Количество,
        |         СчетНаОплатуПокупателю.СуммаНДС КАК СуммаНДС,
        |        СчетНаОплатуПокупателю.Ссылка.СуммаДокумента КАК СуммаДокумента,
        |        СчетНаОплатуПокупателю.Ссылка.Организация КАК Организация,
        |        СчетНаОплатуПокупателю.Ссылка.ПометкаУдаления КАК ПометкаУдаления,
        |       СчетНаОплатуПокупателю.Ссылка.Дата КАК Дата
        |   ИЗ
        |          Документ.СчетНаОплатуПокупателю.Услуги КАК СчетНаОплатуПокупателю
        |  
        |   ОБЪЕДИНИТЬ ВСЕ
        |  
        |   ВЫБРАТЬ
        |      АктОбОказанииПроизводственныхУслуг.Ссылка.Контрагент КАК Контрагент,
        |      АктОбОказанииПроизводственныхУслуг.Ссылка.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |      АктОбОказанииПроизводственныхУслуг.Ссылка КАК Ссылка,
         |        АктОбОказанииПроизводственныхУслуг.Номенклатура КАК Номенклатура,
         |        АктОбОказанииПроизводственныхУслуг.Количество КАК Количество,
         |        АктОбОказанииПроизводственныхУслуг.СуммаНДС КАК СуммаНДС,
         |       АктОбОказанииПроизводственныхУслуг.Ссылка.СуммаДокумента КАК СуммаДокумента,
        |      АктОбОказанииПроизводственныхУслуг.Ссылка.Организация КАК Организация,
          |       АктОбОказанииПроизводственныхУслуг.Ссылка.ПометкаУдаления КАК ПометкаУдаления,
        |      АктОбОказанииПроизводственныхУслуг.Ссылка.Дата КАК Дата
        |   ИЗ
        |      Документ.АктОбОказанииПроизводственныхУслуг.Услуги КАК АктОбОказанииПроизводственныхУслуг
        |
          |    ГДЕ АктОбОказанииПроизводственныхУслуг.Ссылка.Проведен = ИСТИНА
        |  
        |   ОБЪЕДИНИТЬ ВСЕ
        |  
        |   ВЫБРАТЬ
        |      НалоговаяНакладная.Ссылка.Контрагент КАК Контрагент,
        |      НалоговаяНакладная.Ссылка.ДоговорКонтрагента КАК ДоговорКонтрагента,
        |      НалоговаяНакладная.Ссылка КАК Ссылка,
          |        НалоговаяНакладная.Номенклатура КАК Номенклатура,
        |        НалоговаяНакладная.Количество КАК Количество,
         |        НалоговаяНакладная.СуммаНДС КАК СуммаНДС,
          |       НалоговаяНакладная.Ссылка.СуммаДокумента КАК СуммаДокумента,
        |      НалоговаяНакладная.Ссылка.Организация КАК Организация,
          |       НалоговаяНакладная.Ссылка.ПометкаУдаления КАК ПометкаУдаления,
        |      НалоговаяНакладная.Ссылка.Дата КАК Дата
        |   ИЗ
        |      Документ.НалоговаяНакладная.Услуги КАК НалоговаяНакладная
        |
          |    ГДЕ НалоговаяНакладная.Ссылка.Проведен = ИСТИНА
        |        ) КАК ВложенныйЗапрос
        |
         |ГДЕ ВложенныйЗапрос.Дата МЕЖДУ &НачДата И &КонДата
        |    И ВложенныйЗапрос.Организация = &Организация
        |   И ВложенныйЗапрос.ПометкаУдаления = ЛОЖЬ
        |
        |СГРУППИРОВАТЬ ПО
        |   ВложенныйЗапрос.Контрагент,
        |   ВложенныйЗапрос.ДоговорКонтрагента,
        |   ВложенныйЗапрос.Ссылка,
        |   ВложенныйЗапрос.Номенклатура,
        |   ВложенныйЗапрос.Количество,
        |   ВложенныйЗапрос.СуммаНДС,
        |   ВложенныйЗапрос.СуммаДокумента,
        |   ВложенныйЗапрос.Организация,
        |   ВложенныйЗапрос.ПометкаУдаления,
        |   ВложенныйЗапрос.Дата
        |
        |УПОРЯДОЧИТЬ ПО
        |   Контрагент ВОЗР,
        |   ДоговорКонтрагента ВОЗР,
        |   Ссылка ВОЗР
        |  
        |АВТОУПОРЯДОЧИВАНИЕ
        |
        |ИТОГИ СУММА(СуммаДокумента),СУММА(Количество),СУММА(СуммаНДС)
        |ПО
        |   Контрагент,
        |   ДоговорКонтрагента,
        |   Ссылка
        |  
        |";  
        
    
    Запрос.УстановитьПараметр("НачДата",НачалоМесяца(НачалоДня(ДатаДокумента)));
    Запрос.УстановитьПараметр("КонДата",КонецМесяца(КонецДня(ДатаДокумента)));
    Запрос.УстановитьПараметр("Организация",Организация);
    РезультатЗапроса = Запрос.Выполнить();
    
    табЗапрос=РезультатЗапроса.Выгрузить();
    табЗапрос.ВыбратьСтроку("табЗапрос",);
    
    
    табЕдИзм = Новый ТаблицаЗначений();
    табЕдИзм.Колонки.Добавить("ЕдИзм",Новый ОписаниеТипов("СправочникСсылка.ЕдиницыИзмерения"));
    табЕдИзм.Колонки.Добавить("Количество",Новый ОписаниеТипов("Число"));
    табЕдИзм.Колонки.Добавить("СуммаНДС",Новый ОписаниеТипов("Число"));
    
    // Вставить содержимое обработчика.
    Таб = Новый ТабличныйДокумент;
    Таб.ОтображатьСетку = Ложь;
    Таб.ТолькоПросмотр = Истина;
    Таб.ОтображатьЗаголовки = Ложь;
    Сформирован = Ложь;
    
    Заголовок="Реестр о выписанных документах";
    Макет = ПолучитьМакет("Отчет");
    
    облЗаголовок = Макет.ПолучитьОбласть("Шапка");
    облЗаголовок.Параметры.ИмяФормы = ""+Организация;
    облЗаголовок.Параметры.ТекстЗаголовка = Заголовок;
    облЗаголовок.Параметры.Заполнить(ЭтотОбъект);
    Таб.Вывести(облЗаголовок);
    Таб.ФиксацияСверху =Таб.ВысотаТаблицы ;
    Таб.ФиксацияСлева  =1;

    облКонтрагент = Макет.ПолучитьОбласть("Контрагент");
    облДоговорКонтрагента = Макет.ПолучитьОбласть("ДоговорКонтрагента");
    облДокумент = Макет.ПолучитьОбласть("Документ");
    
    Ном = 1;
    хИтКво=0;
    хИтСумма=0;
    
    ВыборкаКонтрагент = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    Пока ВыборкаКонтрагент.Следующий() Цикл
    
        облКонтрагент.Параметры.Заполнить(ВыборкаКонтрагент);
        облКонтрагент.Параметры.номерСтроки = Ном;
        Таб.Вывести(облКонтрагент);
        Ном=Ном+1;
        
        ВыборкаДоговорКонтрагента = ВыборкаКонтрагент.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
        Пока ВыборкаДоговорКонтрагента.Следующий() Цикл
            облДоговорКонтрагента.Параметры.Заполнить(ВыборкаДоговорКонтрагента);     
            Таб.Вывести(облДоговорКонтрагента);
            
            ВыборкаДокумент = ВыборкаДоговорКонтрагента.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
            Пока ВыборкаДокумент.Следующий() Цикл
                
                //хДокумент=ВыборкаДокумент.Ссылка;
                //Если не ЗначениеЗаполнено(хДокумент)Тогда
                //    продолжить;
                //КонецЕсли;
                //
                //Для Каждого СтрокаУслуги Из хДокумент.Услуги Цикл
                    хИтКво = хИтКво + ВыборкаДокумент.Количество;
                    хИтСумма = хИтСумма + ВыборкаДокумент.СуммаДокумента;
                //КонецЦикла;    
                
                облДокумент.Параметры.Заполнить(ВыборкаДокумент);     
                Таб.Вывести(облДокумент);
            КонецЦикла;    
            
        КонецЦикла;    
    
    КонецЦикла;
    облИтогЕдИзм = Макет.ПолучитьОбласть("ИтогЕдИзм");
    Для Каждого стрТабЕдИзм Из табЕдИзм Цикл
        облИтогЕдИзм.Параметры.Заполнить(стрТабЕдИзм);     
        сообщить("...******стрТабЕдИзм"+стрТабЕдИзм.ЕдИзм);
        //облИтогЕдИзм.Параметры.Кво = табЕдИзм.Кво;
        //облИтогЕдИзм.Параметры.СуммаНДС = табЕдИзм.СуммаНДС;
        Таб.Вывести(облИтогЕдИзм);
    КонецЦикла;    

При обходе "ВыборкаДокумент.Номенклатура" - неопределенное значение, че тока не пробовал - не получается....собственно нужны итоги по многострочной части /количество/ и /сумма/ в разрезе ЕденицаИзмерения
1 Тьма
 
08.09.13
22:56
совсем со зрением плохо. обход по документам вижу, обход по номенклатуре - не вижу. что делать, а?
2 q1w2e3r4
 
08.09.13
23:30
спс, промыл глаза
тогда еще, запрос выдает СуммаДокумента умноженное на количеству строк в МЧ (СуммаДокумента должно быть =100, 2 строки в документе - запрос выдает =200)- что не так?
3 zippygrill
 
08.09.13
23:31
В последней выборки убери Выборку по иерархии, если я тебя правильно понял.
4 zippygrill
 
08.09.13
23:32
Соединение не так :)
5 GROOVY
 
08.09.13
23:36
Ну нет в итогах номенклатуры. Опускайся на уровень ниже, там будет.
6 q1w2e3r4
 
08.09.13
23:38
GROOVY - с обход по номенклатуре решено, спс
zippygrill - Соединение не так :) : можно подробнее
7 q1w2e3r4
 
08.09.13
23:43
да и вообще - мужики - запрос наверное громоздкий - может есть варианты более правильные - почему то тяжко доставать данные и из шапки и МЧ одновременно - в 8 я новичок
8 zippygrill
 
08.09.13
23:44
Я не смотрел  твой запрос изначально)) там у тебя нет совсем соединения.
1. Непонятно почему числовые показатели стоят в "Сгруппировать по"
2. Покажи скрин тч с строками.
9 zippygrill
 
08.09.13
23:46
А еще лучше опиши задачу.
10 q1w2e3r4
 
09.09.13
00:05
1. Непонятно почему числовые показатели стоят в "Сгруппировать по" -убрал - ОК
2. Покажи скрин тч с строками.- не пойму как прикрепить изображение

задача такая - отчет реестр по трем докам - счет, акт , налог.накл- в виде
"контрагент/договор/документы" - "кво" "сумма"
итоги в разрезе ед.изм
11 q1w2e3r4
 
09.09.13
00:14
2. Покажи скрин тч с строками - _http_://http://www.ex.ua/72455313
12 zippygrill
 
09.09.13
09:15
выложи скрин на screencast или другой фотохостинг.
13 q1w2e3r4
 
09.09.13
10:08
2. Покажи скрин тч с строками -
залил http: / / http://www.screencast.com/users/ssvertov/folders/Default/media/0a4e5336-415b-4ca5-b695-67105b9675b9