Как устранить зависания 1С в RemoteApp и исправить ошибки отображения форм?

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

Работа 1С:Предприятие в терминальном режиме часто сопровождается специфическими проблемами: внезапными «замираниями» интерфейса, «съезжающими» элементами управления на формах и зависанием сессий. Особенно остро эти вопросы встают при использовании RemoteApp на современных операционных системах, таких как Windows Server 2016, и работе с базами на обычных формах (например, УТ 10.3). В рамках данной статьи мы подробно разберем причины возникновения этих неполадок и рассмотрим комплекс мер по их устранению.

Анализ проблем с RemoteApp и сетевыми задержками

Рассмотрим ситуацию, когда серверы расположены в удаленном дата-центре (например, Hetzner), и пинг до них составляет от 45 до 400 мс. В таких условиях использование RemoteApp становится основным источником проблем. Выясним причину: в отличие от полноценного рабочего стола RDP, технология RemoteApp крайне чувствительна к потерям пакетов и задержкам. Когда происходит кратковременный разрыв связи или скачок пинга, RemoteApp может «потерять» фоновую отрисовку окна. Для пользователя это выглядит так: программа перестает реагировать, а при попытке перезапуска открывается еще одна копия 1С в той же зависшей сессии.

Решение: Проанализируем эффективность перехода на чистый RDP (Remote Desktop). Как показывает практика, в режиме рабочего стола сессия более устойчива к сетевым колебаниям. Если связь восстанавливается, RDP-клиент просто продолжает отрисовку с того же места, в то время как RemoteApp часто требует принудительного завершения процесса 1cv8.exe.

Оптимизация сетевого протокола и видеодрайверов

Начиная с Windows Server 2012 R2 и Server 2016, протокол RDP активно использует UDP для передачи графики. При нестабильном канале это может вызывать «фризы». Разберем, как принудительно перевести сессии на TCP, который гарантирует доставку пакетов:

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

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

Исправление «поплывших» форм и проблем с масштабированием

Проблема, когда элементы формы (кнопки, поля ввода) сжимаются в углу или некорректно растягиваются, часто связана с механизмом High DPI в платформе 8.3 при работе с обычными формами. Проанализируем ситуацию: если разработчик вносил изменения в конфигурацию, используя монитор с масштабированием (например, 125% или 150%), параметры привязок в метаданных могут зафиксироваться некорректно для пользователей со стандартным масштабом 100%.

Чтобы решить эту проблему системно, выполним следующие действия:

Шаг 1. Настройка платформы на сервере. В файле настроек conf.cfg (обычно находится в C:\Program Files\1cv8\conf\) добавим параметр, отключающий масштабирование на уровне платформы:

DPIAware=0

Шаг 2. Очистка пользовательских настроек. Недостаточно просто почистить кэш (папки Local и Roaming). Нужно удалить файл v8info, в котором хранятся настройки положения окон. Посмотрим на пример скрипта для автоматической очистки кэша при входе пользователя:


rd /s /q "%LocalAppData%\1C\1cv8"
rd /s /q "%AppData%\1C\1cv8"

Тонкая настройка Windows Server 2016 для 1С

Windows Server 2016 имеет встроенные механизмы «справедливого распределения ресурсов» (Fair Share), которые могут вызывать микро-зависания 1С. Проанализируем работу CPU Fair Share: система пытается ограничить потребление процессора одним пользователем, чтобы не мешать другим. Для «толстого» клиента 1С это критично, так как он требует мгновенного отклика. Рекомендуем отключить эти функции через реестр:

  1. Перейдем в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System.
  2. Установим значение параметра EnableCPUQuota в 0.
  3. В ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk установим EnableFairShare в 0.

Настройка электропитания: На серверном оборудовании обязательно выставим план электропитания «Высокая производительность» (High Performance). Это предотвратит динамическое снижение частоты процессора, которое 1С воспринимает как «подтормаживание».

Оптимизация MS SQL Server и регламентные задания

Если 1С начинает «думать» по 10-20 минут, а затем «отвисает», это может быть признаком неоптимальной работы СУБД. Проверим настройки MS SQL Server 2012:

  1. Ограничение памяти: SQL Server по умолчанию забирает всю доступную ОЗУ. Если на этом же сервере работает сервер приложений 1С, необходимо оставить ОС и 1С как минимум 4-8 ГБ, ограничив Max Server Memory в настройках SQL.
  2. Параллелизм: Установим параметр Max Degree of Parallelism (MAXDOP) в значение 1. Это исключит ситуацию, когда один сложный запрос блокирует работу всех ядер процессора.
  3. Регламенты: Проверим выполнение ежедневного обслуживания. Для 1С критически важны:
    • Обновление статистик (Update Statistics).
    • Реиндексация таблиц (Index Rebuild).
    • Очистка процедурного кэша.

Посмотрим на пример команды для ручного обновления статистик в базе:


USE [Имя_Вашей_Базы];
EXEC sp_updatestats;

Работа с модальными окнами и кодом

Часто «зависание» в RemoteApp — это всего лишь невидимое модальное окно (например, Вопрос или Предупреждение), которое открылось за основным окном программы. Пользователь не видит его и не может нажать кнопку, из-за чего кажется, что 1С зависла.

Разберем рекомендации для программистов:

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

← На главную