Почему 1С зависает на «Загрузке конфигурационной информации» при запуске с локального ПК и как это исправить?

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

Каждый системный администратор и специалист 1С рано или поздно сталкивается с ситуацией, когда при запуске клиентского приложения 1С:Предприятие на рабочем компьютере пользователя процесс намертво зависает на этапе «Загрузка конфигурационной информации». При этом, если зайти на сервер через удаленный рабочий стол (RDP) и запустить 1С в терминальной сессии, программа открывается мгновенно и работает без каких-либо нареканий. Давайте разберем эту проблему по шагам, проанализируем причины ее возникновения и рассмотрим наиболее эффективные методы ее решения.

Выясняем причину: почему в терминале всё работает, а на ПК зависает?

Для того чтобы понять, где именно происходит сбой, нам необходимо проанализировать архитектуру взаимодействия клиента и сервера. Когда мы запускаем 1С внутри терминальной сессии на сервере, клиентское приложение и сервер СУБД (например, MS SQL Server) физически находятся на одной машине. В этом случае для обмена данными используется сверхбыстрый протокол Shared Memory (общая память), который работает напрямую через оперативную память сервера, минуя сетевые протоколы и сетевые адаптеры.

Когда же пользователь запускает 1С со своего локального персонального компьютера, взаимодействие происходит по сети через протокол TCP/IP. На этапе «Загрузка конфигурационной информации» платформа скачивает с сервера метаданные конфигурации (таблицы Config и ConfigSave). Объем этих данных может составлять от нескольких десятков до сотен мегабайт. Любые микросбои в сети, проблемы с фрагментацией пакетов, неоптимальные планы запросов СУБД или задержки сетевой карты приводят к тому, что передача этого огромного массива мелких пакетов зависает.

Рассмотрим подробнее основные способы решения этой проблемы, начиная с наиболее действенных.

Решение 1. Обновление СУБД MS SQL Server и оптимизация запросов

Как показывает практика, очень часто корень проблемы кроется в некорректной работе оптимизатора запросов MS SQL Server. В версиях SQL Server 2016 (особенно до пакета обновлений Service Pack 2, например, на накопительном обновлении CU8) присутствовал критический баг в новом оптимизаторе запросов (Cardinality Estimator). Он строил неверные планы выполнения для тяжелых запросов к системным таблицам метаданных 1С. В результате СУБД тратила колоссальное количество времени на обработку запроса конфигурации, из-за чего клиент на ПК уходил в бесконечное ожидание.

Для исправления этой ситуации выполним следующие шаги:

  1. Обновление MS SQL Server: Обновите ваш SQL Server 2016 до актуального Service Pack (как минимум до SP2 или SP3). Это полностью устраняет известные ошибки оптимизатора и повышает общую стабильность работы СУБД.
  2. Включение режима совместимости со старым оптимизатором: Если оперативно обновить СУБД невозможно, временно переключите базу данных на использование старого оптимизатора запросов (Legacy Cardinality Estimation). Это заставит SQL Server строить более простые и предсказуемые планы для таблиц конфигурации.

Для активации старого оптимизатора выполните в среде SQL Server Management Studio (SSMS) следующий T-SQL запрос:


ALTER DATABASE [Имя_Вашей_Базы_1С] 
SET COMPATIBILITY_LEVEL = 130;
GO
ALTER DATABASE SCOPED CONFIGURATION 
SET LEGACY_CARDINALITY_ESTIMATION = ON;
GO

Этот простой шаг в большинстве случаев мгновенно решает проблему «зависания» клиента на этапе старта. Для комплексной проверки параметров базы данных и выявления проблем с конфигурацией сервера подойдёт инструмент для аудита настроек СУБД под 1С.

Решение 2. Оптимизация настроек сетевых карт на сервере и клиентах

Если СУБД обновлена, но зависание продолжается, нам необходимо проанализировать сетевые настройки. При передаче больших объемов конфигурационных данных сетевые карты серверов часто пытаются оптимизировать трафик с помощью аппаратных функций разгрузки процессора. К сожалению, эти технологии (особенно на виртуальных машинах Hyper-V или VMware) часто работают некорректно, вызывая потерю и искажение TCP-пакетов.

Выполните следующие настройки на сетевом адаптере сервера приложений 1С и сервера СУБД:

  1. Откройте «Диспетчер устройств» на сервере.
  2. Найдите ваш сетевой адаптер, нажмите правой кнопкой мыши и выберите «Свойства».
  3. Перейдите на вкладку «Дополнительно» (Advanced).
  4. Найдите и отключите (выставите значение Disabled) следующие параметры:
    • Large Send Offload (LSO) (Разгрузка большой отправки — как для IPv4, так и для IPv6).
    • TCP Chimney Offload (Разгрузка TCP-дымохода).
    • IPv4 Checksum Offload (Разгрузка контрольной суммы IPv4).
  5. Нажмите «ОК» для применения изменений (внимание: на 1-2 секунды может пропасть сетевое подключение).

Отключение этих опций перекладывает расчет контрольных сумм и фрагментацию пакетов на центральный процессор, что полностью устраняет скрытые сетевые задержки при скачивании метаданных 1С.

Решение 3. Полная переустановка платформы 1С и очистка кэша

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

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

  1. Полностью удалите все версии платформы 1С:Предприятие через «Панель управления» -> «Программы и компоненты».
  2. Удалите временные папки кэша пользователя. Для этого перейдите в следующие директории и полностью очистите их содержимое:
    • %userprofile%\AppData\Local\1C\1cv8
    • %userprofile%\AppData\Roaming\1C\1cv8
  3. Установите заново чистую и актуальную версию платформы 1С:Предприятие, соответствующую версии на сервере приложений.
  4. Заново добавьте информационную базу в список запуска.

Решение 4. Настройка файла nethasp.ini для ускорения поиска лицензий

Мало кто знает, но именно на этапе «Загрузка конфигурационной информации» платформа 1С производит финальное закрепление и проверку лицензии HASP. Если файл nethasp.ini на локальном компьютере не настроен, платформа начинает сканировать локальную сеть широковещательными запросами (broadcast) по всем доступным сетевым адаптерам (включая виртуальные адаптеры VPN, VirtualBox и т.д.). Этот процесс может затягивать запуск программы на 5–15 минут, имитируя зависание.

Чтобы избежать этого, настройте файл конфигурации лицензий. Найдите файл nethasp.ini (обычно он находится в папке C:\Program Files\1cv8\conf\ или в папке конкретной версии платформы) и приведите его секцию TCP/IP к следующему виду, жестко указав IP-адрес вашего сервера лицензирования:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.3.10  ; Укажите здесь реальный IP вашего сервера лицензий
NH_PORT_NUMBER = 475
NH_USE_BROADCAST = Disabled

Отключение широковещательного поиска (NH_USE_BROADCAST = Disabled) заставит 1С мгновенно обращаться по конкретному IP-адресу, исключая сетевые таймауты при старте.

Решение 5. Анализ блокировок в СУБД

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

Чтобы выявить эту проблему, проанализируем состояние транзакций в MS SQL Server с помощью системной процедуры:


USE master;
GO
EXEC sp_who2;
GO

В колонке BlkBy (Blocked By) обратите внимание на наличие номеров процессов (SPID). Если вы обнаружили процесс, который блокирует остальные сессии (например, процесс с номером 72), детально изучите его и при необходимости завершите командой KILL 72 или выполните перезапуск службы «Агент сервера 1С:Предприятие».

Применяя комплексный подход — от обновления СУБД до точечной настройки сетевых параметров и оптимизации поиска лицензий, мы гарантированно избавимся от проблемы долгого запуска 1С и обеспечим стабильную работу системы для всех пользователей сети.

← На главную