1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
Wefast 02.12.20 - 10:35 | УТ. РМК. По некоторым штрихкодам долго ищется номенклатура
Собственно вбивается один шк - номенклатура подставляется мгновенно Вводишь другой - ищет секунд 20. В регистре записи идентичные на вид. | ||
Wefast 1 - 02.12.20 - 10:36 | Перепутал, Розница | ||
Wefast 2 - 03.12.20 - 15:17 | Так. сделал замер производительности.
Долго тупит на строчке. Запрос.Выполнить().Выгрузить() Где тормозит - в итоговой таблице 3 строки, где не тормозит - 1 строка. Так что не думаю что дело в объеме данных. | ||
Chameleon1980 3 - 03.12.20 - 16:07 | запрс покажи | ||
Wefast 4 - 03.12.20 - 16:37 | (3)
"ВЫБРАТЬ
| ТаблицаНоменклатуры.Номенклатура КАК Номенклатура,
| ТаблицаНоменклатуры.Характеристика КАК Характеристика,
| ТаблицаНоменклатуры.Серия КАК Серия
|ПОМЕСТИТЬ ТаблицаНоменклатуры
|ИЗ
| &ТаблицаНоменклатуры КАК ТаблицаНоменклатуры
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура,
| Характеристика,
| Серия
|;
|
////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Т.Номенклатура КАК Номенклатура,
| Т.Характеристика КАК Характеристика,
| Т.Серия КАК Серия,
| ВЫБОР КОГДА СоответствиеСерии.АлкогольнаяПродукция ЕСТЬ NULL
| И СоответствиеНоменклатура.АлкогольнаяПродукция ЕСТЬ NULL ТОГДА
| ЗНАЧЕНИЕ(Справочник.КлассификаторАлкогольнойПродукцииЕГАИС.ПустаяСсылка)
| КОГДА НЕ СоответствиеСерии.АлкогольнаяПродукция ЕСТЬ NULL ТОГДА
| СоответствиеСерии.АлкогольнаяПродукция
| ИНАЧЕ
| СоответствиеНоменклатура.АлкогольнаяПродукция
| КОНЕЦ КАК АлкогольнаяПродукция,
|
| ВЫБОР КОГДА СоответствиеСерии.АлкогольнаяПродукция ЕСТЬ NULL
| И СоответствиеНоменклатура.АлкогольнаяПродукция ЕСТЬ NULL ТОГДА
| """"
| КОГДА НЕ СоответствиеСерии.АлкогольнаяПродукция ЕСТЬ NULL ТОГДА
| СоответствиеСерии.АлкогольнаяПродукция.Код
| ИНАЧЕ
| СоответствиеНоменклатура.АлкогольнаяПродукция.Код
| КОНЕЦ КАК КодАлкогольнойПродукции
|ИЗ
| ТаблицаНоменклатуры КАК Т
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствиеНоменклатурыЕГАИС КАК СоответствиеСерии
| ПО СоответствиеСерии.Номенклатура = Т.Номенклатура
| И СоответствиеСерии.Характеристика = Т.Характеристика
| И СоответствиеСерии.Серия = Т.Серия
|
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствиеНоменклатурыЕГАИС КАК СоответствиеНоменклатура
| ПО СоответствиеНоменклатура.Номенклатура = Т.Номенклатура
| И СоответствиеНоменклатура.Характеристика = Т.Характеристика
| И СоответствиеНоменклатура.Серия В (&ПустыеЗначенияСерий)
|ГДЕ
| ВЫБОР КОГДА СоответствиеСерии.АлкогольнаяПродукция ЕСТЬ NULL
| И СоответствиеНоменклатура.АлкогольнаяПродукция ЕСТЬ NULL ТОГДА
| ЗНАЧЕНИЕ(Справочник.КлассификаторАлкогольнойПродукцииЕГАИС.ПустаяСсылка)
| КОГДА НЕ СоответствиеСерии.АлкогольнаяПродукция ЕСТЬ NULL ТОГДА
| СоответствиеСерии.АлкогольнаяПродукция
| ИНАЧЕ
| СоответствиеНоменклатура.АлкогольнаяПродукция
| КОНЕЦ <> ЗНАЧЕНИЕ(Справочник.КлассификаторАлкогольнойПродукцииЕГАИС.ПустаяСсылка)
|");
Запрос.УстановитьПараметр("ТаблицаНоменклатуры", ТаблицаНоменклатуры);
Запрос.УстановитьПараметр("ПустыеЗначенияСерий", ИнтеграцияИС.НезаполненныеЗначенияОпределяемогоТипа("СерияНоменклатуры")); | ||
Wefast 5 - 03.12.20 - 16:50 | Ну в общем там идет выборка из 1 регистра, сначала он получается 1500 строк и потом еще 1500, перемножает их и получает 2500 000 строка. А потом выводит отличающиеся строки только.
НА вскидку сделал так: ВЫБРАТЬ ТаблицаНоменклатуры.Номенклатура КАК Номенклатура, ТаблицаНоменклатуры.Характеристика КАК Характеристика, ТаблицаНоменклатуры.Серия КАК Серия ПОМЕСТИТЬ ТаблицаНоменклатуры ИЗ &ТаблицаНоменклатуры КАК ТаблицаНоменклатуры ИНДЕКСИРОВАТЬ ПО Номенклатура, Характеристика, Серия ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Т.Номенклатура КАК Номенклатура, Т.Характеристика КАК Характеристика, Т.Серия КАК Серия, СоответствиеСерии.АлкогольнаяПродукция КАК АлкогольнаяПродукция ПОМЕСТИТЬ серии ИЗ ТаблицаНоменклатуры КАК Т ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствиеНоменклатурыЕГАИС КАК СоответствиеСерии ПО (СоответствиеСерии.Номенклатура = Т.Номенклатура) И (СоответствиеСерии.Характеристика = Т.Характеристика) И (СоответствиеСерии.Серия = Т.Серия) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Т.Номенклатура КАК Номенклатура, Т.Характеристика КАК Характеристика, Т.Серия КАК Серия, СоответствиеНоменклатура.АлкогольнаяПродукция КАК АлкогольнаяПродукция ПОМЕСТИТЬ соотв ИЗ ТаблицаНоменклатуры КАК Т ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствиеНоменклатурыЕГАИС КАК СоответствиеНоменклатура ПО (СоответствиеНоменклатура.Номенклатура = Т.Номенклатура) И (СоответствиеНоменклатура.Характеристика = Т.Характеристика) И (СоответствиеНоменклатура.Серия В (&ПустыеЗначенияСерий)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Т.Номенклатура КАК Номенклатура, Т.Характеристика КАК Характеристика, Т.Серия КАК Серия, ВЫБОР КОГДА серии.АлкогольнаяПродукция ЕСТЬ NULL И соотв.АлкогольнаяПродукция ЕСТЬ NULL ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторАлкогольнойПродукцииЕГАИС.ПустаяСсылка) КОГДА НЕ серии.АлкогольнаяПродукция ЕСТЬ NULL ТОГДА серии.АлкогольнаяПродукция ИНАЧЕ соотв.АлкогольнаяПродукция КОНЕЦ КАК АлкогольнаяПродукция, ВЫБОР КОГДА серии.АлкогольнаяПродукция ЕСТЬ NULL И соотв.АлкогольнаяПродукция ЕСТЬ NULL ТОГДА "" КОГДА НЕ серии.АлкогольнаяПродукция ЕСТЬ NULL ТОГДА серии.АлкогольнаяПродукция.Код ИНАЧЕ соотв.АлкогольнаяПродукция.Код КОНЕЦ КАК КодАлкогольнойПродукции ИЗ ТаблицаНоменклатуры КАК Т ЛЕВОЕ СОЕДИНЕНИЕ серии КАК серии ПО (серии.Номенклатура = Т.Номенклатура) И (серии.Характеристика = Т.Характеристика) И (серии.Серия = Т.Серия) ЛЕВОЕ СОЕДИНЕНИЕ соотв КАК соотв ПО (соотв.Номенклатура = Т.Номенклатура) И (соотв.Характеристика = Т.Характеристика) И (соотв.Серия В (&ПустыеЗначенияСерий)) ГДЕ ВЫБОР КОГДА серии.АлкогольнаяПродукция ЕСТЬ NULL И соотв.АлкогольнаяПродукция ЕСТЬ NULL ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторАлкогольнойПродукцииЕГАИС.ПустаяСсылка) КОГДА НЕ серии.АлкогольнаяПродукция ЕСТЬ NULL ТОГДА серии.АлкогольнаяПродукция ИНАЧЕ соотв.АлкогольнаяПродукция КОНЕЦ <> ЗНАЧЕНИЕ(Справочник.КлассификаторАлкогольнойПродукцииЕГАИС.ПустаяСсылка) В итоге сначала 1500 тысячи строк - потом в этом подзапросе схлопывается до 3. Потом во втором подзапросе 3 строки. В итоговой перемножается 3 на 3 | ||
Wefast 6 - 03.12.20 - 16:51 | Но хз, типовой запрос из Розницы, общий модуль ШтрихкодированиеЕГАИС
Все эти изменения в РИБ(с 15+ узлами) вносить удовольствие не из приятных |
|
Список тем форума |