Почему долго отрабатывает ОткрытьФорму и как вылечить тормоза сервера 1С при запуске

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

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

Анализируем симптомы и выявляем «виновника»

Проанализируем ситуацию: если комплексный замер производительности контура 1С и поиск узких мест показывает, что время «висит» именно на выполнении системной функции ОткрытьФорму, а анализ SQL сервера глазами 1С-ника подтверждает, что показатели дисковой подсистемы в норме, значит, проблема локализована внутри сервера приложений 1С. Основными признаками деградации рабочего процесса являются:

  1. Проседание APDEX по показателю «Общее время запуска приложения» (вход в 1С вместо секунд длится минуты).
  2. Зависимость от объема памяти: проблема решается только принудительным завершением самого «толстого» процесса rphost.
  3. Эффект накопления: тормоза появляются спустя 12–24 часа после последнего перезапуска службы.

Разберем по шагам основные причины и способы их устранения.

Решение 1: Настройка автоматического перезапуска рабочих процессов

Выясним причину, по которой rphost начинает тормозить. Одной из главных проблем старых версий платформы (например, 8.3.12) является фрагментация памяти и накопление дескрипторов. Процесс может не потреблять всю доступную память, но внутри него свободные блоки становятся настолько мелкими, что выделение памяти под новую форму занимает огромное время.

Рассмотрим, как автоматизировать процесс «оздоровления» сервера через консоль администрирования кластера 1С:

  1. Откроем свойства Локального кластера.
  2. Найдем параметр Интервал перезапуска (по умолчанию 0). Установим значение 86400 (раз в сутки) или даже меньше, если нагрузка очень высокая.
  3. Настроим Допустимый объем памяти. Это позволит платформе самой «ротировать» процессы, когда они достигают критической массы, перенося сеансы на новые, «чистые» процессы.
  4. Установим Выключать работающие процессы через (например, 300 секунд), чтобы дать старым сеансам завершить работу.

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

Решение 2: Переход на новый формат Журнала Регистрации

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

Рассмотрим алгоритм перехода на новый формат:

  1. В конфигураторе зайдем в меню Администрирование — Настройка журнала регистрации.
  2. Если выбран старый формат, выполним конвертацию в новый (SQLite, расширение .lgf).
  3. Посмотрим на результат: новый формат работает значительно быстрее с большими объемами данных и не блокирует процесс rphost при конкурентной записи.

Если конвертация невозможна, настроим сокращение журнала (архивирование), чтобы активный файл 1Cv8.lgp не превышал нескольких сотен мегабайт.

Решение 3: Очистка серверного кэша и временных файлов

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

Разберем процедуру профилактики:

  1. Остановим службу 1C:Enterprise 8.3 Server Agent.
  2. Перейдем в каталог профиля сервера (обычно C:\Program Files\1cv8\srvinfo) и очистим содержимое папок snccntx и кэш метаданных в reg_1541.
  3. Очистим системную папку %TEMP% для пользователя службы (обычно USR1CV8).
  4. Запустим службу снова.

Для автоматизации этого процесса можно использовать простой скрипт:


net stop "1C:Enterprise 8.3 Server Agent"
del /q /s /f "C:\Users\USR1CV8\AppData\Local\Temp\*"
net start "1C:Enterprise 8.3 Server Agent"

Решение 4: Оптимизация динамических списков

Если тормозит именно ОткрытьФорму для списка документов, проанализируем сам Динамический список. При первом утреннем открытии SQL-сервер может строить неоптимальный план запроса. Чтобы минимизировать такие проблемы, важно использовать качественное MaintenanceSolution от Ola Hallengren с доработкой IndexOptimize, которое позволит поддерживать индексы в актуальном состоянии.

Посмотрим, что можно сделать в коде:

  1. Проверим наличие индекса по полям, участвующим в отборах.
  2. Убедимся, что в запросе динамического списка не используются функции в условии ГДЕ.
  3. Попробуем установить параметр АвтозаполнениеПриЗапуске в значение Ложь, если форма открывается слишком долго из-за избыточных данных.

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


ПараметрыФормы = Новый Структура("Отбор", Новый Структура("Статус", Перечисления.Статусы.Активен));
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаСписка", ПараметрыФормы);

Итоги и рекомендации

Мы проанализировали ситуацию, когда сервер 1С начинает «задыхаться» к утру. Основной вывод: не нужно бороться с симптомами, убивая rphost вручную. Правильная настройка кластера (перезапуск процессов по расписанию и лимитам памяти) в сочетании с современным форматом журнала регистрации позволяет полностью устранить проблему. Также крайне рекомендуется обновить платформу до актуальных релизов (ветки 8.3.18 и выше), где исправлено множество утечек памяти, характерных для версии 8.3.12.

← На главную