Работа в 1С:Розница 2.2 в файловом режиме через терминальный сервер часто сопровождается внезапными «фризами» интерфейса, особенно при использовании формы подбора номенклатуры. Проблема проявляется как резкий скачок очереди диска, при этом замена аппаратной части (например, переход на SSD) не всегда дает мгновенный результат. В этой статье мы подробно разберем, почему возникают такие задержки и как комплексно оптимизировать систему.
Первым делом нам необходимо выяснить, где именно происходит задержка: на уровне кода 1С или на уровне операционной системы. Для этого мы воспользуемся встроенным инструментом отладки. Проанализируем ситуацию по шагам:
Если мы видим, что основное время уходит на методы ПриИзменении или ОбработкаВыбора, проблема в коде расширений. Если же время распределено по системным вызовам динамического списка, значит, проблема в обращении к диску или блокировках файловой базы данных.
Полнотекстовый поиск — это мощный инструмент, но в файловом режиме он создает значительную нагрузку на дисковую подсистему из-за постоянного обращения к индексам. Разберем, как его настроить или отключить:
Рассмотрим ситуацию, когда индексы ПП повреждены или перегружены. Попробуем обновить индекс или полностью его отключить, чтобы проверить, исчезнут ли лаги. Для управления индексами используем программный интерфейс или стандартную обработку «Управление полнотекстовым поиском» в разделе «Администрирование».
// Пример программного управления индексом полнотекстового поиска
ПолнотекстовыйПоиск.УстановитьРежимПеремешивания(Истина);
ПолнотекстовыйПоиск.ОбновитьИндекс(Ложь, Истина); // Обновление без фонового процесса
Если поиск в подборе настроен «По всем полям», система вынуждена сканировать весь индекс. Рекомендуем переключить поиск на конкретные поля (например, только «Наименование» или «Артикул»), что значительно снизит количество дисковых операций чтения.
Часто проблема кроется не в самой 1С, а в том, как сервер взаимодействует с оборудованием. Проанализируем настройки электропитания и таймеров:
Поскольку мы работаем с файловой базой (*.1CD), важно понимать механизм блокировок. В 1С файловая база блокируется на уровне таблиц. Если один пользователь выполняет тяжелый поиск, который инициирует запись во временные таблицы или обновление индексов, остальные пользователи будут ждать освобождения ресурса.
Проверим размер файла лога регистрации. Путь к нему обычно: путь_к_базе\1Cv8Log\1Cv8.lgf. Если этот файл разросся до нескольких гигабайт, любая запись события (например, открытие формы) будет тормозить из-за медленного позиционирования головки диска или особенностей работы файловой системы с большими объектами. Рекомендуется сократить лог через Конфигуратор или настроить его разделение по периодам.
При поиске в 1С активно создаются временные файлы в профиле пользователя (кэш). Рассмотрим, какие пути необходимо добавить в исключения антивируса, чтобы он не блокировал диск в момент сканирования:
1Cv8.1CD.%AppData%\1C\1cv8 и %LocalAppData%\1C\1cv8.*.1cl, *.1cc, *.1cd, *.lgf.Как показывает практика, использование потребительских SSD (например, серии Kingston SHFS) в качестве серверных решений — плохая идея. У таких дисков при заполнении буфера или перегреве контроллера резко падает скорость случайного доступа. Выясним причину через мониторинг ресурсов Windows. Если показатель «Длина очереди диска» стабильно выше 1 или 2 при выполнении поиска — диск не справляется.
Попробуем использовать утилиту chdbfl.exe. Это важный шаг, так как стандартное «Тестирование и исправление» из Конфигуратора проверяет логическую целостность, а chdbfl.exe (находится в папке bin платформы) проверяет физическую структуру файла базы данных. Перед запуском обязательно создайте резервную копию!
В управляемых формах 1С подбор часто реализован через динамические списки. Если в расширении или основной конфигурации динамический список настроен на выборку из избыточных таблиц (например, остатки и цены с множеством соединений), это будет «вешать» диск.
Разберем настройки динамического списка:
Интересная особенность работы 1С в RDP-сессиях: при открытии некоторых форм система может опрашивать доступные принтеры. Если на сервере установлены некорректные драйверы печати, процесс splwow64.exe (связующее звено между 32-битными приложениями и 64-битной системой печати) может зависнуть. Это вызывает «фриз» интерфейса 1С. Проанализируем диспетчер задач в момент лага: если splwow64.exe потребляет много ресурсов, попробуйте сменить драйверы принтеров на универсальные или отключить проброс принтеров в настройках RDP.
Резюме: Решение проблемы всегда кроется в комплексе мер. Начните с очистки кэша и проверки базы утилитой chdbfl.exe, затем перейдите к настройке схемы электропитания сервера и исключений антивируса. Если база продолжает тормозить при 4-х пользователях, рассмотрите переход на SQL-версию (даже бесплатный MS SQL Express), так как это снимет проблему табличных блокировок и неэффективного использования дискового кэша файловой системой.