|
СКД и пакетные запросы | ☑ | ||
---|---|---|---|---|
0
al_zzz
11.05.12
✎
12:52
|
Осваиваю CRL/ Столкнулся с таким явлением: в консоли запрос из нескольких ВТ отрабатывается нормально (текст запроса:
ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, СУММА(ВложенныйЗапрос.КоличествоОстаток - ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0)) КАК Количество ПОМЕСТИТЬ _1_ОстаткиТекущие ИЗ (ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыВРозницеОстатки.Номенклатура, ТоварыВРозницеОстатки.КоличествоОстаток ИЗ РегистрНакопления.ТоварыВРознице.Остатки КАК ТоварыВРозницеОстатки) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки ПО ВложенныйЗапрос.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура ГДЕ ВложенныйЗапрос.КоличествоОстаток - ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) > 0 СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ _1_ОстаткиТекущие.Номенклатура, _1_ОстаткиТекущие.Количество КАК Остаток, ПродажиОбороты.КоличествоОборот ПОМЕСТИТЬ _2_БезПродаж ИЗ _1_ОстаткиТекущие КАК _1_ОстаткиТекущие ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты( &НачалоПериода, &КонецПериода, , Номенклатура <> &ПустаяССылка И (НЕ Контрагент В ИЕРАРХИИ (&СобственныеКонтрагенты))) КАК ПродажиОбороты ПО _1_ОстаткиТекущие.Номенклатура = ПродажиОбороты.Номенклатура ГДЕ ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0) <= 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ _2_БезПродаж.Номенклатура, ВложенныйЗапрос.Дата ПОМЕСТИТЬ _4_НоменклатураДата ИЗ _2_БезПродаж КАК _2_БезПродаж, (ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) КАК Дата {ВЫБРАТЬ Дата} ИЗ (ВЫБРАТЬ 0 КАК a ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК aa ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК b ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК bb ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК c ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК cc ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК d ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК dd ПО (ИСТИНА) ГДЕ aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)) КАК ВложенныйЗапрос ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.НачалоПериода КАК НачалоПериода, МАКСИМУМ(ВложенныйЗапрос.Количество) КАК Количество ПОМЕСТИТЬ _4_Остатки ИЗ (ВЫБРАТЬ КОНЕЦПЕРИОДА(&НачалоПериода, ДЕНЬ) КАК НачалоПериода, ТоварыВРозницеОстатки.Номенклатура КАК Номенклатура, ТоварыВРозницеОстатки.КоличествоОстаток КАК Количество ИЗ РегистрНакопления.ТоварыВРознице.Остатки( &НачалоПериода, Номенклатура В (ВЫБРАТЬ _1_ОстаткиТекущие.Номенклатура ИЗ _1_ОстаткиТекущие КАК _1_ОстаткиТекущие)) КАК ТоварыВРозницеОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ НАЧАЛОПЕРИОДА(ТоварыВРозницеОстаткиИОбороты.Период, ДЕНЬ), ТоварыВРозницеОстаткиИОбороты.Номенклатура, ТоварыВРозницеОстаткиИОбороты.КоличествоКонечныйОстаток ИЗ РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты( &НачалоПериода, &КонецПериода, День, , Номенклатура В (ВЫБРАТЬ _1_ОстаткиТекущие.Номенклатура ИЗ _1_ОстаткиТекущие КАК _1_ОстаткиТекущие)) КАК ТоварыВРозницеОстаткиИОбороты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ КОНЕЦПЕРИОДА(&НачалоПериода, ДЕНЬ), ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки( &НачалоПериода, Номенклатура В (ВЫБРАТЬ _1_ОстаткиТекущие.Номенклатура ИЗ _1_ОстаткиТекущие КАК _1_ОстаткиТекущие)) КАК ТоварыНаСкладахОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ НАЧАЛОПЕРИОДА(ТоварыНаСкладахОстаткиИОбороты.Период, ДЕНЬ), ТоварыНаСкладахОстаткиИОбороты.Номенклатура, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( &НачалоПериода, &КонецПериода, День, , Номенклатура В (ВЫБРАТЬ _1_ОстаткиТекущие.Номенклатура ИЗ _1_ОстаткиТекущие КАК _1_ОстаткиТекущие)) КАК ТоварыНаСкладахОстаткиИОбороты) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.НачалоПериода, ВложенныйЗапрос.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ _4_Остатки.НачалоПериода, МИНИМУМ(ДОБАВИТЬКДАТЕ(ЕСТЬNULL(ОстаткиКонец.НачалоПериода, ДОБАВИТЬКДАТЕ(&КонецПериода, СЕКУНДА, 1)), СЕКУНДА, -1)) КАК КонецПериода, _4_Остатки.Номенклатура, СУММА(_4_Остатки.Количество) КАК Количество ПОМЕСТИТЬ _5_ОстаткиПериодами ИЗ _4_Остатки КАК _4_Остатки ЛЕВОЕ СОЕДИНЕНИЕ _4_Остатки КАК ОстаткиКонец ПО _4_Остатки.Номенклатура = ОстаткиКонец.Номенклатура И _4_Остатки.НачалоПериода < ОстаткиКонец.НачалоПериода СГРУППИРОВАТЬ ПО _4_Остатки.НачалоПериода, _4_Остатки.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ _3_НоменклатураДата.Дата, _3_НоменклатураДата.Номенклатура КАК Номенклатура, ВЫБОР КОГДА ЕСТЬNULL(_5_ОстаткиПериодами.Количество, 0) > 0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК Количество ПОМЕСТИТЬ _6_ОстаткиПоОтделамПоДням ИЗ _4_НоменклатураДата КАК _3_НоменклатураДата ЛЕВОЕ СОЕДИНЕНИЕ _5_ОстаткиПериодами КАК _5_ОстаткиПериодами ПО _3_НоменклатураДата.Номенклатура = _5_ОстаткиПериодами.Номенклатура И (_3_НоменклатураДата.Дата МЕЖДУ _5_ОстаткиПериодами.НачалоПериода И _5_ОстаткиПериодами.КонецПериода) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ _1_ОстаткиТекущие.Номенклатура КАК Номенклатура, СУММА(_1_ОстаткиТекущие.Количество) КАК Остаток, ВложенныйЗапрос.Количество КАК ВНаличии ИЗ _1_ОстаткиТекущие КАК _1_ОстаткиТекущие ВНУТРЕННЕЕ СОЕДИНЕНИЕ _2_БезПродаж КАК _2_БезПродаж ПО _1_ОстаткиТекущие.Номенклатура = _2_БезПродаж.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ _6_ОстаткиПоОтделамПоДням.Номенклатура КАК Номенклатура, СУММА(_6_ОстаткиПоОтделамПоДням.Количество) КАК Количество ИЗ _6_ОстаткиПоОтделамПоДням КАК _6_ОстаткиПоОтделамПоДням СГРУППИРОВАТЬ ПО _6_ОстаткиПоОтделамПоДням.Номенклатура) КАК ВложенныйЗапрос ПО _1_ОстаткиТекущие.Номенклатура = ВложенныйЗапрос.Номенклатура СГРУППИРОВАТЬ ПО _1_ОстаткиТекущие.Номенклатура, ВложенныйЗапрос.Количество), в СКД выпадает непонятная ошибка: "Ошибка исполнения отчета по причине: Ошибка инициализации по причине: Ошибка создания набора данных "НаборДанных1" по причине: Ошибка при исполнении запроса набора данных по причине: {(51, 3)}: Ожидается имя таблицы <<?>>КАК ВложенныйЗапрос " Не могу в сети нарыть инфу о том как использовать пакетные запросы в СКД, может подскажет кто? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |