Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Зависает при выполнении запроса(

Зависает при выполнении запроса(
Я
   Droning1C
 
15.07.19 - 15:51
Доброго времени суток! Подскажите, пожалуйста, в чем беда? при выполнении запроса программа зависает...

ВЫБРАТЬ РАЗЛИЧНЫЕ
    РеализацияТоваровУслуг.Сделка КАК Ссылка
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    ВЫБОР
            КОГДА &ЗаказПокупателя = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
                ТОГДА РеализацияТоваровУслуг.Сделка В
                        (ВЫБРАТЬ РАЗЛИЧНЫЕ
                            РеализацияТоваровУслуг.Сделка КАК Ссылка
                        ИЗ
                            Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                        ГДЕ
                            РеализацияТоваровУслуг.Дата > &НачалоПериода
                            И РеализацияТоваровУслуг.Сделка.Дата МЕЖДУ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, -365) И &НачалоПериода)
            ИНАЧЕ РеализацияТоваровУслуг.Сделка = &ЗаказПокупателя
        КОНЕЦ

СГРУППИРОВАТЬ ПО
    РеализацияТоваровУслуг.Сделка

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв.Ссылка
ИЗ
    Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
ГДЕ
    ВЫБОР
            КОГДА &ЗаказПокупателя = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
                ТОГДА ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв.Ссылка В
                        (ВЫБРАТЬ РАЗЛИЧНЫЕ
                            ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв.Ссылка
                        ИЗ
                            Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
                        ГДЕ
                            ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата > &НачалоПериода
                            И ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв.Дата МЕЖДУ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, -365) И &НачалоПериода)
            ИНАЧЕ ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв.Ссылка = &ЗаказПокупателя
        КОНЕЦ

СГРУППИРОВАТЬ ПО
    ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв.Ссылка
 
 
   RomaH
 
1 - 15.07.19 - 15:52
вложеных запросов быть не должно - используйте временные таблицы
   RomaH
 
2 - 15.07.19 - 15:54
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв.Ссылка
ИЗ
    Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
ГДЕ
    ВЫБОР
            КОГДА &ЗаказПокупателя = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
                ТОГДА ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв.Ссылка В
                        (ВЫБРАТЬ РАЗЛИЧНЫЕ
                            ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв.Ссылка
                        ИЗ
                            Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
                        ГДЕ
                            ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата > &НачалоПериода
                            И ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв.Дата МЕЖДУ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, -365) И &НачалоПериода)
            ИНАЧЕ ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв.Ссылка = &ЗаказПокупателя
        КОНЕЦ 

вот это по сути ИЛИ

переделать на ОБЪЕДИНИТЬ

первая таблица - внутренним соединением
   RomaH
 
3 - 15.07.19 - 15:55
т.е. тут 4 таблицы к объединению
и таблицы из ГДЕ убрать в СОЕДИНЕНИЕ
   Droning1C
 
4 - 15.07.19 - 16:15
(3) честно говоря пока плохо понятно... мне нужно выбрать заказы из ОтчетаПроизводстваЗаСмену и из РеализацийТУ по условию на дату. Но, если на форме обработки заполнен реквизит "ЗаказПокупателя", то в результат запроса должен попадать только этот заказ. В результате выполнения запроса хочется видеть либо один заказ, либо одноколоночную таблицу с перечнем неповторяющихся заказов с отбором по периоду
   Droning1C
 
5 - 15.07.19 - 16:16
(3) не могу понять зачем мне внутреннее соединение
   vicof
 
6 - 15.07.19 - 16:18
(0) .Ссылка везде убери
   Droning1C
 
7 - 15.07.19 - 16:25
ВЫБРАТЬ РАЗЛИЧНЫЕ
    РеализацияТоваровУслуг.Сделка КАК Заказ
ПОМЕСТИТЬ втРеализации
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.Дата > &НачалоПериода
    И РеализацияТоваровУслуг.Сделка.Дата МЕЖДУ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, -365) И &НачалоПериода
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв КАК Заказ
ПОМЕСТИТЬ втОтчетПрЗаСмену
ИЗ
    Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
ГДЕ
    ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата > &НачалоПериода
    И ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв.Дата МЕЖДУ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, -365) И &НачалоПериода
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    втРеализации.Заказ
ИЗ
    втРеализации КАК втРеализации

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    втОтчетПрЗаСмену.Заказ
ИЗ
    втОтчетПрЗаСмену КАК втОтчетПрЗаСмену
   Droning1C
 
8 - 15.07.19 - 16:26
вот запрос с объединением, но без условия на заполненность реквизита ЗаказПокупателя. Как это условие лучше оформить в запросе?
   Droning1C
 
9 - 15.07.19 - 16:30
(6) Убрал .Ссылка - все так же виснет
   Droning1C
 
10 - 15.07.19 - 16:32
(6) Ан нет, стал выполняться... Но , видимо, мой подход все равно не верен
   xXeNoNx
 
11 - 15.07.19 - 16:33
что такое ЗаказРезерв?
   xXeNoNx
 
12 - 15.07.19 - 16:33
а где проверка на проведение..., удаление?
   xXeNoNx
 
13 - 15.07.19 - 16:34
а данные лучше собирать по регистрам
   xXeNoNx
 
14 - 15.07.19 - 16:36
О.., так тыж тож из Рамы...
   Droning1C
 
15 - 15.07.19 - 16:39
(14) дада, приуэт!
   xXeNoNx
 
16 - 15.07.19 - 16:40
случаем ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв не составного типа?
   Droning1C
 
17 - 15.07.19 - 16:41
(14) Знаю, что лучше по регистрам, но в данной ситуации надо и по непроведенным тоже обрабатывать... Заказ резерв это реквизит табличной части Продукция документа ОтчетПроизводстваЗаСмену. Тип составной, да.
   Droning1C
 
18 - 15.07.19 - 16:42
(16) ДокументСсылка.ЗаказНаПроизводство, ДокументСсылка.ЗаказПокупателя, ДокументСсылка.ВнутреннийЗаказ
   xXeNoNx
 
19 - 15.07.19 - 16:43
(17) )) вот тебе и ответ
Почитай
https://its.1c.ru/db/metod8dev#content:5842:hdoc
   xXeNoNx
 
20 - 15.07.19 - 16:45
если коротко, то нельзя получать данные от составного типа..., точнее можно, но...
   Droning1C
 
21 - 15.07.19 - 16:50
(20) спс. щаща, разбираюсь, читаю)
   Droning1C
 
22 - 15.07.19 - 16:57
(20) чет я нагородил эеробору какую-то видимо.... Зависло...





ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВЫРАЗИТЬ(РеализацияТоваровУслуг.Сделка КАК Документ.ЗаказПокупателя) КАК ЗаказРезерв
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    ВЫБОР
            КОГДА &ЗаказПокупателя = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
                ТОГДА ВЫРАЗИТЬ(РеализацияТоваровУслуг.Сделка КАК Документ.ЗаказПокупателя) В
                        (ВЫБРАТЬ РАЗЛИЧНЫЕ
                            ВЫРАЗИТЬ(РеализацияТоваровУслуг.Сделка КАК Документ.ЗаказПокупателя) КАК Ссылка
                        ИЗ
                            Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                        ГДЕ
                            РеализацияТоваровУслуг.Дата > &НачалоПериода
                            И ВЫРАЗИТЬ(РеализацияТоваровУслуг.Сделка КАК Документ.ЗаказПокупателя).Дата МЕЖДУ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, -365) И &НачалоПериода)
            ИНАЧЕ (ВЫРАЗИТЬ(РеализацияТоваровУслуг.Сделка КАК Документ.ЗаказПокупателя)) = &ЗаказПокупателя
        КОНЕЦ

СГРУППИРОВАТЬ ПО
    ВЫРАЗИТЬ(РеализацияТоваровУслуг.Сделка КАК Документ.ЗаказПокупателя)

ОБЪЕДИНИТЬ

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВЫРАЗИТЬ(ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв КАК Документ.ЗаказПокупателя)
ИЗ
    Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
ГДЕ
    ВЫБОР
            КОГДА &ЗаказПокупателя = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
                ТОГДА ВЫРАЗИТЬ(ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв КАК Документ.ЗаказПокупателя) В
                        (ВЫБРАТЬ РАЗЛИЧНЫЕ
                            ВЫРАЗИТЬ(ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв КАК Документ.ЗаказПокупателя)
                        ИЗ
                            Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
                        ГДЕ
                            ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата > &НачалоПериода
                            И ВЫРАЗИТЬ(ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв КАК Документ.ЗаказПокупателя).Дата МЕЖДУ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, -365) И &НачалоПериода)
            ИНАЧЕ (ВЫРАЗИТЬ(ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв КАК Документ.ЗаказПокупателя)) = &ЗаказПокупателя
        КОНЕЦ

СГРУППИРОВАТЬ ПО
    ВЫРАЗИТЬ(ОтчетПроизводстваЗаСменуПродукция.ЗаказРезерв КАК Документ.ЗаказПокупателя)
   ptiz
 
23 - 15.07.19 - 16:59
(0)
1) Вместо жуткого ГДЕ сделай объединение из двух вариантов: когда &ЗаказПокупателя  - пустой, и когда - непустой.
2) Вместо ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, -365) - передавай посчитанную дату.
   Droning1C
 
24 - 15.07.19 - 17:02
(20) ну как? опозорил Раменское я?)))
   Droning1C
 
25 - 15.07.19 - 17:03
(23) пробую
   xXeNoNx
 
26 - 15.07.19 - 17:07
(24) да хз.., я не от туда)
   Droning1C
 
27 - 15.07.19 - 17:08
(26) О.., так тыж тож из Рамы...   А кто тогда?)
   ptiz
 
28 - 15.07.19 - 17:08
(25) И убери нафиг условие "РеализацияТоваровУслуг.Сделка В "
   xXeNoNx
 
29 - 15.07.19 - 17:12
(22) предыдущий запрос мне нравился больше...
(23) >> Вместо ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, -365) - передавай посчитанную дату. - много ли это даст прироста...

В первую очередь исправь обращение через точку от составного типа...
   xXeNoNx
 
30 - 15.07.19 - 17:13
(28) так убрал же в (22)
 
 


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.