Ускоряем поиск по акцизной марке ЕГАИС в 1С:Розница 2.3.5

Публикация № 1271091

Администрирование - Администрирование данных 1С - Поиск данных

Ускоряем поиск по акцизной марке ЕГАИС (для целей эксперимента было сгенерировано 1 000 000 кодов акцизных марок ЕГАИС нового формата).

До одного сообщения на форуме не задумывался даже о том, что поиск по марке может быть долгим, так как под рукой не было баз с большим количеством акцизных марок. Отладчик показывал упорно, что большая часть времени тратится на заполнение остатка в РМК при подборе по марке. Поэтому решил наполнить базу, сгенерировав некоторое количество марок, добавив их в справочник "Штрихкоды упаковок и товаров", а также статус "В наличии" в регистр сведений "Акцизные марки ЕГАИС".

Итак, для целей эксперимента было сгенерировано 1 000 000 кодов акцизных марок ЕГАИС нового формата. База используется файловая, компьютер вполне посредственный, файл базы располагается на HDD.

Посмотрим, на что 1С тратит больше всего времени при сканировании акцизной марки ЕГАИС в РМК:

Это результат запроса, который возвращает нам "специфику" алкогольной продукции: код марки, статус, какой организации принадлежит марка и т.д.

Собственно, сам текст запроса располагается в общем модуле "ШтрихкодированиеЕГАИС" в функции "ТекстЗапросаПолученияСпецификиДанныхШтрихкодов":

 
 Листинг запроса

Сам запрос ничего сверхъестественного не представляет. Однако, если посмотреть внимательно на индексирование, порядок полей в связях таблиц и порядок измерений регистра сведений "Акцизные марки ЕГАИС", то приходим к выводу, что есть куда стремиться) А именно, порядок индексов должен быть строго в последовательности

  • ОрганизацияЕГАИС
  • АкцизнаяМарка

По сути, разработчики забыли про статью Типичные причины неоптимальной работы запросов и методы оптимизации, а именно:

 
 Выдержка из статьи

Ну что ж, давайте поменяем порядок полей индекса и порядок связей:

 
 Измененный текст запроса (для расширения)

Перезапускаем 1С, заходим в РМК, включаем замер производительности и сканируем акцизную марку:

Думаю, в дополнительных комментариях нет смысла) Вывод: используйте индексы правильно!

Желающие могут скачать расширение или использовать готовый текст исправленной функции:

 
 Листинг готовой функции

 

Скачать файлы

Наименование Файл Версия Размер
Ускоряем поиск по акцизной марке ЕГАИС в 1С:Розница 2.3.5: готовое расширение

.cfe 5,58Kb
4
.cfe 5,58Kb 4 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. mikitondom 23 18.08.20 21:17 Сейчас в теме
Отличный разбор и эффект.
Еще бы как то порешать проблему транзакций обмена при записи-
пробитии чека..)
2. user594182_igorhi 20.09.20 07:40 Сейчас в теме
Здравствуйте.
Устанавливать через Администрирование\Инернет-сервисы...\Обновление программ...\Обновление из файла...?
Выскочила ошибка:

При установке исправления хасУскорениеПоискаПоМарке произошла ошибка:

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

Это нормально, правильно?
3. Stason13 10.11.20 18:59 Сейчас в теме
Для сигарет такого нет?))
Оставьте свое сообщение