Работа 1С:Предприятие в терминальном режиме часто сопровождается специфическими проблемами: внезапными «замираниями» интерфейса, «съезжающими» элементами управления на формах и зависанием сессий. Особенно остро эти вопросы встают при использовании RemoteApp на современных операционных системах, таких как Windows Server 2016, и работе с базами на обычных формах (например, УТ 10.3). В рамках данной статьи мы подробно разберем причины возникновения этих неполадок и рассмотрим комплекс мер по их устранению.
Рассмотрим ситуацию, когда серверы расположены в удаленном дата-центре (например, Hetzner), и пинг до них составляет от 45 до 400 мс. В таких условиях использование RemoteApp становится основным источником проблем. Выясним причину: в отличие от полноценного рабочего стола RDP, технология RemoteApp крайне чувствительна к потерям пакетов и задержкам. Когда происходит кратковременный разрыв связи или скачок пинга, RemoteApp может «потерять» фоновую отрисовку окна. Для пользователя это выглядит так: программа перестает реагировать, а при попытке перезапуска открывается еще одна копия 1С в той же зависшей сессии.
Решение: Проанализируем эффективность перехода на чистый RDP (Remote Desktop). Как показывает практика, в режиме рабочего стола сессия более устойчива к сетевым колебаниям. Если связь восстанавливается, RDP-клиент просто продолжает отрисовку с того же места, в то время как RemoteApp часто требует принудительного завершения процесса 1cv8.exe.
Начиная с Windows Server 2012 R2 и Server 2016, протокол RDP активно использует UDP для передачи графики. При нестабильном канале это может вызывать «фризы». Разберем, как принудительно перевести сессии на TCP, который гарантирует доставку пакетов:
Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Среда удаленных сеансов.Также важно обратить внимание на клиентскую сторону. Современные версии 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 имеет встроенные механизмы «справедливого распределения ресурсов» (Fair Share), которые могут вызывать микро-зависания 1С. Проанализируем работу CPU Fair Share: система пытается ограничить потребление процессора одним пользователем, чтобы не мешать другим. Для «толстого» клиента 1С это критично, так как он требует мгновенного отклика. Рекомендуем отключить эти функции через реестр:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System.EnableCPUQuota в 0.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk установим EnableFairShare в 0.Настройка электропитания: На серверном оборудовании обязательно выставим план электропитания «Высокая производительность» (High Performance). Это предотвратит динамическое снижение частоты процессора, которое 1С воспринимает как «подтормаживание».
Если 1С начинает «думать» по 10-20 минут, а затем «отвисает», это может быть признаком неоптимальной работы СУБД. Проверим настройки MS SQL Server 2012:
Max Server Memory в настройках SQL.Max Degree of Parallelism (MAXDOP) в значение 1. Это исключит ситуацию, когда один сложный запрос блокирует работу всех ядер процессора.Посмотрим на пример команды для ручного обновления статистик в базе:
USE [Имя_Вашей_Базы];
EXEC sp_updatestats;
Часто «зависание» в RemoteApp — это всего лишь невидимое модальное окно (например, Вопрос или Предупреждение), которое открылось за основным окном программы. Пользователь не видит его и не может нажать кнопку, из-за чего кажется, что 1С зависла.
Разберем рекомендации для программистов:
Предупреждение() на немодальные всплывающие уведомления.РегламентныеЗадания. Если во время работы пользователей запускается тяжелое задание (например, «Обмен данными» или «Слияние индексов»), это гарантированно вызовет фризы. Выясним пиковые часы нагрузки и перенесем такие задания на ночное время.Подводя итог, отметим, что решение проблем «замираний» требует комплексного подхода: от стабилизации сетевого протокола (переход на TCP и чистый RDP) до глубокой настройки параметров ОС и SQL Server. Сочетание этих мер позволит обеспечить стабильную работу 1С даже в условиях работы через удаленные дата-центры.