Почему медленно открывается список номенклатуры в 1С:УТ 11 и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе с крупными каталогами товаров (от 30 000 позиций и выше) в конфигурациях «1С:Управление торговлей 11», «1С:ERP» или «1С:Комплексная автоматизация» пользователи часто сталкиваются с существенным замедлением работы: форма списка справочника Номенклатура может открываться десятки секунд или даже зависать на минуту. Проанализируем, почему возникает эта проблема и как решить ее типовыми средствами программы без внесения изменений в конфигурацию.

Выясняем истинную причину медленной работы

Первое предположение, которое часто возникает у администраторов и пользователей, — справочник тормозит из-за общего количества позиций в одном виде номенклатуры или из-за отсутствия иерархии групп. Однако платформа 1С:Предприятие 8.3 в управляемых формах использует механизм Динамический список, который считывает данные порциями (порционная выборка) и без проблем отображает сотни тысяч записей за доли секунды.

Реальная причина деградации производительности кроется в механизме быстрых отборов по дополнительным реквизитам. Разберем механику процесса:

  1. Множественные агрегатные запросы: Когда в панель быстрых фильтров вида номенклатуры выводится большое количество дополнительных реквизитов (например, 20–24 свойства), система при открытии формы выполняет отдельные запросы по каждому реквизиту. Цель платформы — получить список только тех значений свойств, которые фактически присвоены товарам выбранного вида. При объеме в десятки тысяч строк это приводит к десяткам тяжелых сканирований базы данных.
  2. Архитектура хранения данных (EAV): Значения дополнительных реквизитов хранятся в табличных частях или специальных регистрах сведений. Наложение условий и соединений по 24 колонкам одновременно превращает запрос динамического списка в громоздкую конструкцию с множественными левыми соединениями.
  3. Отсутствие прямых индексов: Таблицы значений дополнительных реквизитов не имеют прямых составных индексов под произвольные комбинации всех 24 свойств, что заставляет СУБД выполнять операцию полного сканирования таблиц вместо точечного поиска по индексу.

Если отключить вывод дополнительных реквизитов на панель быстрых фильтров, форма списка начинает открываться мгновенно. Рассмотрим, как организовать удобную работу пользователей и сохранить возможность фильтрации без ущерба для скорости.

Способ 1. Оптимизация состава быстрых фильтров

Самое эффективное и простое действие — сократить количество полей, выводимых на панель быстрых отборов вида номенклатуры.

  1. Перейдем в раздел НСИ и администрирование → Классификаторы и аналитика номенклатуры → Виды номенклатуры.
  2. Откроем нужный вид номенклатуры и перейдем на вкладку Дополнительные реквизиты (или настройки фильтров по свойствам).
  3. Оставим в качестве быстрых отборов только 2–4 наиболее критичных и высокоселективных свойства (например, «Бренд» или «Основная подкатегория»). Для остальных реквизитов снимем признак отображения в быстрых фильтрах.
  4. Для редких отборов по специфическим параметрам научим пользователей использовать стандартную команду формы: Еще → Настроить список... → вкладка «Отбор». Этот механизм накладывает фильтр напрямую на динамический список без предварительного построения тяжелых списков доступных значений при старте формы.

Способ 2. Использование сегментов номенклатуры с регламентным расчетом

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

  1. Включим опцию использования сегментов: НСИ и администрирование → Номенклатура → Сегменты номенклатуры.
  2. Создадим новый сегмент номенклатуры и установим для него способ формирования Периодически обновлять.
  3. В схеме компоновки данных сегмента настроим нужные отборы по любым из 24 дополнительных реквизитов.
  4. Настроим расписание регламентного задания ФормированиеСегментов на ночное или нерабочее время.

В результате сложные запросы по объединению и фильтрации дополнительных свойств будут выполняться регламентно в фоне, а при открытии справочника Номенклатура пользователь сможет мгновенно отфильтровать список по готовой таблице сегмента без задержек.

Способ 3. Шаблоны наименований и полнотекстовый поиск

Часто избыточное количество отборов используется только для того, чтобы быстро идентифицировать товар с конкретными техническими характеристиками. Эту задачу можно решить через автоматическое формирование наименования и полнотекстовый поиск (ПТП):

  1. В карточке вида номенклатуры настроим Шаблон наименования для печати и Шаблон рабочего наименования, включив туда формулу из ключевых дополнительных реквизитов (например: [Бренд] + " " + [Модель] + " " + [Цвет] + " " + [Размер]).
  2. При записи номенклатуры ее наименование сформируется автоматически и попадет в индекс полнотекстового поиска.
  3. Пользователю достаточно ввести нужные параметры через пробел в стандартную строку поиска списка номенклатуры, и платформа выдаст точный результат за доли секунды.

Способ 4. Разделение видов номенклатуры через общие реквизиты

Существует заблуждение, что нельзя разделить крупный вид номенклатуры на несколько логических подкатегорий из-за потери общих свойств. Механизм библиотеки стандартных подсистем позволяет использовать одни и те же дополнительные реквизиты для разных видов номенклатуры:

  1. Создадим несколько более узких видов номенклатуры, разделив массив в 30 000 позиций на логические группы по 5 000–10 000 позиций.
  2. При настройке состава свойств в новом виде номенклатуры воспользуемся командой Добавить → Из другого набора и выберем уже существующие в базе реквизиты.
  3. Это сохранит сквозную аналитику, но существенно сократит объем данных, обрабатываемых при наложении фильтров внутри одного вида.

Способ 5. Перенос параметров в характеристики номенклатуры

Если большая часть из 30 000 позиций представляет собой один и тот же товар, различающийся только потребительскими свойствами (размер, цвет, фасовка), целесообразно перевести учет на Характеристики номенклатуры:

  1. В виде номенклатуры включим использование характеристик (общих для вида или индивидуальных).
  2. Перенесем вариативные свойства из реквизитов номенклатуры в реквизиты характеристик.
  3. Это сократит физическое число элементов в справочнике Номенклатура в разы, что кардинально повысит общую отзывчивость интерфейса и документов.

Административные регламентные операции

При активном изменении состава реквизитов и массовой загрузке товаров обязательно проконтролируем серверные регламентные задания:

  1. Обновление статистики СУБД: На сервере SQL выполним процедуру UPDATE STATISTICS для таблиц справочника номенклатуры и его табличных частей, чтобы оптимизатор СУБД строил корректные планы запросов.
  2. Индексы поиска: Убедимся, что регламентные задания ОбновлениеИндексаППД и СлияниеИндексовППД выполняются по расписанию и без ошибок.
← На главную