Имя: Пароль:
1C
 
Вложенный запрос хелп
0 Nemirov
 
27.01.20
16:48
Как вывести Номенклатуру в данном запросе в ТЗ "Документы" голову поломал (Студент)
1 Nemirov
 
27.01.20
16:49
Текст = "ВЫБРАТЬ
            |    РасходнаяНакладная.Ссылка КАК Ссылка,
            |    РасходнаяНакладная.Дата КАК Дата,
            |    РасходнаяНакладная.Фирма КАК Фирма,
            |    РасходнаяНакладная.Контрагент КАК СтруктурнаяЕдиница,
            |    РасходнаяНакладная.Склад КАК Склад
            |ПОМЕСТИТЬ тРасходныеНакладные
            |ИЗ
            |    Документ.РасходнаяНакладная КАК РасходнаяНакладная
            |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтруктурныеЕдиницы КАК СтруктурныеЕдиницы
            |        ПО РасходнаяНакладная.СтруктурнаяЕдиница = СтруктурныеЕдиницы.Ссылка
            |            И РасходнаяНакладная.Контрагент = СтруктурныеЕдиницы.Ссылка
            |            И РасходнаяНакладная.СЕ = СтруктурныеЕдиницы.Ссылка
            |ГДЕ
            |    РасходнаяНакладная.Контрагент ССЫЛКА Справочник.СтруктурныеЕдиницы
            |    И (&НеПроверятьДата
            |            ИЛИ РасходнаяНакладная.Дата МЕЖДУ &ДатаНач И &ДатаКон)
            |    И (&НеПроверятьКонтрагент
            |            ИЛИ РасходнаяНакладная.Контрагент = &Контрагент)
            |    И РасходнаяНакладная.Проведен
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ РАЗЛИЧНЫЕ
            |    тРасходныеНакладные.Ссылка КАК Документ,
            |    тРасходныеНакладные.Фирма КАК Фирма,
            |    тРасходныеНакладные.СтруктурнаяЕдиница КАК Получатель,
            |    тРасходныеНакладные.Склад КАК Отправитель,
            |    тРасходныеНакладные.Дата КАК Дата,
            |     тРасходныенакладные.Номенклатура КАК Номенклатура
            
            |ИЗ
            |    (ВЫБРАТЬ
            |        ВложенныйЗапрос.Ссылка КАК Ссылка,
            |        ВложенныйЗапрос.Номенклатура КАК Номенклатура,
            |        ВложенныйЗапрос.ХарактеристикаПартия КАК ХарактеристикаПартия,
            |        СУММА(ВложенныйЗапрос.Количество) КАК Количество
            |    ИЗ
            |        (ВЫБРАТЬ
            |            РасходнаяНакладнаяСостав.Ссылка КАК Ссылка,
            |            РасходнаяНакладнаяСостав.Номенклатура КАК Номенклатура,
            |            ВЫБОР
            |                КОГДА РасходнаяНакладнаяСостав.ХарактеристикаПартия = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
            |                        ИЛИ РасходнаяНакладнаяСостав.ХарактеристикаПартия = ЗНАЧЕНИЕ(Справочник.Партии.ПустаяСсылка)
            |                    ТОГДА НЕОПРЕДЕЛЕНО
            |                ИНАЧЕ РасходнаяНакладнаяСостав.ХарактеристикаПартия
            |            КОНЕЦ КАК ХарактеристикаПартия,
            |            РасходнаяНакладнаяСостав.Количество * РасходнаяНакладнаяСостав.Коэффициент КАК Количество
            |        ИЗ
            |            тРасходныеНакладные КАК тРасходныеНакладные
            |                ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная.Состав КАК РасходнаяНакладнаяСостав
            |                ПО тРасходныеНакладные.Ссылка = РасходнаяНакладнаяСостав.Ссылка
            |        
            |        ОБЪЕДИНИТЬ ВСЕ
            |        
            |        ВЫБРАТЬ
            |            ПриходнаяНакладная.ДокОснование,
            |            ПриходнаяНакладнаяСостав.Номенклатура,
            |            ВЫБОР
            |                КОГДА ТИПЗНАЧЕНИЯ(ПриходнаяНакладнаяСостав.ХарактеристикаПартия) = ТИП(ДАТА)
            |                        ИЛИ ПриходнаяНакладнаяСостав.ХарактеристикаПартия = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
            |                        ИЛИ ПриходнаяНакладнаяСостав.ХарактеристикаПартия = ЗНАЧЕНИЕ(Справочник.Партии.ПустаяСсылка)
            |                    ТОГДА НЕОПРЕДЕЛЕНО
            |                ИНАЧЕ ПриходнаяНакладнаяСостав.ХарактеристикаПартия
            |            КОНЕЦ,
            |            -(ПриходнаяНакладнаяСостав.Количество * ПриходнаяНакладнаяСостав.Коэффициент)
            |        ИЗ
            |            Документ.ПриходнаяНакладная.Состав КАК ПриходнаяНакладнаяСостав
            |                ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
            |                    ВНУТРЕННЕЕ СОЕДИНЕНИЕ тРасходныеНакладные КАК тРасходныеНакладные
            |                    ПО ПриходнаяНакладная.ДокОснование = тРасходныеНакладные.Ссылка
            |                ПО ПриходнаяНакладнаяСостав.Ссылка = ПриходнаяНакладная.Ссылка
            |        ГДЕ
            |            ПриходнаяНакладная.Проведен) КАК ВложенныйЗапрос
            |    
            |    СГРУППИРОВАТЬ ПО
            |        ВложенныйЗапрос.Ссылка,
            |        ВложенныйЗапрос.Номенклатура,
            |        ВложенныйЗапрос.ХарактеристикаПартия
            |    
            |    ИМЕЮЩИЕ
            |        СУММА(ВложенныйЗапрос.Количество) > 0) КАК ВложенныйЗапрос
            |        ЛЕВОЕ СОЕДИНЕНИЕ тРасходныеНакладные КАК тРасходныеНакладные
            |        ПО ВложенныйЗапрос.Ссылка = тРасходныеНакладные.Ссылка
            |
            |УПОРЯДОЧИТЬ ПО
            |    Дата";
2 Nemirov
 
27.01.20
16:50
(1) Весь код извиняюсь
    
    Текст = "ВЫБРАТЬ
            |    РасходнаяНакладная.Ссылка КАК Ссылка,
            |    РасходнаяНакладная.Дата КАК Дата,
            |    РасходнаяНакладная.Фирма КАК Фирма,
            |    РасходнаяНакладная.Контрагент КАК СтруктурнаяЕдиница,
            |    РасходнаяНакладная.Склад КАК Склад
            |ПОМЕСТИТЬ тРасходныеНакладные
            |ИЗ
            |    Документ.РасходнаяНакладная КАК РасходнаяНакладная
            |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СтруктурныеЕдиницы КАК СтруктурныеЕдиницы
            |        ПО РасходнаяНакладная.СтруктурнаяЕдиница = СтруктурныеЕдиницы.Ссылка
            |            И РасходнаяНакладная.Контрагент = СтруктурныеЕдиницы.Ссылка
            |            И РасходнаяНакладная.СЕ = СтруктурныеЕдиницы.Ссылка
            |ГДЕ
            |    РасходнаяНакладная.Контрагент ССЫЛКА Справочник.СтруктурныеЕдиницы
            |    И (&НеПроверятьДата
            |            ИЛИ РасходнаяНакладная.Дата МЕЖДУ &ДатаНач И &ДатаКон)
            |    И (&НеПроверятьКонтрагент
            |            ИЛИ РасходнаяНакладная.Контрагент = &Контрагент)
            |    И РасходнаяНакладная.Проведен
            |;
            |
            |////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ РАЗЛИЧНЫЕ
            |    тРасходныеНакладные.Ссылка КАК Документ,
            |    тРасходныеНакладные.Фирма КАК Фирма,
            |    тРасходныеНакладные.СтруктурнаяЕдиница КАК Получатель,
            |    тРасходныеНакладные.Склад КАК Отправитель,
            |    тРасходныеНакладные.Дата КАК Дата,
            |     тРасходныенакладные.Номенклатура КАК Номенклатура
            
            |ИЗ
            |    (ВЫБРАТЬ
            |        ВложенныйЗапрос.Ссылка КАК Ссылка,
            |        ВложенныйЗапрос.Номенклатура КАК Номенклатура,
            |        ВложенныйЗапрос.ХарактеристикаПартия КАК ХарактеристикаПартия,
            |        СУММА(ВложенныйЗапрос.Количество) КАК Количество
            |    ИЗ
            |        (ВЫБРАТЬ
            |            РасходнаяНакладнаяСостав.Ссылка КАК Ссылка,
            |            РасходнаяНакладнаяСостав.Номенклатура КАК Номенклатура,
            |            ВЫБОР
            |                КОГДА РасходнаяНакладнаяСостав.ХарактеристикаПартия = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
            |                        ИЛИ РасходнаяНакладнаяСостав.ХарактеристикаПартия = ЗНАЧЕНИЕ(Справочник.Партии.ПустаяСсылка)
            |                    ТОГДА НЕОПРЕДЕЛЕНО
            |                ИНАЧЕ РасходнаяНакладнаяСостав.ХарактеристикаПартия
            |            КОНЕЦ КАК ХарактеристикаПартия,
            |            РасходнаяНакладнаяСостав.Количество * РасходнаяНакладнаяСостав.Коэффициент КАК Количество
            |        ИЗ
            |            тРасходныеНакладные КАК тРасходныеНакладные
            |                ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная.Состав КАК РасходнаяНакладнаяСостав
            |                ПО тРасходныеНакладные.Ссылка = РасходнаяНакладнаяСостав.Ссылка
            |        
            |        ОБЪЕДИНИТЬ ВСЕ
            |        
            |        ВЫБРАТЬ
            |            ПриходнаяНакладная.ДокОснование,
            |            ПриходнаяНакладнаяСостав.Номенклатура,
            |            ВЫБОР
            |                КОГДА ТИПЗНАЧЕНИЯ(ПриходнаяНакладнаяСостав.ХарактеристикаПартия) = ТИП(ДАТА)
            |                        ИЛИ ПриходнаяНакладнаяСостав.ХарактеристикаПартия = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
            |                        ИЛИ ПриходнаяНакладнаяСостав.ХарактеристикаПартия = ЗНАЧЕНИЕ(Справочник.Партии.ПустаяСсылка)
            |                    ТОГДА НЕОПРЕДЕЛЕНО
            |                ИНАЧЕ ПриходнаяНакладнаяСостав.ХарактеристикаПартия
            |            КОНЕЦ,
            |            -(ПриходнаяНакладнаяСостав.Количество * ПриходнаяНакладнаяСостав.Коэффициент)
            |        ИЗ
            |            Документ.ПриходнаяНакладная.Состав КАК ПриходнаяНакладнаяСостав
            |                ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
            |                    ВНУТРЕННЕЕ СОЕДИНЕНИЕ тРасходныеНакладные КАК тРасходныеНакладные
            |                    ПО ПриходнаяНакладная.ДокОснование = тРасходныеНакладные.Ссылка
            |                ПО ПриходнаяНакладнаяСостав.Ссылка = ПриходнаяНакладная.Ссылка
            |        ГДЕ
            |            ПриходнаяНакладная.Проведен) КАК ВложенныйЗапрос
            |    
            |    СГРУППИРОВАТЬ ПО
            |        ВложенныйЗапрос.Ссылка,
            |        ВложенныйЗапрос.Номенклатура,
            |        ВложенныйЗапрос.ХарактеристикаПартия
            |    
            |    ИМЕЮЩИЕ
            |        СУММА(ВложенныйЗапрос.Количество) > 0) КАК ВложенныйЗапрос
            |        ЛЕВОЕ СОЕДИНЕНИЕ тРасходныеНакладные КАК тРасходныеНакладные
            |        ПО ВложенныйЗапрос.Ссылка = тРасходныеНакладные.Ссылка
            |
            |УПОРЯДОЧИТЬ ПО
            |    Дата";
    
    
    Запрос=Новый Запрос();
    Запрос.Текст=Текст;
    
    Если НЕ ПараметрыСеанса.ТекущаяСтруктурнаяЕдиница = Справочники.СтруктурныеЕдиницы.НайтиПоКоду("1")Тогда
        ЭлементыФормы.Контрагент.Значение = ПараметрыСеанса.ТекущаяСтруктурнаяЕдиница;
        ЭлементыФормы.Контрагент.Доступность = ЛОЖЬ;
    КонецЕсли;

    Запрос.УстановитьПараметр("МоментВремени",ТекущаяДатаСеанса());
    Запрос.УстановитьПараметр("ДатаНач",НачалоДня(ДатаНач));
    Запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаКон));
    Запрос.УстановитьПараметр("Контрагент",Контрагент);

    Если Не ЗначениеЗаполнено(Контрагент) Тогда
        Запрос.УстановитьПараметр("НеПроверятьКонтрагент", Истина);
    Иначе
        Запрос.УстановитьПараметр("НеПроверятьКонтрагент", Ложь);
    КонецЕсли;    
    Если Не ЗначениеЗаполнено(ДатаНач) Тогда
        Запрос.УстановитьПараметр("НеПроверятьДата", Истина);
    Иначе
        Запрос.УстановитьПараметр("НеПроверятьДата", Ложь);
    КонецЕсли;    
    Если Не ЗначениеЗаполнено(ДатаКон) Тогда
        Запрос.УстановитьПараметр("НеПроверятьДата", Истина);
    Иначе
        Запрос.УстановитьПараметр("НеПроверятьДата", Ложь);
    КонецЕсли;
    Документы=Запрос.Выполнить().Выгрузить();
    ЭлементыФормы.Документы.СоздатьКолонки();
    КонецПроцедуры
3 kiabs
 
27.01.20
17:06
Сформируй вопрос нормально.
4 Ёпрст
 
27.01.20
17:13
(0)
ПриходнаяНакладная.ДокОснование = тРасходныеНакладные.Ссылка

Приходная заполняется на основе расходной ?
Оригинально, ЧЕ
5 fisher
 
27.01.20
17:34
Очевидно, нужно брать номенклатуру не из тРасходныенакладные (где ее нет), а из ВложенныйЗапрос (где она есть)