Почему 1С:Предприятие зависает в терминальной сессии RDP при выполнении длительных операций?

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

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

Разберем причину: связь 1С и процесса splwow64.exe

Проанализируем ситуацию: почему учетная система, выполняющая чисто вычислительные задачи, вдруг начинает зависеть от подсистемы печати? Основным виновником здесь выступает процесс splwow64.exe (Print Driver Host for Applications). Этот процесс является своеобразным «мостом» в 64-битных версиях Windows (таких как Server 2008 R2 или 2012 R2), который позволяет 32-битным приложениям (которым обычно является клиент 1С) взаимодействовать с 64-битной подсистемой печати.

Выясним, в какие моменты 1С обращается к этому процессу:

Метод 1: Настройка принтера по умолчанию внутри сессии

Рассмотрим самый простой и быстрый способ решения. Проблема часто заключается в том, что 1С пытается «достучаться» до медленного или сетевого принтера. Чтобы исключить эту задержку, выполним следующие шаги:

  1. Зайдем в терминальную сессию под пользователем, у которого возникают зависания.
  2. Перейдем в раздел «Устройства и принтеры».
  3. Установим в качестве принтера по умолчанию виртуальное устройство, не требующее физического отклика, например, Microsoft XPS Document Writer или любой программный PDF-принтер.

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

Метод 2: Оптимизация работы процесса splwow64.exe через реестр

Посмотрим на техническую сторону работы Windows. По умолчанию в серверных операционных системах процесс splwow64.exe завершается автоматически через 2 минуты простоя. Постоянный запуск и завершение этого процесса при обращении 1С может приводить к «мертвым» блокировкам. Мы можем принудительно увеличить время жизни этого процесса.

Выполним редактирование реестра на стороне сервера:

  1. Запустите regedit.exe от имени администратора.
  2. Перейдите к ветке: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print.
  3. Создайте новый параметр типа DWORD (32 бита) с именем SplWOW64TimeOutSeconds.
  4. Установите значение, например, 3600 (в десятичной системе), что соответствует одному часу.

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

Метод 3: Изоляция драйверов печати

Проанализируем ситуацию, когда зависание вызвано некорректной работой конкретного драйвера принтера (например, HP Universal Print Driver). В Windows Server есть механизм, позволяющий запускать драйверы в изолированном процессе, чтобы их сбой не влиял на другие службы.

  1. Откройте оснастку «Управление печатью» (Print Management).
  2. Выберите раздел «Драйверы».
  3. Нажмите правой кнопкой мыши на используемый драйвер и выберите пункт «Изоляция драйверов» -> «Изолирован» (Isolated).

Это гарантирует, что если драйвер «повиснет», он не заблокирует основной поток splwow64.exe, и 1С сможет продолжить работу.

Метод 4: Отключение перенаправления принтеров (если печать не требуется)

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

Метод 5: Проблема «невидимых» модальных окон

Иногда зависание является мнимым. В режиме RemoteApp или при специфических настройках RDP модальное окно (например, вопрос «Завершить выполнение?» или сообщение об ошибке) может оказаться позади основного окна 1С. Пользователь его не видит, а программа ждет реакции.

Чтобы проверить это, попробуйте нажать комбинацию клавиш Alt + Tab внутри сессии или несколько раз клавишу Esc. Если после этого программа «ожила», значит, проблема была в фокусе окон. Для борьбы с этим рекомендуется использовать современные версии платформы и отключать использование модальных окон в настройках конфигурации (если это позволяет код).

Заключение

Подведем итог. Зависания 1С в терминале чаще всего связаны не с объемом базы данных или кодом обработки, а с инфраструктурными особенностями Windows. Взаимодействие 32-битной 1С и подсистемы печати через splwow64.exe — это известное узкое место. Применяя комплекс мер от настройки принтера по умолчанию до правки реестра, можно добиться стабильной работы системы даже на устаревших ОС, таких как Windows Server 2008 R2.

← На главную