Как устранить зависания и высокую нагрузку на диск при поиске номенклатуры в 1С:Розница

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

Работа в 1С:Розница 2.2 в файловом режиме через терминальный сервер часто сопровождается внезапными «фризами» интерфейса, особенно при использовании формы подбора номенклатуры. Проблема проявляется как резкий скачок очереди диска, при этом замена аппаратной части (например, переход на SSD) не всегда дает мгновенный результат. В этой статье мы подробно разберем, почему возникают такие задержки и как комплексно оптимизировать систему.

Проведение замера производительности и поиск узких мест

Первым делом нам необходимо выяснить, где именно происходит задержка: на уровне кода 1С или на уровне операционной системы. Для этого мы воспользуемся встроенным инструментом отладки. Проанализируем ситуацию по шагам:

  1. Запустим Конфигуратор и перейдем в меню «Отладка — Замер производительности».
  2. Воспроизведем проблему в пользовательском режиме (откроем форму подбора и введем поисковый запрос).
  3. Остановим замер и посмотрим на колонку «Чистое время».

Если мы видим, что основное время уходит на методы ПриИзменении или ОбработкаВыбора, проблема в коде расширений. Если же время распределено по системным вызовам динамического списка, значит, проблема в обращении к диску или блокировках файловой базы данных.

Оптимизация полнотекстового поиска (ПП)

Полнотекстовый поиск — это мощный инструмент, но в файловом режиме он создает значительную нагрузку на дисковую подсистему из-за постоянного обращения к индексам. Разберем, как его настроить или отключить:

Рассмотрим ситуацию, когда индексы ПП повреждены или перегружены. Попробуем обновить индекс или полностью его отключить, чтобы проверить, исчезнут ли лаги. Для управления индексами используем программный интерфейс или стандартную обработку «Управление полнотекстовым поиском» в разделе «Администрирование».


// Пример программного управления индексом полнотекстового поиска
ПолнотекстовыйПоиск.УстановитьРежимПеремешивания(Истина);
ПолнотекстовыйПоиск.ОбновитьИндекс(Ложь, Истина); // Обновление без фонового процесса

Если поиск в подборе настроен «По всем полям», система вынуждена сканировать весь индекс. Рекомендуем переключить поиск на конкретные поля (например, только «Наименование» или «Артикул»), что значительно снизит количество дисковых операций чтения.

Настройка аппаратной части и параметров BIOS

Часто проблема кроется не в самой 1С, а в том, как сервер взаимодействует с оборудованием. Проанализируем настройки электропитания и таймеров:

Специфика файлового режима и блокировок

Поскольку мы работаем с файловой базой (*.1CD), важно понимать механизм блокировок. В 1С файловая база блокируется на уровне таблиц. Если один пользователь выполняет тяжелый поиск, который инициирует запись во временные таблицы или обновление индексов, остальные пользователи будут ждать освобождения ресурса.

Проверим размер файла лога регистрации. Путь к нему обычно: путь_к_базе\1Cv8Log\1Cv8.lgf. Если этот файл разросся до нескольких гигабайт, любая запись события (например, открытие формы) будет тормозить из-за медленного позиционирования головки диска или особенностей работы файловой системы с большими объектами. Рекомендуется сократить лог через Конфигуратор или настроить его разделение по периодам.

Влияние антивирусного ПО и защитника Windows

При поиске в 1С активно создаются временные файлы в профиле пользователя (кэш). Рассмотрим, какие пути необходимо добавить в исключения антивируса, чтобы он не блокировал диск в момент сканирования:

  1. Каталог с самой базой данных и файл 1Cv8.1CD.
  2. Папки кэша пользователя: %AppData%\1C\1cv8 и %LocalAppData%\1C\1cv8.
  3. Расширения файлов: *.1cl, *.1cc, *.1cd, *.lgf.

Диагностика физического состояния SSD

Как показывает практика, использование потребительских SSD (например, серии Kingston SHFS) в качестве серверных решений — плохая идея. У таких дисков при заполнении буфера или перегреве контроллера резко падает скорость случайного доступа. Выясним причину через мониторинг ресурсов Windows. Если показатель «Длина очереди диска» стабильно выше 1 или 2 при выполнении поиска — диск не справляется.

Попробуем использовать утилиту chdbfl.exe. Это важный шаг, так как стандартное «Тестирование и исправление» из Конфигуратора проверяет логическую целостность, а chdbfl.exe (находится в папке bin платформы) проверяет физическую структуру файла базы данных. Перед запуском обязательно создайте резервную копию!

Оптимизация динамических списков в форме подбора

В управляемых формах 1С подбор часто реализован через динамические списки. Если в расширении или основной конфигурации динамический список настроен на выборку из избыточных таблиц (например, остатки и цены с множеством соединений), это будет «вешать» диск.

Разберем настройки динамического списка:

Проблема процесса splwow64.exe в терминальном режиме

Интересная особенность работы 1С в RDP-сессиях: при открытии некоторых форм система может опрашивать доступные принтеры. Если на сервере установлены некорректные драйверы печати, процесс splwow64.exe (связующее звено между 32-битными приложениями и 64-битной системой печати) может зависнуть. Это вызывает «фриз» интерфейса 1С. Проанализируем диспетчер задач в момент лага: если splwow64.exe потребляет много ресурсов, попробуйте сменить драйверы принтеров на универсальные или отключить проброс принтеров в настройках RDP.

Резюме: Решение проблемы всегда кроется в комплексе мер. Начните с очистки кэша и проверки базы утилитой chdbfl.exe, затем перейдите к настройке схемы электропитания сервера и исключений антивируса. Если база продолжает тормозить при 4-х пользователях, рассмотрите переход на SQL-версию (даже бесплатный MS SQL Express), так как это снимет проблему табличных блокировок и неэффективного использования дискового кэша файловой системой.

← На главную