1С на терминальном сервере: что происходит внутри сессии и как это настроить
Содержание
В терминальном режиме 1С целиком работает на сервере: там запущен клиент 1cv8.exe или 1cv8c.exe, там лежит база или открыто соединение с кластером. На компьютер пользователя по протоколу RDP приходит только картинка экрана, а обратно уходят нажатия клавиш и движения мыши. Поэтому терминальная 1С не тормозит на слабом ноутбуке и медленном канале, а файловая база перестаёт «сыпаться» от обрывов сети.
Частое заблуждение: «терминал — это то же самое, что веб-доступ». Нет. При публикации на веб-сервере клиент 1С работает у пользователя и ходит к базе по HTTP. В терминале у пользователя нет ни платформы, ни кэша, ни списка баз — всё это живёт в его профиле на сервере.
Архитектура терминального доступа: кто где работает
Схема из трёх звеньев:
- Клиентское устройство. Программа «Подключение к удалённому рабочему столу» (
mstsc.exe), Microsoft Remote Desktop на macOS или любой RDP-клиент. Ресурсов почти не требует. - Терминальный сервер — Windows Server с ролью Remote Desktop Services (узел сеансов, RD Session Host). На нём установлена платформа 1С, на нём создаются профили пользователей, на нём крутятся все процессы 1С.
- Хранилище данных. Для файловой базы — папка с
1Cv8.1CD, лучше на локальном диске этого же сервера. Для клиент-серверной — кластер серверов 1С и СУБД, часто на отдельной машине.
По сети между пользователем и сервером идёт только RDP-трафик. Порт по умолчанию — TCP 3389, в современных версиях Windows дополнительно задействуется UDP 3389 для ускорения передачи картинки.
| Вариант доступа | Где работает клиент 1С | Что идёт по сети | Чувствительность к каналу |
|---|---|---|---|
| Терминал (полный рабочий стол или RemoteApp) | На сервере | Картинка экрана по RDP | Низкая |
| Тонкий клиент к кластеру напрямую | У пользователя | Протокол 1С (TCP, порты 1540, 1541 и диапазон рабочих процессов) | Средняя |
| Тонкий клиент через веб-сервер | У пользователя | HTTP или HTTPS | Средняя |
| Веб-клиент в браузере | В браузере пользователя | HTTP или HTTPS | Средняя |
| Файловая база по сетевой папке | У пользователя | Чтение и запись файла базы по SMB | Очень высокая |
Последняя строка — то, от чего терминал обычно спасает. Файловая база по общей папке через VPN или Wi-Fi работает медленно и рискует повредиться при обрыве. В терминальном режиме файл базы читается с локального диска сервера, а обрыв связи просто отключает сеанс: 1С продолжает работать и ждёт переподключения.
При коротком обрыве связи переподключение возвращает пользователя в тот же сеанс, с открытыми формами и несохранённым документом. Это главное практическое отличие от веб-клиента, где обрыв часто означает повторный вход.
Как опубликовать 1С на терминальном сервере
Есть два способа отдать 1С пользователю: полный рабочий стол сервера или только окно программы через RemoteApp.
| Способ | Что видит пользователь | Плюсы | Минусы |
|---|---|---|---|
| Полный рабочий стол | Второй Windows с меню «Пуск» | Просто настроить, доступны Проводник и другие программы | Пользователь может запускать лишнее, путаница с двумя рабочими столами |
| RemoteApp | Только окно 1С на своём рабочем столе | Выглядит как локальная программа, меньше лишних действий | Нужна коллекция RDS и настройка публикации |
Что публиковать в RemoteApp
Публикуйте не конкретный 1cv8.exe, а стартер 1cestart.exe. Он лежит в общей папке платформы, обычно C:\Program Files\1cv8\common\1cestart.exe. Стартер сам выбирает нужную версию платформы, показывает список баз и переживает обновление платформы
без перенастройки публикации.
Если опубликовать C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe, после установки новой версии путь сменится, и ярлык RemoteApp перестанет работать у всех.
Порядок публикации в Windows Server 2016 и новее:
- Установите роль Remote Desktop Services в режиме «Развёртывание на основе сеансов» через
Диспетчер серверов → Управление → Добавить роли и компоненты. - Создайте коллекцию сеансов в
Диспетчер серверов → Службы удалённых рабочих столов → Коллекции. - В коллекции откройте блок RemoteApp и добавьте программу. Если 1С нет в списке, укажите путь к
1cestart.exeвручную. - Выдайте доступ группе пользователей коллекции.
- Раздайте пользователям
.rdp-файл или ссылку на веб-доступ к удалённым рабочим столам (RD Web Access).
Общий список баз для всех сеансов
Чтобы не прописывать базы каждому пользователю, задайте общий список. Стартер читает файл C:\ProgramData\1C\1CEStart\1CEStart.cfg. Добавьте в него строку с путём к общему файлу списка:
CommonInfoBases=D:\1C\Shared\ibases.v8i
Сам ibases.v8i удобно один раз собрать у себя в профиле (%APPDATA%\1C\1CEStart\ibases.v8i) и скопировать в общую папку. После этого любой новый пользователь сервера увидит одинаковый список баз при первом запуске.
Ресурсы сервера и управление сеансами пользователей
Каждый сеанс — отдельный набор процессов. Десять бухгалтеров означают десять запущенных клиентов 1С, десять профилей и десять копий кэша.
Ориентиры для планирования, не норматив (сильно зависят от конфигурации и привычек пользователей):
- 🧠 Память: тонкий клиент — примерно 200–400 МБ на сеанс, толстый клиент с открытыми отчётами — 500 МБ–1 ГБ. Плюс 4–6 ГБ на саму Windows Server.
- ⚙️ Процессор: клиент 1С при формировании тяжёлого отчёта нагружает одно ядро. Для 10–15 активных пользователей обычно хватает 6–8 ядер с высокой частотой; частота ядра важнее их количества.
- 💾 Диск: только SSD. Профили, кэш 1С и файл базы постоянно читаются и пишутся.
Если база файловая и работает на том же терминальном сервере, все пользователи читают один файл 1Cv8.1CD с локального диска. Это заметно быстрее сетевой папки, но предел файлового режима никуда не девается: при нескольких десятках активных пользователей блокировки станут ощутимы, и пора переходить на клиент-серверный вариант.
Отключённые сеансы держат лицензии и блокировки
Закрыть крестиком окно RDP — не значит выйти. Сеанс остаётся висеть «отключённым», клиент 1С в нём продолжает работать, занимает лицензию и держит соединение с базой. Из-за таких сеансов чаще всего «не хватает лицензий» и не удаётся получить монопольный доступ для обновления.
Ограничьте время жизни отключённых сеансов групповой политикой: Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удалённых рабочих столов → Узел сеансов удалённых рабочих столов → Ограничение сеансов по времени. Параметр «Задать ограничение по времени для отключённых сеансов» — например, 2–4 часа.
Посмотреть и завершить сеансы вручную можно из командной строки сервера:
quser
logoff 3
quser показывает список сеансов с их номерами (ID) и состоянием, logoff с номером завершает выбранный сеанс.
Завершение сеанса закрывает 1С без сохранения. Несохранённый документ пропадёт. Перед logoff предупредите пользователя или убедитесь, что сеанс действительно брошен.
Почему терминальная 1С тормозит и что с этим делать
Медленная работа в терминале почти всегда упирается в одну из пяти причин.
Где лежит кэш 1С в профиле пользователя на сервере:
%APPDATA%\1C\1cv8\— настройки и часть кэша;%LOCALAPPDATA%\1C\1cv8\— основной кэш конфигураций.
Чистить папки можно только когда у этого пользователя закрыт клиент 1С. Ключ запуска /ClearCache делает то же самое безопаснее: дописывается в строку запуска или в дополнительные параметры базы в списке.
Настройки Windows, которые дают прирост
- 🔋 Схема электропитания сервера — «Высокая производительность». В сбалансированном режиме процессор сбрасывает частоту, а 1С чувствительна к частоте ядра.
- 🛡️ Исключения антивируса: папка с файловыми базами,
C:\Program Files\1cv8\, папки кэша в профилях. - 🖨️ Перенаправление дисков и принтеров — только тем, кому оно нужно. Каждый проброшенный ресурс замедляет вход в сеанс.
- 📁 Профили пользователей — на быстром диске, без перемещаемых профилей через сеть.
Безопасность терминального доступа к 1С
Терминальный сервер с бухгалтерской базой — лакомая цель. Открытый в интернет порт 3389 начинают перебирать боты в первые часы после публикации.
Базовый набор защиты:
- Не публикуйте 3389 напрямую. Подключение — через VPN или шлюз удалённых рабочих столов (RD Gateway). Шлюз работает по HTTPS на порту 443 и пропускает только авторизованных пользователей.
- Включите проверку подлинности на уровне сети (NLA). Без неё сервер показывает экран входа любому, кто постучался.
- Блокировка учётной записи после неудачных попыток — через политику паролей домена или локальную политику безопасности.
- Пользователи без прав администратора. Каждому своя учётная запись Windows, никаких общих логинов «buh1».
- Права NTFS на папку с базой. Файловую базу должны читать и изменять только члены группы бухгалтерии. Остальные не должны видеть даже имени папки.
- Ограничьте перенаправление. Если выгрузка данных на свой компьютер нежелательна, отключите в настройках коллекции буфер обмена и диски.
Связка учётных записей Windows и 1С
В 1С у каждого пользователя может быть включена аутентификация операционной системы. Тогда 1С при входе сверяет учётную запись Windows, под которой открыт сеанс, и не спрашивает пароль повторно. На терминальном сервере это удобно и безопасно, если в Windows у каждого сотрудника своя учётная запись.
Настраивается в карточке пользователя в типовых конфигурациях: Администрирование → Настройки пользователей и прав → Пользователи. В карточке включается вход по аутентификации ОС и выбирается пользователь Windows.
Разграничение на уровне Windows не заменяет права внутри 1С. Профили групп доступа и ограничения по организациям настраивайте в самой программе.
Лицензии 1С и Microsoft для терминального режима
Юридически терминальный сервер требует двух независимых комплектов лицензий.
Лицензии 1С
- 🔑 Клиентские лицензии считаются по сеансам. В терминальном режиме каждый сеанс удалённого рабочего стола засчитывается как отдельный компьютер. Двадцать одновременных сеансов с запущенной 1С — двадцать клиентских лицензий.
- 💻 Программные лицензии активируются на самом терминальном сервере, ведь клиент 1С запускается там.
- 🔌 Аппаратные ключи HASP для терминала нужны сетевые (многопользовательские). Однопользовательский локальный ключ для работы через терминальный сервер не предназначен.
- 🗄️ Лицензия на сервер 1С нужна только для клиент-серверного варианта. Файловая база на терминальном сервере её не требует.
Проверить, сколько лицензий занято в клиент-серверном варианте, можно в консоли кластера или командой rac session list --licenses. Для файлового режима быстрее посчитать сеансы с запущенной 1С через quser и Диспетчер задач.
Лицензии Microsoft
- Клиентская лицензия Windows Server (CAL) на каждого пользователя или устройство.
- Клиентская лицензия служб удалённых рабочих столов (RDS CAL) — тоже «на пользователя» или «на устройство».
- Сервер лицензирования удалённых рабочих столов, где эти лицензии учитываются.
Без сервера лицензирования роль RDS работает в льготном периоде 120 дней, после чего подключения перестают приниматься. Выглядит это как внезапная авария в разгар квартального отчёта, поэтому лицензирование настраивайте сразу.
Две одновременные RDP-сессии разрешены Windows Server только для администрирования. Работа бухгалтеров через такие «админские» подключения нарушает лицензию Microsoft, а сторонние «патчи» для снятия ограничения на число сеансов в настольных Windows — это нарушение лицензионного соглашения и риск для стабильности системы.
Типичные ошибки при переводе 1С в терминал
Ошибки, которые не видны в шагах выше:
- ❌ Терминальный сервер на той же машине, что и СУБД, без запаса памяти. SQL Server по умолчанию забирает почти всю свободную память, сеансы пользователей начинают свопиться. Ограничьте максимальную память СУБД в её настройках.
- ❌ База лежит на сетевой папке другого сервера. Терминал в такой схеме ничего не ускоряет: сервер сеансов всё так же тянет файл базы по сети. Перенесите базу на локальный диск терминального сервера.
- ❌ Обновление платформы при работающих пользователях. Установщик не может заменить используемые файлы, часть сеансов работает на старой версии. Устанавливайте новую платформу вечером, когда сеансы завершены.
- ❌ Один профиль Windows на нескольких сотрудников. Ломается кэш, путаются настройки форм, и в журнале регистрации 1С не видно, кто на самом деле провёл документ.