Удалённая работа в 1С через сервер терминалов: от роли RDS до первого входа

· 10 мин

Содержание

Чтобы запустить 1С в терминальном режиме, нужен Windows Server с ролью «Узел сеансов удалённых рабочих столов» (RDS), установленная на нём платформа 1С:Предприятие 8.3 и лицензии на нужное число сеансов: и 1С, и Microsoft RDS CAL. Пользователь подключается к серверу через mstsc (полный рабочий стол) или RemoteApp (одно окно 1С) и запускает базу так же, как на своём компьютере.

Терминальный вариант выбирают, когда сотрудники работают из разных офисов или из дома, а канал слабый: по сети идёт только картинка, база и вычисления остаются на сервере. Альтернативы — веб-клиент через опубликованную базу и тонкий клиент по HTTP. Они проще в лицензировании Microsoft, но требуют веб-сервера и хуже переносят толстый клиент и старые внешние обработки.

ВариантКогда выбираютОграничения
Сервер терминалов (RDP)Любые конфигурации, толстый клиент, принтеры и сканеры ШК через пробросНужны RDS CAL и мощный сервер
Тонкий клиент по HTTPУправляемые формы, быстрый каналНужен веб-сервер, клиент ставится на каждый ПК
Веб-клиент в браузереРедкие пользователи, нет прав ставить программыНет толстого клиента, ограничения с оборудованием

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

Начните с операционной системы. Берите Windows Server 2019 или 2022 (подойдёт и 2016) в редакции Standard. Роль RDS на Windows 10/11 не ставится, а обход ограничения на число сеансов в клиентской Windows нарушает лицензию Microsoft.

Ориентиры по ресурсам для файловой базы и тонкого клиента (ориентировочно, зависит от конфигурации):

  • 🖥️ ОС и службы — 4 ГБ ОЗУ.
  • 👤 На каждого пользователя — примерно 0,5–1 ГБ ОЗУ; толстый клиент и тяжёлые отчёты — ближе к 1 ГБ.
  • ⚙️ Процессор — 4 ядра на 8–10 человек; важна частота, а не только число ядер.
  • 💾 Диск — SSD или NVMe под базу и профили пользователей.

Пример: 12 бухгалтеров в БП 3.0 — это 4 + 12 × 0,8 ≈ 14 ГБ, берите 16 ГБ с запасом.

Если пользователей больше 15–20 или база весит десятки гигабайт, файловый режим упрётся в блокировки. Тогда ставят сервер 1С с СУБД (PostgreSQL или MS SQL), а терминальный сервер оставляют только под клиентов. Сервер 1С и сервер терминалов можно держать на одной машине, но при росте нагрузки их разносят.

Сервер терминалов не должен быть контроллером домена. Microsoft не рекомендует совмещать эти роли, а для 1С это ещё и лишний риск: пользователи работают на той же машине, где живут учётные записи.

2. Установка роли RDS и лицензий Microsoft для сеансов

Роль через «Диспетчер серверов»

  1. Откройте «Диспетчер серверов» → «Добавить роли и компоненты».
  2. Выберите «Установка ролей или компонентов» (не сценарий служб удалённых рабочих столов, если сервер не в домене).
  3. Отметьте роль «Службы удалённых рабочих столов», а в ней — «Узел сеансов удалённых рабочих столов» и «Лицензирование удалённых рабочих столов».
  4. Перезагрузите сервер.

То же одной командой в PowerShell от имени администратора:

Install-WindowsFeature RDS-RD-Server, RDS-Licensing -IncludeManagementTools
Restart-Computer

Лицензии RDS CAL

Без лицензий роль работает льготный период — 120 дней. Потом подключения перестанут пускать. Порядок:

  1. Запустите «Диспетчер лицензирования удалённых рабочих столов», активируйте сервер лицензирования и установите купленные RDS CAL.
  2. В gpedit.msc откройте Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удалённых рабочих столов → Узел сеансов удалённых рабочих столов → Лицензирование.
  3. Включите «Использовать указанные серверы лицензирования удалённых рабочих столов» и впишите имя своего сервера.
  4. В «Задать режим лицензирования удалённых рабочих столов» выберите «На пользователя» или «На устройство» — как куплены CAL.

RDS CAL «на пользователя» без домена Active Directory не учитываются корректно. В рабочей группе обычно берут лицензии «на устройство».

Пользователи и доступ

Каждому сотруднику — своя учётная запись Windows. Добавьте их в локальную группу «Пользователи удалённого рабочего стола». Одна общая учётка на всех — источник путаницы: общий кэш 1С, общий список баз, невозможно понять, кто держит сеанс.

В той же ветке групповых политик (раздел «Подключения») включите «Ограничить пользователей служб удалённых рабочих столов одним сеансом». Иначе при обрыве связи человек заходит заново, получает второй сеанс, а первый продолжает держать лицензию 1С.

3. Установка 1С:Предприятия на терминальный сервер

Ставьте платформу после роли RDS, а не до неё. Программы, установленные до появления роли, иногда некорректно пишут настройки для разных пользователей.

  1. Войдите на сервер под администратором (через консоль или RDP).
  2. Переведите сервер в режим установки:
change user /install
  1. Запустите setup.exe из дистрибутива платформы. Отметьте «1С:Предприятие» и «1С:Предприятие — тонкий клиент». «Модули расширения веб-сервера» нужны только если будете публиковать базу. Если будет USB-ключ HASP — оставьте галочку установки драйвера защиты.
  2. Верните обычный режим:
change user /execute

Современные Windows Server сами включают режим установки при запуске setup.exe или .msi. Команды выше — страховка, особенно для старых установщиков конфигураций и внешних компонент.

Общий список баз для всех пользователей

Чтобы не настраивать список у каждого вручную, создайте один файл .v8i с базами и подключите его глобально. Откройте файл C:\ProgramData\1C\1CEStart\1CEStart.cfg и добавьте строку:

CommonInfoBases=C:\1C\Bases\common.v8i

После этого у каждого пользователя в окне запуска появятся базы из общего файла. Личный список хранится в %APPDATA%\1C\1CEStart\ibases.v8i и дополняет общий.

Где держать файловую базу

Кладите базу на локальный SSD самого терминального сервера, например C:\1C\Bases\Buh. Вариант «база на сетевой папке другого компьютера, а 1С — на терминале» самый медленный: каждое чтение идёт по сети через SMB. Права на папку базы дайте группе пользователей 1С на чтение и запись, остальным — запретите.

4. Лицензии 1С и ключи защиты в терминальном режиме

Здесь чаще всего и возникают сложности. Правило счёта простое: каждый терминальный сеанс, в котором открыта 1С, занимает одну клиентскую лицензию. Несколько окон 1С внутри одного сеанса — всё ещё одна лицензия. 10 человек одновременно — 10 лицензий.

Тип лицензииКак работает на терминальном сервере
Программная лицензия на N рабочих местАктивируется прямо на терминальном сервере, привязана к его оборудованию
Многопользовательский USB-ключ HASPВставляется в терминальный сервер или в другой компьютер с менеджером лицензий
Однопользовательский USB-ключДля раздачи сеансам на сервере терминалов не годится — нужен многопользовательский ключ
Лицензия сервера 1СНужна только для клиент-серверного режима, на клиентские места не влияет

Программная лицензия

Активируется при первом запуске 1С на сервере, с пин-кодом из комплекта. Делайте это под администратором и после того, как определились с «железом». Лицензия привязана к параметрам компьютера: смена процессора, материнской платы или перенос виртуальной машины на другой хост может её «сломать». Тогда понадобится повторная активация резервным пин-кодом.

Не активируйте программную лицензию на временном или тестовом сервере — резервных пин-кодов в комплекте ограниченное число.

Ключ HASP на отдельном компьютере

Если ключ стоит не на терминальном сервере, а, скажем, на файловом, там ставят HASP License Manager. На терминальном сервере в каталоге bin платформы создают файл nethasp.ini, чтобы 1С не искала ключ широковещательно:

[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled

Вместо 192.168.1.10 укажите адрес компьютера с ключом. Менеджер лицензий слушает UDP-порт 475 — откройте его в брандмауэре этого компьютера.

В клиент-серверном режиме схема другая: клиентские лицензии получает сервер 1С, и ключ или программную лицензию размещают там, где работает сервер 1С.

5. Как подключаться к 1С извне: RemoteApp, шлюз и веб-публикация

Полный рабочий стол или RemoteApp

Самый простой способ — пользователь запускает mstsc, вводит адрес сервера, логин и видит рабочий стол с ярлыком 1С. Для бухгалтеров удобнее RemoteApp: на их компьютере открывается только окно 1С, как будто программа стоит локально.

Для RemoteApp публикуйте не 1cv8.exe конкретной версии, а 1cestart.exe из каталога C:\Program Files\1cv8\common\. Это стартер: он сам выбирает нужную версию платформы, и после обновления 1С ярлык не придётся перенастраивать. Чтобы сразу открывалась конкретная база в нужном режиме, добавьте параметры командной строки:

1cestart.exe ENTERPRISE /F "C:\1C\Bases\Buh"

Полный сценарий RemoteApp с коллекциями настраивается через «Диспетчер серверов» и требует домена. Без домена RemoteApp публикуют через параметры реестра или сторонние утилиты; в небольшом офисе чаще оставляют полный рабочий стол.

Безопасный доступ из интернета

Не открывайте порт 3389 напрямую в интернет. Его сканируют боты, и подбор паролей начинается в первые часы. Варианты:

  • 🔒 VPN до офиса, а RDP — только внутри туннеля. Самый распространённый вариант.
  • 🌐 Шлюз удалённых рабочих столов (роль RD Gateway): RDP заворачивается в HTTPS на порт 443, нужен сертификат.
  • 🧱 Если без проброса никак — нестандартный порт, блокировка после нескольких неудачных попыток входа, длинные пароли. Это минимальная защита, а не замена VPN.

Публикация базы на веб-сервере

Для части пользователей удобнее веб-клиент или тонкий клиент по HTTP. Базу публикуют на IIS или Apache из конфигуратора: Администрирование → Публикация на веб-сервере. Терминальный сервер может одновременно быть и веб-сервером, если ресурсов хватает. Наружу публикацию выпускают только по HTTPS и с паролями у всех пользователей 1С. Лицензии 1С при этом считаются так же — один сеанс веб-клиента или тонкого клиента занимает одну лицензию.

6. Ускорение работы и типовые ошибки терминального запуска 1С

Что реально ускоряет

  • 🛡️ Исключения антивируса. Добавьте папку с базами, %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 (кэш пользователей). Проверка на лету каждого обращения к 1Cv8.1CD замедляет работу в разы.
  • 🔌 Схема электропитания «Высокая производительность» на сервере и в BIOS. Режимы энергосбережения занижают частоту, а 1С чувствительна к частоте ядра.
  • 🖨️ Перенаправление принтеров. Если в сеансах висят десятки проброшенных принтеров, вход и печать тормозят. Пробрасывайте только принтер по умолчанию (настройка есть в групповых политиках RDS).
  • 🎨 Графика RDP. Для медленного канала в клиенте mstsc снизьте глубину цвета и отключите фон рабочего стола.
  • ⏱️ Таймауты сеансов. Задайте время завершения отключённых сеансов, например 1–2 часа. Иначе «брошенные» сеансы держат лицензии 1С и память.

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

Очистка кэша у одного пользователя

Если у одного человека 1С падает или показывает старые формы после обновления, очистите кэш только ему. Пусть он выйдет из 1С, затем удалите содержимое его папок %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8 (каталоги с длинными именами-идентификаторами). Другой способ — запуск с параметром:

1cestart.exe ENTERPRISE /F "C:\1C\Bases\Buh" /ClearCache

Список баз пользователя (ibases.v8i в %APPDATA%\1C\1CEStart) не трогайте — он хранится отдельно.

Диагностика по симптомам

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

7. Частые вопросы о терминальном режиме 1С

Сколько лицензий 1С нужно на сервер терминалов?
Столько, сколько сеансов 1С открыто одновременно. Если 15 сотрудников, но одновременно работают максимум 9, хватит лицензии на 10 мест.
Нужна ли лицензия сервера 1С для терминального режима?
Нет, если база файловая. Лицензия сервера нужна только когда вы ставите сервер 1С и работаете в клиент-серверном режиме.
Можно ли использовать Windows 10 вместо Windows Server?
Для одного удалённого пользователя — да, через обычный удалённый рабочий стол. Одновременная работа нескольких людей в клиентской Windows не предусмотрена лицензией Microsoft.
Должны ли совпадать версии платформы на терминале и на сервере 1С?
Да. В клиент-серверном режиме клиент и сервер 1С должны быть одной версии. После обновления сервера 1С обновите платформу и на терминальном сервере.
Как дать сотруднику доступ только к 1С, без рабочего стола сервера?
Опубликуйте 1cestart.exe как RemoteApp. Пользователь увидит только окно 1С, а остальное — ограничьте групповыми политиками.