Вход | Регистрация

1С:Предприятие ::

Метки: 

Медленно выполнение запроса

Я
   falselight
 
20.10.17 - 05:11
Управление торговлей и взаимоотношениями с клиентами (CRM), редакция 2.0 (2.0.19.8).
При открытии списка документов через интерфейс конфигурации,
не через меню все функции, данные формируются запросом.
Динамический список формы ФормаСпискаДокументов.
Взял запрос от туда. У него один параметр, ДатаАктуальности.
Ставлю текущую дату, выполняю. Выполнение запроса длится очень
долго.
При открытии списка документов же, происходит это значительно
быстрее. Почему такая разница? Можно ли как то оптимизировать запрос
на более быстрое выполнение?

ВЫБРАТЬ
    ДокументЗаказКлиента.Ссылка КАК Ссылка,
    ДокументЗаказКлиента.ПометкаУдаления КАК ПометкаУдаления,
    ДокументЗаказКлиента.Номер КАК Номер,
    ДокументЗаказКлиента.Дата КАК Дата,
    ДокументЗаказКлиента.НомерПоДаннымКлиента КАК НомерПоДаннымКлиента,
    ДокументЗаказКлиента.ДатаПоДаннымКлиента КАК ДатаПоДаннымКлиента,
    ДокументЗаказКлиента.Проведен КАК Проведен,
    ДокументЗаказКлиента.Приоритет КАК Приоритет,
    ДокументЗаказКлиента.Партнер КАК Партнер,
    ДокументЗаказКлиента.Контрагент КАК Контрагент,
    ДокументЗаказКлиента.Организация КАК Организация,
    ДокументЗаказКлиента.Соглашение КАК Соглашение,
    ДокументЗаказКлиента.Договор КАК Договор,
    ДокументЗаказКлиента.Сделка КАК Сделка,
    ДокументЗаказКлиента.Валюта КАК Валюта,
    ДокументЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
    ДокументЗаказКлиента.СуммаВозвратнойТары КАК СуммаВозвратнойТары,
    ДокументЗаказКлиента.ГрафикОплаты КАК ГрафикОплаты,
    ДокументЗаказКлиента.ЖелаемаяДатаОтгрузки КАК ЖелаемаяДатаОтгрузки,
    ДокументЗаказКлиента.Склад КАК Склад,
    ДокументЗаказКлиента.Статус КАК Статус,
    ДокументЗаказКлиента.Менеджер КАК Менеджер,
    ДокументЗаказКлиента.мцТипДоставки КАК ТипДоставки,
    ДокументЗаказКлиента.ДополнительнаяИнформация КАК ДополнительнаяИнформация,
    ДокументЗаказКлиента.СуммаАвансаДоОбеспечения КАК СуммаАвансаДоОбеспечения,
    ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки КАК СуммаПредоплатыДоОтгрузки,
    ДокументЗаказКлиента.ДатаОтгрузки КАК ДатаОтгрузки,
    ДокументЗаказКлиента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
    ДокументЗаказКлиента.ПорядокРасчетов КАК ПорядокРасчетов,
    ДокументЗаказКлиента.Комментарий КАК Комментарий,
    ДокументЗаказКлиента.МЦ_КОтгрузке КАК КОтгрузке,
    ВЫБОР
        КОГДА НЕ ДокументЗаказКлиента.Проведен
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ПустаяСсылка)
        ИНАЧЕ ЕСТЬNULL(СостоянияЗаказовКлиентов.Состояние, ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Закрыт))
    КОНЕЦ КАК Состояние,
    ВЫБОР
        КОГДА НЕ ДокументЗаказКлиента.Проведен
            ТОГДА ЛОЖЬ
        КОГДА СостоянияЗаказовКлиентов.ДатаСобытия <> ДАТАВРЕМЯ(1, 1, 1)
                И &ДатаАктуальности > СостоянияЗаказовКлиентов.ДатаСобытия
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК Просрочен,
    ВЫБОР
        КОГДА ДокументЗаказКлиента.Приоритет В
                (ВЫБРАТЬ ПЕРВЫЕ 1
                    Приоритеты.Ссылка КАК Приоритет
                ИЗ
                    Справочник.Приоритеты КАК Приоритеты
                УПОРЯДОЧИТЬ ПО
                    Приоритеты.РеквизитДопУпорядочивания)
            ТОГДА 0
        КОГДА ДокументЗаказКлиента.Приоритет В
                (ВЫБРАТЬ ПЕРВЫЕ 1
                    Приоритеты.Ссылка КАК Приоритет
                ИЗ
                    Справочник.Приоритеты КАК Приоритеты
                УПОРЯДОЧИТЬ ПО
                    Приоритеты.РеквизитДопУпорядочивания УБЫВ)
            ТОГДА 2
        ИНАЧЕ 1
    КОНЕЦ КАК КартинкаПриоритета,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОплаты, 0) КАК СуммаОплаты,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОтгрузки, 0) КАК СуммаОтгрузки,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОтгрузки, 0) КАК ПроцентОтгрузки,
    ВЫБОР
        КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) < 0
            ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
        ИНАЧЕ 0
    КОНЕЦ КАК НашДолг,
    ВЫБОР
        КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) > 0
            ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
        ИНАЧЕ 0
    КОНЕЦ КАК ДолгКлиента,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентДолга, 0) КАК ПроцентДолга,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ДатаСобытия, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСобытия,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ЕстьРасхожденияОрдерНакладная, ЛОЖЬ) КАК ЕстьРасхожденияОрдерНакладная,
    СостоянияЭД.СостояниеВерсииЭД КАК СостояниеВерсииЭД,
    СостояниеБППоЗаказам.Статус КАК СтатусБП,
    ДокументЗаказКлиента.ДатаСогласования
ИЗ
    Документ.ЗаказКлиента КАК ДокументЗаказКлиента
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
        ПО (СостоянияЗаказовКлиентов.Заказ = ДокументЗаказКлиента.Ссылка)
        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЭД КАК СостоянияЭД
        ПО (СостоянияЭД.СсылкаНаОбъект = ДокументЗаказКлиента.Ссылка)}
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(CRM_БизнесПроцесс.Ссылка) КАК ТекущийБизнессПроцесс,
            МАКСИМУМ(ВЫБОР
                    КОГДА CRM_БизнесПроцесс.Завершен
                        ТОГДА "Завершен"
                    ИНАЧЕ "Стартован"
                КОНЕЦ) КАК Статус,
            CRM_БизнесПроцесс.Предмет КАК ЗаказКлиента
        ИЗ
            БизнесПроцесс.CRM_БизнесПроцесс КАК CRM_БизнесПроцесс
        ГДЕ
            CRM_БизнесПроцесс.Предмет ССЫЛКА Документ.ЗаказКлиента
        
        СГРУППИРОВАТЬ ПО
            CRM_БизнесПроцесс.Предмет) КАК СостояниеБППоЗаказам
        ПО (СостояниеБППоЗаказам.ЗаказКлиента = ДокументЗаказКлиента.Ссылка)
 
 
   МастерВопросов
 
1 - 20.10.17 - 05:33
попробуй
ГДЕ
   ВЫРАЗИТЬ(CRM_БизнесПроцесс.Предмет как Документ.ЗаказКлиента) ССЫЛКА Документ.ЗаказКлиента 


и вообще подзапрос в "ВЫБРАТЬ" это не правильно. Надо мутить соединение
   falselight
 
2 - 20.10.17 - 05:52
(1) Ясно, спасибо. В принципе мне и не нужен такой здоровый запрос с множеством всего лишнего.
Непонятно было почему при открытии формы списка работает оперативно, а в консоле долго выполняется.


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