Почему 1С зависает при запуске через RemoteApp и как это исправить?

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

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

В данной статье мы подробно разберем, почему это происходит, и проанализируем все доступные методы решения — от временных «костылей» до полноценного исправления ситуации.

Выясняем причину: ошибка платформы 10229396

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

Зависание происходит в момент инициализации управляемых форм начальной страницы. Программа пытается отрисовать сложные элементы интерфейса, используя аппаратное ускорение или специфические вызовы отрисовки окон, которые RemoteApp не может корректно транслировать клиенту. В результате поток отрисовки блокируется, и пользователь видит «мертвую» картинку.

Решение 1: Перевод пользователей на толстого клиента

Одним из самых эффективных и быстрых способов восстановить работу пользователей является принудительная смена режима запуска. Практика показывает, что толстый клиент не подвержен данной ошибке в той же степени, что и тонкий.

Рассмотрим, как это реализовать. В настройках списка баз (или через дополнительные параметры запуска) необходимо указать параметр /RunModeOrdinaryApplication или просто в настройках конкретной информационной базы выбрать основной режим запуска — «Толстый клиент».

Разберем по шагам, как это сделать через строку запуска:

  1. Откроем настройки запуска информационной базы.
  2. В поле «Дополнительные параметры запуска» добавим команду:

/AppAutoCheckMode /ForceReloader /RunModeThickClient

Этот метод помог многим коллегам стабилизировать работу в конфигурациях ЗУП 3.1 и Бухгалтерия предприятия 3.0, когда отчетность нужно сдавать «еще вчера».

Решение 2: Отключение аппаратного ускорения графики

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

Попробуем добавить в параметры запуска ключ, отключающий эту функцию. В дополнительных параметрах запуска информационной базы пропишем:

/DisableHardwareAcceleration

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

Решение 3: Обновление платформы до исправленных релизов

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

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

Решение 4: Тонкая настройка сервера и RDP-клиента

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

Выясним причину: протокол UDP предназначен для ускорения передачи видеопотока, но в RemoteApp он иногда вызывает рассинхронизацию кадров. Попробуем принудительно отключить UDP на стороне клиента через редактор групповых политик (gpedit.msc):

Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Клиент подключения к удаленному рабочему столу. Здесь нужно включить опцию «Выключение протокола UDP на клиенте».

Также рассмотрим настройку реестра на стороне сервера. Для повышения стабильности отрисовки RemoteApp можно изменить уровень шифрования и проверить параметры безопасности коллекции. Как показывает опыт, установка уровня безопасности RDP на «Высокий» и включение проверки подлинности на уровне сети (NLA) также способствуют стабильности сессии.

Решение 5: Очистка кэша и профиля пользователя

Хотя этот метод часто дает лишь временный эффект, его стоит рассмотреть в комплексе с другими мерами. Зависание может быть связано с «битыми» файлами кэша графики, которые накопились после обновления платформы.

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


echo off
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"
attrib -s -h %userprofile%\documents\Default.rdp
del %userprofile%\documents\Default.rdp
del /f /s /q /a %AppData%\Microsoft\Windows\Recent\AutomaticDestinations

Помимо этого, крайне важно добавить процессы 1С в исключения антивирусного ПО на сервере. Проанализируем работу антивируса: при запуске 1cv8c.exe создается множество временных файлов в папке AppData\Local\1C. Если антивирус начинает сканировать их в реальном времени, это создает задержку, которая в режиме RemoteApp интерпретируется как зависание интерфейса.

Решение 6: Режим совместимости исполняемого файла

В некоторых случаях помогает установка режима совместимости для файла 1cv8c.exe на сервере. Посмотрим на этот метод: если установить совместимость с Windows 7, это может изменить логику взаимодействия приложения с графической подсистемой Windows Server. Однако будьте осторожны — это может привести к общему замедлению работы интерфейса.

Подведем итог. Если вы столкнулись с «мертвым» зависанием 1С в RemoteApp на платформе 8.3.18, наиболее эффективным алгоритмом действий будет:

  1. Перевод базы в режим запуска «Толстый клиент».
  2. Добавление ключа /DisableHardwareAcceleration в параметры запуска.
  3. Обновление платформы до версии 8.3.18.1483, 8.3.19.1229 или 8.3.20.1363.

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

← На главную