В практике администрирования систем на базе 1С:Предприятие часто встречается крайне загадочная проблема: в терминальной сессии RDP у пользователя намертво зависает 1С при попытке открыть определенный тип документа (например, документ ЗаказПоставщику). При этом база данных работает в клиент-серверном режиме, сама конфигурация (например, УТП или УПП на обычных формах) является типовой, а при входе под той же учетной записью с любого другого компьютера документ открывается мгновенно. Более того, если за проблемный компьютер садится другой пользователь под своими учетными данными, зависание повторяется именно на этом рабочем месте.
На первый взгляд это кажется парадоксом. Поскольку сессия выполняется на терминальном сервере, все вычисления, обращения к базе данных и работа платформы происходят там же. Локальный компьютер пользователя получает лишь готовую картинку по протоколу RDP и передает обратно сигналы клавиатуры и мыши. Тем не менее, жесткая привязка зависания к конкретному физическому железу указывает на то, что локальный ПК активно вмешивается в процесс взаимодействия с сервером. Давайте подробно проанализируем причины этого поведения и разберем по шагам методы решения проблемы.
Это самая распространенная и неочевидная причина зависания 1С при работе с документами в терминальном режиме. При открытии формы документа (особенно содержащего сложные табличные части) платформа 1С выполняет инициализацию параметров страницы для возможного вывода на печать. Для этого движок 1С обращается к принтеру, установленному в системе по умолчанию, запрашивая его технические характеристики (поддерживаемые форматы бумаги, поля, разрешение).
Если на локальном компьютере настроен проброс принтеров в RDP-сессию, сервер пытается опросить локальный принтер клиента через службу печати (Spooler). Если на физическом ПК принтером по умолчанию выбран сетевой принтер с "тяжелым" драйвером (например, универсальные драйверы HP UPD или Kyocera KX) или устройство в данный момент недоступно, поток 1С уходит в бесконечное ожидание ответа от локального спулера печати, что внешне выглядит как полное зависание интерфейса.
Выполним следующие диагностические и лечебные действия:
mstsc.exe. Перейдем на вкладку Локальные ресурсы и снимем флажок с пункта Принтеры. Проверим, исчезла ли проблема при открытии документа.Microsoft Print to PDF или Microsoft XPS Document Writer.
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices
И удалим все неактуальные принтеры, содержащие в названии префикс "redirected". Также рекомендуется очистить настройки печати 1С в хранилище системных настроек, так как платформа может хранить индивидуальные параметры печати для конкретных форм документов.Документы закупки и продажи (такие как ЗаказПоставщику или РеализацияТоваровУслуг) в торговых конфигурациях тесно связаны с функционалом торгового оборудования: сканерами штрихкодов, терминалами сбора данных (ТСД) или фискальными регистраторами. При открытии формы документа код конфигурации инициализирует подключенные устройства.
Если в настройках 1С для данного рабочего места (имя которого транслируется из RDP-сессии локального ПК) прописано использование сканера штрихкодов, работающего через COM-порт, а на физическом компьютере включен проброс портов, платформа попытается монопольно захватить этот порт. Если физический порт отсутствует, отключен или занят локальным процессом, внешняя компонента торгового оборудования (например, ScanOPOS) зависает при попытке опросить устройство.
Проанализируем конфигурацию портов и выполним настройку:
mstsc.exe на проблемном ПК, перейдем во вкладку Локальные ресурсы, нажмем кнопку Подробнее... в разделе "Локальные устройства и ресурсы" и снимем флажки с пунктов Порты (Ports) и Другие поддерживаемые устройства PnP.Обычные формы 1С используют для отрисовки интерфейса технологию GDI/GDI+. Несмотря на то, что исполнение кода происходит на сервере, финальный рендеринг графических элементов выполняет RDP-клиент силами локальной видеокарты и процессора клиентской машины. При использовании современных ОС (Windows 10/11) на клиенте и старых серверных ОС (Windows Server 2008 R2) может возникать конфликт механизмов сжатия графики RemoteFX и драйверов видеокарты клиента.
Сложные формы документов с большим количеством закладок, таблиц и рамок могут вызывать сбой отрисовки графического интерфейса на локальном ПК. При этом на сервере процесс rphost.exe или сессия пользователя активны, но картинка на мониторе клиента полностью замерзает.
Разберем, как отключить аппаратное ускорение и оптимизировать отрисовку интерфейса:
gpedit.msc на сервере и перейдем по пути:
Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Среда сеансов удаленных столов -> Оптимизация удаленного интерфейса
Установим параметр "Использовать аппаратный графический переходник для всех служб удаленных рабочих столов" в значение Отключено.mstsc.exe на вкладке Экран установим цветовую палитру в значение High Color (16 бит). Это существенно снизит нагрузку на сетевой стек и видеоподсистему клиента.Начиная с версии протокола RDP 8.0, для передачи высоконагруженных графических данных по умолчанию используется транспортный протокол UDP совместно с TCP. При открытии сложной формы 1С передает единовременный большой объем графической информации. Если сетевая карта локального ПК, порт коммутатора или маршрутизатор имеют проблемы с обработкой фрагментированных UDP-пакетов (неправильно настроен параметр MTU, включены "оптимизаторы" трафика, некачественный патч-корд), сессия RDP может зависать именно в момент отрисовки сложных окон.
Для исправления этой ситуации принудительно переведем RDP-клиент на использование исключительно протокола TCP:
regedit.exe на проблемном локальном компьютере.
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client
fClientDisableUDP и присвоим ему значение 1.Даже при работе в терминальном режиме на сервере, локальный компьютер сохраняет временные данные авторизации, настройки отображения окон и кэш метаданных платформы на локальном диске (если настроено кэширование или используются распределенные профили). Также к зависанию может приводить повреждение ветки реестра пользователя на сервере, которая создается при сопоставлении с аппаратным ID локального компьютера.
Проведем полную очистку временных файлов:
%userprofile%\AppData\Local\1C\1Cv8
%userprofile%\AppData\Roaming\1C\1Cv8
Систематическое применение описанных методов позволяет полностью устранить аппаратные конфликты и вернуть стабильную скорость работы платформы 1С:Предприятие в терминальной среде.