Как 1С живёт на терминальном сервере: сеансы, кластер, лицензии

· 10 мин

Содержание

Терминальная сессия 1С — это обычный сеанс тонкого или толстого клиента 1С:Предприятия 8.3, который запущен не на компьютере пользователя, а на терминальном сервере Windows (RDS). Пользователь подключается к серверу по RDP, а процесс 1cv8c.exe работает уже там. Для платформы это не отдельный тип сеанса: в консоли кластера он выглядит как «Тонкий клиент», только в колонке «Компьютер» стоит имя терминального сервера.

Главное практическое следствие — лицензии. Каждый терминальный сеанс Windows платформа считает отдельным рабочим местом. Десять бухгалтеров на одном RDP-сервере займут десять клиентских лицензий 1С, хотя «компьютер» у них один.

Как устроен терминальный доступ к 1С

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

  • 🖥️ Рабочее место пользователя. Здесь работает только клиент RDP (mstsc.exe). Сюда приходит картинка экрана, отсюда уходят нажатия клавиш. 1С на этом компьютере может быть вообще не установлена.
  • 🧱 Терминальный сервер . На нём установлена платформа 1С, запущены клиентские процессы всех пользователей. Здесь же лежат их профили, кэш конфигурации и список баз.
  • 🗄️ Сервер 1С:Предприятия или папка с файловой базой. Сюда клиент с терминального сервера обращается за данными.

Возможны два варианта размещения базы.

ВариантКак работаетКогда подходит
Файловая база на диске терминального сервераВсе клиенты читают файл 1Cv8.1CD локально, без сети3–10 пользователей, одна-две базы, нет отдельного сервера
Клиент-серверная базаКлиенты на терминальном сервере подключаются к кластеру 1С по сетиОт 10–15 пользователей, фоновые задания, обмены, высокая нагрузка

Файловая база на терминальном сервере работает заметно быстрее, чем та же база в сетевой папке. Причина простая: файл читается с локального диска, а не по протоколу SMB с десятком компьютеров одновременно.

Если сейчас у вас файловая база в общей папке и она тормозит при 5–7 пользователях, перенос её на терминальный сервер — самый дешёвый способ ускорения до покупки сервера 1С.

Чем терминальная сессия отличается от обычной клиентской

Для кластера 1С разницы нет: протокол, порты и рабочие процессы те же. Различия — в том, где выполняется клиент и что из этого следует.

ПризнакЛокальный тонкий клиентТерминальная сессияВеб-клиент
Где работает клиентский процессНа ПК пользователяНа терминальном сервереВ браузере
Что идёт по сети к пользователюДанные 1СИзображение экрана (RDP)HTTP-трафик
Нужна ли платформа на ПКДаНетНет
Поле «Компьютер» в списке сеансовИмя ПКИмя терминального сервераИмя веб-сервера или адрес
Учёт клиентской лицензииОдин ПК — одна лицензияОдин RDP-сеанс — одна лицензияПо сеансу
Обновление платформыНа каждом ПКОдин раз на сервереНе требуется на ПК
Работа через медленный интернетПлохоХорошоСредне

Из таблицы видно, зачем вообще нужен терминал. Он выручает при удалённых сотрудниках и филиалах с плохим каналом: по RDP идёт только картинка, а тяжёлый обмен клиента с сервером 1С остаётся внутри серверной.

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

Как найти и проверить терминальные сеансы 1С

Диагностику ведут с двух сторон: со стороны кластера 1С и со стороны Windows. Сопоставлять их удобнее всего по имени пользователя.

В консоли администрирования кластера

  1. Откройте консоль администрирования серверов 1С:Предприятия.
  2. Раскройте Кластеры → <ваш кластер> → Информационные базы → <база> → Сеансы.
  3. Посмотрите колонки «Пользователь», «Компьютер», «Приложение», «Начало работы» и «Последняя активность».

Все сеансы с терминального сервера будут с одинаковым значением в колонке «Компьютер». Сеанс, у которого «Последняя активность» была несколько часов назад, — первый кандидат на «забытый»: пользователь закрыл окно RDP крестиком, а 1С осталась работать.

Через ras и rac

Для скриптов и проверки из командной строки используют сервер администрирования ras и утилиту rac. Обе лежат в каталоге bin платформы. По умолчанию ras слушает порт 1545.

rem Запустить сервер администрирования (если он не установлен службой)
ras cluster

rem В другом окне: список кластеров, берём UUID
rac cluster list

rem Сеансы кластера
rac session list --cluster=<uuid-кластера>

rem Сеансы с информацией о лицензиях
rac session list --cluster=<uuid-кластера> --licenses

В выводе rac session list ищите поля host (имя компьютера), app-id (1CV8C — тонкий клиент, 1CV8 — толстый, Designer — конфигуратор), user-name и last-active-at. Если на кластере задан администратор, добавьте параметры --cluster-user и --cluster-pwd. Полный список параметров — в rac help session.

На стороне Windows

На терминальном сервере откройте командную строку и выполните:

query user

Команда покажет RDP-сеансы: имя пользователя, ID, состояние (Active или Disc) и время простоя. В «Диспетчере задач» на вкладке «Пользователи» видно, у кого запущен 1cv8c.exe или 1cv8.exe и сколько памяти он занимает.

Состояние Disc — ключ к половине проблем. Пользователь отключился, но не вышел из системы, его 1С работает и держит лицензию.

Команда logoff <ID> и завершение сеанса в консоли кластера обрывают работу пользователя без сохранения. Несохранённый документ пропадёт. Перед этим свяжитесь с человеком или делайте это вне рабочего времени.

Настройка кластера и сервера под терминальную работу

Если база клиент-серверная, терминальный сервер — просто клиент кластера. Но с особенностями: все подключения идут с одного адреса, а количество одновременных сеансов большое.

Сеть и порты

Клиент сначала обращается к агенту сервера (ragent, порт 1540), затем к менеджеру кластера (rmngr, 1541) и к рабочим процессам rphost. Диапазон портов рабочих процессов по умолчанию 1560–1591, он задаётся в свойствах рабочего сервера.

Откройте эти порты на брандмауэре между терминальным сервером и сервером 1С. Закрытый диапазон 1560–1591 — частая причина ситуации «подключение к кластеру есть, а база не открывается».

Задержка между терминальным сервером и сервером 1С должна быть минимальной. Лучше всего держать их в одной локальной сети или на одном гипервизоре. Терминал в одном городе, а сервер 1С в другом — плохая схема: теряется весь смысл терминала.

Свойства информационной базы

В консоли кластера откройте свойства базы. Для терминальной работы полезны два параметра:

  • ⏱️ «Время засыпания пассивного сеанса» и «Время завершения спящего сеанса». Они срабатывают, когда клиент потерял связь с сервером, например упал терминальный сервер. Сеанс сначала «засыпает», затем удаляется и освобождает лицензию.
  • 🔑 Выдача лицензий сервером 1С:Предприятия. Если включена, клиентские лицензии берутся на сервере 1С, а не на терминальном сервере. Удобно, когда лицензии активированы на сервере 1С.

Рабочие процессы

Отдельной «терминальной» настройки rphost нет. Работают общие правила: следите за памятью рабочих процессов и нагрузкой процессора. Если с терминала приходит 40–50 сеансов, проверьте, что серверу хватает ядер и оперативной памяти для всех рабочих процессов.

Публикация 1С на терминальном сервере

Сюда относятся приёмы, которые экономят администратору часы при каждом новом пользователе.

Общий список баз

Не настраивайте базы каждому пользователю руками. В файле %ProgramData%\1C\1CEStart\1CEStart.cfg пропишите путь к общему списку:

CommonInfoBases=\\fileserver\1c\bases.v8i

Файл bases.v8i имеет тот же формат, что и личный список %APPDATA%\1C\1CEStart\ibases.v8i. Его можно выгрузить из окна запуска на любом настроенном компьютере. Новая база добавляется в один файл — и появляется у всех.

RemoteApp вместо полного рабочего стола

Пользователю часто не нужен весь рабочий стол сервера. Опубликуйте в RemoteApp файл 1cestart.exe из каталога установки. Тогда при подключении откроется привычное окно выбора базы, и 1С будет выглядеть как локальная программа.

Если нужна одна конкретная база, публикуйте 1cv8c.exe с параметрами командной строки:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8c.exe" ENTERPRISE /S"srv1c\buh"

Номер версии в пути подставьте свой. При обновлении платформы путь меняется — публикацию через 1cestart.exe переделывать не придётся, поэтому она надёжнее.

Кэш пользователей

Кэш конфигурации лежит в профиле каждого пользователя: %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. При 30 пользователях и тяжёлой конфигурации это несколько гигабайт на системном диске.

  • 📁 Держите профили на быстром SSD.
  • 🛡️ Добавьте каталоги кэша в исключения антивируса.
  • 🔄 При странных ошибках интерфейса у одного пользователя запустите 1С с ключом /ClearCache. Это затронет только его кэш.

Почему 1С тормозит в терминальной сессии

Жалоба «в терминале 1С медленно» почти всегда сводится к одной из пяти причин.

СимптомВероятная причинаЧто сделать
Тормозит у всех сразу, процессор сервера под 100%Не хватает ядер на число пользователейПосмотреть в «Диспетчере задач», чей процесс грузит; добавить vCPU
Сервер уходит в файл подкачкиМало оперативной памятиОриентир — 300–500 МБ на пользователя тонкого клиента плюс 4 ГБ на систему
Долго открываются формы, а сервер не загруженЗадержка сети между терминалом и сервером 1СПроверить ping до сервера 1С: внутри серверной должно быть меньше 1 мс
Медленная печатьПеренаправление принтеров с драйверамиИспользовать перенаправление принтеров без установки драйверов клиента
Тормозит у одного человекаПовреждённый кэш или разросшийся профильЗапуск с /ClearCache, проверка профиля

Ещё два фактора, о которых забывают:

  • 🐘 Толстый клиент. Он съедает в 2–3 раза больше памяти, чем тонкий. Если конфигурация управляемая (БП 3.0, ЗУП 3.1, УТ 11), запускайте пользователей в тонком клиенте.
  • 👻 Отключённые сеансы. Каждый Disc-сеанс с открытой 1С продолжает держать память и лицензию. Настройте в групповых политиках служб удалённых рабочих столов ограничение времени для отключённых сеансов, например 2–4 часа.

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

Диагностика: выберите симптом

Лицензии 1С и Microsoft для терминального сервера

Лицензирование — самая частая причина неприятных сюрпризов при переходе на терминал. Считать нужно две независимые вещи.

Клиентские лицензии 1С

  • 🔢 Каждый терминальный сеанс Windows, в котором запущена 1С, занимает одну клиентскую лицензию. Пример: 12 пользователей одновременно на RDP-сервере — нужно 12 лицензий.
  • 🪟 Если один пользователь в своём сеансе открыл две базы или два окна 1С, это одна лицензия: рабочее место одно.
  • 🔐 Программную лицензию можно активировать на терминальном сервере. Она привязывается к его оборудованию. При переносе на новую машину или серьёзной замене оборудования потребуется повторная активация.
  • 🗄️ Для клиент-серверного варианта отдельно нужна лицензия на сервер 1С:Предприятия. Клиентские лицензии её не заменяют.

Если лицензии активированы на сервере 1С, включите в свойствах базы выдачу лицензий сервером. Тогда на терминальном сервере лицензии не нужны, а учёт ведётся централизованно в кластере.

Базу без лицензии платформа не запустит. Исключение — учебная версия, но для реального учёта она не подходит.

Лицензии Microsoft

Кроме лицензии Windows Server нужны клиентские лицензии служб удалённых рабочих столов (RDS CAL). Они бывают двух видов:

Тип RDS CALКак считаетсяКогда выгоднее
На пользователяОдин человек — одна лицензия, с любого числа устройствСотрудники заходят с работы, из дома и с ноутбука
На устройствоОдно устройство — одна лицензия, любые пользователиСменная работа на общих компьютерах

После установки роли RDS действует льготный период 120 дней. Когда он заканчивается, новые подключения без лицензий RDS отклоняются. Отсчитывайте этот срок с первого дня, а не вспоминайте о нём в день, когда бухгалтерия не может войти.

Лицензии 1С и RDS CAL друг друга не заменяют. Для 15 пользователей на терминале нужно 15 клиентских лицензий 1С и 15 RDS CAL (при модели «на пользователя»).

Частые вопросы

Можно ли поставить сервер 1С и терминальный сервер на одну машину?
Технически да, и для 5–10 пользователей это рабочая схема. Но рабочие процессы rphost и клиенты начнут бороться за память и процессор. При росте нагрузки сервер 1С выносят на отдельную машину.
Нужна ли 1С на компьютерах пользователей при работе через терминал?
Нет. Достаточно клиента удалённого рабочего стола. Платформа ставится и обновляется только на терминальном сервере.
Почему в консоли кластера у всех пользователей один и тот же компьютер?
Клиентские процессы физически работают на терминальном сервере, поэтому кластер видит его имя. Различать сеансы нужно по колонке «Пользователь» и времени начала работы.
Освободится ли лицензия, если закрыть окно RDP крестиком?
Нет. Сеанс Windows переходит в состояние «отключён», 1С продолжает работать и держать лицензию. Нужно выходить из 1С и из системы или настроить лимит для отключённых сеансов.
Сколько пользователей выдержит один терминальный сервер?
Ориентировочно 15–25 пользователей тонкого клиента на 8 ядрах и 16–24 ГБ памяти при обычной бухгалтерской нагрузке. Тяжёлые отчёты и толстый клиент снижают это число.