Почему зависает 1С при открытии документов через RDP на конкретном компьютере и как это исправить

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

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

На первый взгляд это кажется парадоксом. Поскольку сессия выполняется на терминальном сервере, все вычисления, обращения к базе данных и работа платформы происходят там же. Локальный компьютер пользователя получает лишь готовую картинку по протоколу RDP и передает обратно сигналы клавиатуры и мыши. Тем не менее, жесткая привязка зависания к конкретному физическому железу указывает на то, что локальный ПК активно вмешивается в процесс взаимодействия с сервером. Давайте подробно проанализируем причины этого поведения и разберем по шагам методы решения проблемы.

Причина 1. Некорректная инициализация перенаправленных принтеров (RDP Printer Redirection)

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

Если на локальном компьютере настроен проброс принтеров в RDP-сессию, сервер пытается опросить локальный принтер клиента через службу печати (Spooler). Если на физическом ПК принтером по умолчанию выбран сетевой принтер с "тяжелым" драйвером (например, универсальные драйверы HP UPD или Kyocera KX) или устройство в данный момент недоступно, поток 1С уходит в бесконечное ожидание ответа от локального спулера печати, что внешне выглядит как полное зависание интерфейса.

Выполним следующие диагностические и лечебные действия:

  1. Отключим проброс принтеров в свойствах RDP-подключения. На проблемном локальном компьютере запустим стандартный клиент подключения к удаленному рабочему столу mstsc.exe. Перейдем на вкладку Локальные ресурсы и снимем флажок с пункта Принтеры. Проверим, исчезла ли проблема при открытии документа.
  2. Изменим принтер по умолчанию на локальном ПК. Если принтеры необходимы для работы, на самом физическом компьютере зайдем в настройки устройств и установим принтером по умолчанию виртуальный принтер, не требующий связи с сетью, например, Microsoft Print to PDF или Microsoft XPS Document Writer.
  3. Очистим кэш принтеров на стороне сервера. В реестре сервера под учетной записью проблемного пользователя перейдем в ветку: HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices И удалим все неактуальные принтеры, содержащие в названии префикс "redirected". Также рекомендуется очистить настройки печати 1С в хранилище системных настроек, так как платформа может хранить индивидуальные параметры печати для конкретных форм документов.

Причина 2. Конфликты драйверов подключаемого торгового оборудования

Документы закупки и продажи (такие как ЗаказПоставщику или РеализацияТоваровУслуг) в торговых конфигурациях тесно связаны с функционалом торгового оборудования: сканерами штрихкодов, терминалами сбора данных (ТСД) или фискальными регистраторами. При открытии формы документа код конфигурации инициализирует подключенные устройства.

Если в настройках 1С для данного рабочего места (имя которого транслируется из RDP-сессии локального ПК) прописано использование сканера штрихкодов, работающего через COM-порт, а на физическом компьютере включен проброс портов, платформа попытается монопольно захватить этот порт. Если физический порт отсутствует, отключен или занят локальным процессом, внешняя компонента торгового оборудования (например, ScanOPOS) зависает при попытке опросить устройство.

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

  1. Отключим проброс портов в RDP. Откроем свойства подключения mstsc.exe на проблемном ПК, перейдем во вкладку Локальные ресурсы, нажмем кнопку Подробнее... в разделе "Локальные устройства и ресурсы" и снимем флажки с пунктов Порты (Ports) и Другие поддерживаемые устройства PnP.
  2. Проверим настройки оборудования в 1С. Зайдем в базу данных под правами администратора, откроем справочник "Подключаемое оборудование" и проверим настройки, привязанные к имени проблемного компьютера. Временно отключим все активные устройства для этого рабочего места и проверим работу документа.

Причина 3. Аппаратное ускорение графики и устаревший графический движок 1С

Обычные формы 1С используют для отрисовки интерфейса технологию GDI/GDI+. Несмотря на то, что исполнение кода происходит на сервере, финальный рендеринг графических элементов выполняет RDP-клиент силами локальной видеокарты и процессора клиентской машины. При использовании современных ОС (Windows 10/11) на клиенте и старых серверных ОС (Windows Server 2008 R2) может возникать конфликт механизмов сжатия графики RemoteFX и драйверов видеокарты клиента.

Сложные формы документов с большим количеством закладок, таблиц и рамок могут вызывать сбой отрисовки графического интерфейса на локальном ПК. При этом на сервере процесс rphost.exe или сессия пользователя активны, но картинка на мониторе клиента полностью замерзает.

Разберем, как отключить аппаратное ускорение и оптимизировать отрисовку интерфейса:

  1. Отключим использование аппаратного ускорения на стороне сервера через групповые политики. Откроем редактор локальной групповой политики gpedit.msc на сервере и перейдем по пути:

    Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Среда сеансов удаленных столов -> Оптимизация удаленного интерфейса

    Установим параметр "Использовать аппаратный графический переходник для всех служб удаленных рабочих столов" в значение Отключено.
  2. Снизим глубину цвета RDP-клиента. В ярлыке подключения mstsc.exe на вкладке Экран установим цветовую палитру в значение High Color (16 бит). Это существенно снизит нагрузку на сетевой стек и видеоподсистему клиента.
  3. Обновим или переустановим драйвер видеокарты на локальном ПК. Если на компьютере установлена дискретная графика (Nvidia/AMD) или встроенное графическое ядро Intel HD, необходимо установить актуальную стабильную версию драйвера с официального сайта производителя. В некоторых случаях помогает временное переключение на стандартный VGA-драйвер Windows для проверки гипотезы.

Причина 4. Проблемы фрагментации сетевых пакетов и протокол UDP

Начиная с версии протокола RDP 8.0, для передачи высоконагруженных графических данных по умолчанию используется транспортный протокол UDP совместно с TCP. При открытии сложной формы 1С передает единовременный большой объем графической информации. Если сетевая карта локального ПК, порт коммутатора или маршрутизатор имеют проблемы с обработкой фрагментированных UDP-пакетов (неправильно настроен параметр MTU, включены "оптимизаторы" трафика, некачественный патч-корд), сессия RDP может зависать именно в момент отрисовки сложных окон.

Для исправления этой ситуации принудительно переведем RDP-клиент на использование исключительно протокола TCP:

  1. Откроем редактор реестра regedit.exe на проблемном локальном компьютере.
  2. Перейдем к следующему разделу реестра:
    
    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client
    
  3. Создадим новый параметр типа DWORD (32 бита) с именем fClientDisableUDP и присвоим ему значение 1.
  4. Перезагрузим локальный компьютер для применения изменений в сетевом стеке RDP.

Причина 5. Повреждение локального кэша профиля пользователя и метаданных 1С

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

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

  1. Очистим кэш 1С на терминальном сервере. Завершим сессию пользователя, зайдем на сервер под учетной записью администратора и полностью удалим содержимое каталогов:
    
    %userprofile%\AppData\Local\1C\1Cv8
    %userprofile%\AppData\Roaming\1C\1Cv8
    
  2. Очистим кэш на локальном компьютере. На физическом ПК также удалим аналогичные папки временных файлов 1С. Это необходимо, так как при тонком или толстом клиенте часть кэша может синхронизироваться.
  3. Пересоздадим учетную запись RDP. Если предыдущие шаги не помогли, удалим профиль пользователя на терминальном сервере через панель управления (Свойства системы -> Дополнительно -> Профили пользователей) и создадим его заново. Это гарантированно очистит все скрытые системные конфликты, связанные с привязкой оборудования конкретного ПК к сессии пользователя.

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

← На главную