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

Давай код выборки.
2 q1w2e3r4
 
08.09.13
00:16
ВыборкаКонтрагент = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    Пока ВыборкаКонтрагент.Следующий() Цикл
    
        облКонтрагент.Параметры.Заполнить(ВыборкаКонтрагент);
        облКонтрагент.Параметры.номерСтроки = Ном;
        Таб.Вывести(облКонтрагент);
        Ном=Ном+1;
        
        ВыборкаДоговорКонтрагента = ВыборкаКонтрагент.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
        Пока ВыборкаДоговорКонтрагента.Следующий() Цикл
            облДоговорКонтрагента.Параметры.Заполнить(ВыборкаДоговорКонтрагента);     
            Таб.Вывести(облДоговорКонтрагента);
            
            ВыборкаДокумент = ВыборкаДоговорКонтрагента.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
            Пока ВыборкаДокумент.Следующий() Цикл
                
                //хДокумент=ВыборкаДокумент.Ссылка;
                //Если не ЗначениеЗаполнено(хДокумент)Тогда
                //    продолжить;
                //КонецЕсли;
                //
                //Для Каждого СтрокаУслуги Из хДокумент.Услуги Цикл
                    хИтКво = хИтКво + ВыборкаДокумент.Количество;
                    хИтСумма = хИтСумма + ВыборкаДокумент.СуммаДокумента;
                //КонецЦикла;    
                //облДокумент.Параметры.Количество = хИтКво;
                
                //хЕдИзм=ВыборкаДокумент.ЕдИзм;
                сообщить("...Номенклатура"+ВыборкаДокумент.Номенклатура);
                хЕдИзм=ВыборкаДокумент.Номенклатура.БазоваяЕдиницаИзмерения;
                //сообщить("...Номенклатура"+ВыборкаДокумент.Номенклатура+"...хЕдИзм"+хЕдИзм);
                Если ЗначениеЗаполнено(ВыборкаДокумент.Ссылка) и ЗначениеЗаполнено(хЕдИзм) Тогда
                    стрЕдИзм = табЕдИзм.Найти(хЕдИзм,"ЕдИзм");
                    Если стрЕдИзм = Неопределено Тогда
                        стрЕдИзм = табЕдИзм.Добавить();
                        стрЕдИзм.ЕдИзм=хЕдИзм;
                    КонецЕсли;
                    стрЕдИзм.Кво=стрЕдИзм.Кво+ВыборкаДокумент.Количество;
                    стрЕдИзм.СуммаНДС=стрЕдИзм.СуммаНДС+ВыборкаДокумент.СуммаНДС;
                КонецЕсли;
                
                облДокумент.Параметры.Заполнить(ВыборкаДокумент);     
                Таб.Вывести(облДокумент);
            КонецЦикла;    
            
        КонецЦикла;    
    
    КонецЦикла;
3 q1w2e3r4
 
08.09.13
00:24
выслущаю критику и подсказки по логике запроса
4 hhhh
 
08.09.13
08:26
(3) ну, выборка детальных записей где?
5 q1w2e3r4
 
08.09.13
11:20
так второй (2) пост собственно...
6 q1w2e3r4
 
08.09.13
11:21
так второй пост собственно...
2 + 2 = 3.9999999999999999999999999999999...