Имя: Пароль:
1C
1С v8
Ограничить запрос по дате
0 01230123
 
28.04.16
22:11
Доброго времени суток.
Подскажите пожалуйста, как ограничить запрос по дате? При его выполнении база зависает надолго каждый раз, и я подозреваю, что обработка вытаскивает все заказы за 5 лет. Вот запрос:

Запрос.Текст =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка,
        |    ЗаказыОплатаОтгрузка.Отгружен,
        |    ЗаказыОплатаОтгрузка.Оплачен,
        |    ЗаказыОплатаОтгрузка.ДокументОтгрузки.Дата КАК ДатаДокументаОтгрузки,
        |    ЗаказыОплатаОтгрузка.ДокументОтгрузки.Номер КАК НомерДокументаОтгрузки,
        |    ЗаказыОплатаОтгрузка.ДокументОплаты.Дата КАК ДатаДокументаОплаты,
        |    ЗаказыОплатаОтгрузка.ДокументОплаты.Номер КАК НомерДокументаОплаты,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.ПометкаУдаления КАК ПометкаУдаления,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.Номер КАК Номер,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.Дата КАК Дата,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.Проведен КАК Проведен,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.ВалютаДокумента КАК ВалютаДокумента,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.КурсВзаиморасчетов КАК КурсВзаиморасчетов,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.СуммаДокумента КАК СуммаДокумента,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.Контрагент КАК Контрагент,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.ДатаВходящегоДокументаЭлектронногоОбмена КАК ДатаВходящегоДокументаЭлектронногоОбмена,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.ДатаОплаты КАК ДатаОплаты,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.Комментарий КАК Комментарий,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.СуммаВключаетНДС КАК СуммаВключаетНДС,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.Товары.(
        |        Ссылка КАК Ссылка,
        |        НомерСтроки КАК НомерСтроки,
        |        ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        |        ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест,
        |        Количество КАК Количество,
        |        КоличествоМест КАК КоличествоМест,
        |        Коэффициент КАК Коэффициент,
        |        Номенклатура КАК Номенклатура,
        |        ПлановаяСебестоимость КАК ПлановаяСебестоимость,
        |        ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
        |        Размещение КАК Размещение,
        |        СтавкаНДС КАК СтавкаНДС,
        |        Сумма КАК Сумма,
        |        СуммаНДС КАК СуммаНДС,
        |        ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        |        Цена КАК Цена,
        |        ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
        |        УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
        |        ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
        |        КлючСтроки КАК КлючСтроки,
        |        СерияНоменклатуры КАК СерияНоменклатуры
        |    ) КАК Товары,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.Услуги.(
        |        Ссылка КАК Ссылка,
        |        НомерСтроки КАК НомерСтроки,
        |        Содержание КАК Содержание,
        |        Количество КАК Количество,
        |        Цена КАК Цена,
        |        Сумма КАК Сумма,
        |        СтавкаНДС КАК СтавкаНДС,
        |        СуммаНДС КАК СуммаНДС,
        |        Номенклатура КАК Номенклатура,
        |        ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
        |        ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
        |        УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
        |        ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки
        |    ) КАК Услуги,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.НомерВходящегоДокументаЭлектронногоОбмена КАК НомерВходящегоДокументаЭлектронногоОбмена,
        |    ЗаказыОплатаОтгрузка.ЗаказСсылка.УчитыватьНДС КАК УчитыватьНДС
        |ИЗ
        |    (ВЫБРАТЬ
        |        Заказы.ЗаказСсылка КАК ЗаказСсылка,
        |        Заказы.Отгружен КАК Отгружен,
        |        Заказы.Оплачен КАК Оплачен,
        |        МАКСИМУМ(Заказы.ДокументОтгрузки) КАК ДокументОтгрузки,
        |        МАКСИМУМ(Заказы.ДокументОплаты) КАК ДокументОплаты
        |    ИЗ
        |        (ВЫБРАТЬ РАЗЛИЧНЫЕ
        |            Заказ.Ссылка КАК ЗаказСсылка,
        |            ВЫБОР
        |                КОГДА НЕ Заказ.Проведен
        |                        ИЛИ ЗаказыПокупателей.Регистратор ЕСТЬ NULL
        |                    ТОГДА ЛОЖЬ
        |                ИНАЧЕ ВЫБОР
        |                        КОГДА ЕСТЬNULL(ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток, 0) <= 0
        |                            ТОГДА ИСТИНА
        |                        ИНАЧЕ ЛОЖЬ
        |                    КОНЕЦ
        |            КОНЕЦ КАК Отгружен,
        |            ВЫБОР
        |                КОГДА НЕ Заказ.Проведен
        |                        ИЛИ РасчетыСКонтрагентами.Регистратор ЕСТЬ NULL
        |                    ТОГДА ЛОЖЬ
        |                ИНАЧЕ ВЫБОР
        |                        КОГДА ЕСТЬNULL(РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток, 0) <= 0
        |                            ТОГДА ИСТИНА
        |                        ИНАЧЕ ЛОЖЬ
        |                    КОНЕЦ
        |            КОНЕЦ КАК Оплачен,
        |            ЗаказыПокупателей.Регистратор КАК ДокументОтгрузки,
        |            РасчетыСКонтрагентами.Регистратор КАК ДокументОплаты
        |        ИЗ
        |            Документ.ЗаказПокупателя КАК Заказ
        |                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
        |                ПО (КатегорииОбъектов.Объект = Заказ.Ссылка)
        |                    И (КатегорииОбъектов.Категория = ЗНАЧЕНИЕ(Справочник.КатегорииОбъектов.ЗаказСWEBСайта))
        |                    И (Заказ.Дата >= &НачалоПериода)
        |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Остатки(, &УсловиеОграниченияПоЗаказамОстатки) КАК ЗаказыПокупателейОстатки
        |                ПО Заказ.Ссылка = ЗаказыПокупателейОстатки.ЗаказПокупателя
        |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(, &УсловиеОграниченияПоРасчетамОстатки) КАК РасчетыСКонтрагентамиОстатки
        |                ПО Заказ.Ссылка = РасчетыСКонтрагентамиОстатки.Сделка
        |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей КАК ЗаказыПокупателей
        |                ПО Заказ.Ссылка = ЗаказыПокупателей.ЗаказПокупателя
        |                    И (ЗаказыПокупателей.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг)
        |                    И (ЗаказыПокупателей.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.расход))
        |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКонтрагентами КАК РасчетыСКонтрагентами
        |                ПО Заказ.Ссылка = РасчетыСКонтрагентами.Сделка
        |                    И (РасчетыСКонтрагентами.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.расход))
        |                    И (РасчетыСКонтрагентами.Регистратор ССЫЛКА Документ.АккредитивПолученный
        |                        ИЛИ РасчетыСКонтрагентами.Регистратор ССЫЛКА Документ.ОплатаОтПокупателяПлатежнойКартой
        |                        ИЛИ РасчетыСКонтрагентами.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее
        |                        ИЛИ РасчетыСКонтрагентами.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер
        |                        ИЛИ РасчетыСКонтрагентами.Регистратор ССЫЛКА Документ.КорректировкаДолга)
        |        ГДЕ
        |            &УсловиеОграниченияПоДокументам) КАК Заказы
        |    
        |    СГРУППИРОВАТЬ ПО
        |        Заказы.ЗаказСсылка,
        |        Заказы.Отгружен,
        |        Заказы.Оплачен) КАК ЗаказыОплатаОтгрузка";

Хочу ограничить его, чтобы раньше обозначенной мной даты заказы не проверялись. Как это сделать?
1 Lama12
 
28.04.16
22:14
(0) Где
2 GROOVY
 
28.04.16
22:15
Условие в виртуальные таблицы установи. Типизируй получаемые поля составного типа, особенно "Регистратор".
Запрос вообще фееричный.
4 GROOVY
 
28.04.16
22:17
Когда вижу запросы к реальным таблицам регистров накопления, у меня тахикардия случается, я ухожу из ветки..
5 01230123
 
28.04.16
22:20
(4) ))) Это обмен с сайтом-Битрикс. Его битриксоиды писали. Приходится дорабатывать то, что есть. Справедливости ради замечу, что это старая версия обмена. Сейчас они что-то новое придумали, но жутко замороченное.
6 roman52
 
28.04.16
23:29
когда вижу такие запросы, хочется взять и переписать

по сабжу: перепиши на пакетные запросы, и сам увидишь куда условие на дату вкорячить
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.