Долго формируется список документов ЭДО Диадок (обработка для 1С)

Недавно столкнулся с проблемой - очень долго формируется список документов (на закладке "Отправка из 1С" формы "Отправка документов") в обработке Диадок для 1Сv8 (версия 5.19.05 для УПП 1.3 / КА 1.1 / УТ 10.3).
Чем больше в базе 1С контрагентов - тем дольше формируется список. Для решения нужно добавить пару строк в запрос, который находится в процедуре "ТаблицаВыгрузкиВДиадок_ПодготовитьВременныеТаблицы_Отборы" формы "Модуль_ИнтеграцияОбщий":

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

Комментариев нет:

Отправить комментарий