Почему зависает 1С при работе через RemoteApp на Windows Server 2016 и как это исправить

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

Работа в режиме RemoteApp является одним из наиболее удобных способов доставки приложений пользователям, однако связка Windows Server 2016 и платформы 1С:Предприятие 8.3 часто преподносит неприятные сюрпризы. Одной из самых острых проблем является внезапное зависание интерфейса программы. Пользователь запускает базу, доходит до начальной страницы, и в этот момент окно перестает реагировать на клики мыши и нажатия клавиш. При этом на самом сервере процесс активен, а у других пользователей, работающих в полноценном RDP-сеансе, проблем может не наблюдаться.

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

Причина 1. Версия платформы и графическое ядро

Рассмотрим ситуацию, с которой столкнулись многие администраторы: после обновления платформы 1С до версий 8.3.17, 8.3.18 и выше, количество зависаний в RemoteApp резко увеличилось. Проанализируем причину этого явления. Начиная с версии 8.3.17, разработчики 1С внедрили обновленные механизмы работы с веб-компонентами и графическим интерфейсом, которые стали более требовательны к видеоподсистеме.

В терминальной среде Windows Server 2016, особенно если сервер не оснащен мощной дискретной видеокартой с поддержкой RemoteFX, программная отрисовка новых компонентов 1С конфликтует с протоколом передачи изображения RemoteApp. Это приводит к тому, что окно приложения отрисовывается не полностью или «застывает», хотя логика программы продолжает работать.

Решение через откат версии: Как показывает практика и опыт участников обсуждения, наиболее быстрым и эффективным решением является возврат на стабильную ветку платформы. Разберем этот шаг:

  1. Удалим текущую версию платформы (например, 8.3.18.XXXX) с сервера приложений.
  2. Установим платформу версии 8.3.16.XXXX (например, последние релизы этой ветки).
  3. Проверим работу пользователей. В большинстве случаев после отката на 16-ю версию «фантомные» зависания при открытии начальной страницы исчезают.

Причина 2. Аппаратное ускорение графики

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

Выясним, как отключить аппаратное ускорение. Для этого нам понадобится внести изменения в файл настроек conf.cfg. Проделаем следующие действия:

  1. Перейдем в каталог установки платформы, обычно это C:\Program Files\1cv8\conf (или C:\Program Files (x86)\1cv8\conf).
  2. Откроем файл conf.cfg с помощью текстового редактора от имени администратора.
  3. Добавим в конец файла следующую строку:

HardwareAccelerationMode=0

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

Причина 3. Конфликт протоколов UDP и TCP в RDP

Проанализируем сетевую составляющую. Windows Server 2016 по умолчанию пытается оптимизировать передачу данных в RDP-сессиях, используя протокол UDP. Однако в нестабильных сетях или при специфических настройках брандмауэра пакеты UDP могут теряться или приходить с задержкой. В режиме RemoteApp это выглядит как полная потеря фокуса или зависание картинки: вы нажимаете на кнопку, но ничего не происходит, так как подтверждение клика «зависло» в сетевом стеке.

Разберем, как принудительно переключить терминальный сервер на использование только TCP. Это можно сделать через групповые политики (GPO):

  1. Нажмем Win + R, введем gpedit.msc и нажмем Enter.
  2. Перейдем по пути: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Среда удаленных сеансов.
  3. Найдем параметр «Настроить протоколы удаленного рабочего стола».
  4. Переведем его в состояние «Включено» и в выпадающем списке выберем «Только TCP».

После применения этой политики (команда gpupdate /force) сессии станут более устойчивыми к микроразрывам связи, что часто лечит проблему «замирания» окон RemoteApp.

Причина 4. Проблемы файлового режима и SMB-блокировок

В рассматриваемой ситуации базы 1С являются файловыми. Это создает дополнительный пласт проблем, связанных с механизмом Opportunistic Locking (OpLocks). Когда 1С открывает файл базы .1CD, операционная система может предоставить одному пользователю эксклюзивное право на кэширование этого файла. Если в этот момент второй пользователь (через тот же сервер RemoteApp) пытается обратиться к базе, возникает конфликт блокировок, который внешне выглядит как «зависание» программы на этапе заставки или загрузки рабочего стола.

Посмотрим, какие меры стоит предпринять для оптимизации работы с файловыми базами:

  1. Отключение OpLocks: На сервере, где физически лежат базы, рекомендуется отключить механизм аппаратных блокировок в реестре, чтобы файловая система быстрее отдавала права на чтение/запись разным процессам.
  2. Настройка антивируса: Проверим, не сканирует ли антивирус базу при каждом обращении. В исключения нужно добавить не только расширение *.1CD, но и служебные файлы: *.1cv8.tmp, *.lgp, *.v8i, а также папку с кэшем пользователя.
  3. Переход на серверный вариант: Если количество пользователей превышает 5-10 человек, файловый режим становится крайне нестабильным. Рассмотрим возможность использования 1С:Сервер МИНИ на 5 подключений или полноценного сервера 1С в связке с бесплатной СУБД PostgreSQL. Это кардинально решит проблему блокировок и «зависаний» интерфейса.

Причина 5. Очистка кэша шрифтов и временных файлов

Иногда причиной зависания 1С в Windows Server 2016 становится повреждение системного кэша шрифтов. 1С активно использует шрифты для построения форм «Такси», и сбой в FontCache приводит к тому, что процесс 1cv8.exe бесконечно ждет ответа от системной службы отрисовки.

Выполним очистку кэша шрифтов по шагам:

  1. Остановим службу «Служба кэша шрифтов Windows» (через консоль services.msc).
  2. Перейдем в папку C:\Windows\ServiceProfiles\LocalService\AppData\Local\.
  3. Удалим все файлы с расширением .dat, имя которых начинается с FontCache.
  4. Удалим содержимое папки FontCache в этом же каталоге.
  5. Запустим службу обратно.

Также не забудем про стандартную процедуру — очистку пользовательского кэша 1С. Удаление папок из %AppData%\1C\1cv8\ часто помогает, если зависание связано с некорректным сохранением настроек динамических списков или форм пользователя.

Причина 6. Использование ключа запуска NoProxy

Выясним еще одну неочевидную причину: при запуске 1С пытается проверить лицензионность, доступность обновлений или получить данные через интернет. Если в настройках системы указан прокси-сервер, который недоступен из изоляции RemoteApp, программа может «зависнуть» на 30–60 секунд, ожидая таймаута сетевого запроса.

Для исключения этой задержки добавим в дополнительные параметры запуска каждой информационной базы ключ:

/NoProxy

Это заставит 1С игнорировать системные настройки прокси и обращаться к ресурсам напрямую (или вообще не обращаться), что ускоряет появление рабочего стола и снижает вероятность зависания на «Начальной странице».

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

Подводя итог, можно сказать, что проблема зависания 1С в RemoteApp на Windows Server 2016 носит комплексный характер. Если вам нужно быстрое решение «здесь и сейчас» — откатите платформу до версии 8.3.16. Если же вы обязаны использовать современные релизы, то обязательным минимумом будет отключение аппаратного ускорения в conf.cfg и перевод RDP на протокол TCP. Эти действия в 90% случаев стабилизируют работу системы и избавляют пользователей от необходимости постоянно переподключать свои сессии.

← На главную