Как организовать удалённую работу в 1С через терминальный сервер или веб-публикацию
Содержание
Чтобы установить и настроить терминал 1С, ставят платформу 1С:Предприятие 8.3 на сервер, а пользователей подключают одним из двух способов: через терминальный сервер Windows (RDP или RemoteApp) или через публикацию базы на веб-сервере (Apache или IIS) с тонким клиентом и браузером. Для 5–30 сотрудников в одном офисе проще RDP, для филиалов и удалёнщиков с плохой связью — веб-публикация.
Дальше всё по порядку: схема, подготовка сервера, публикация, RemoteApp, лицензии и ошибки, которые встречаются при первом запуске.
Как устроен терминальный доступ к 1С и какой способ выбрать
Под словом «терминал» обычно понимают одно из трёх решений. Они не исключают друг друга: часто база стоит на сервере 1С, а пользователи заходят и через RDP, и через веб.
| Способ | Где работает 1С | Канал до пользователя | Когда подходит |
|---|---|---|---|
| Терминальный сервер (RDP) | На сервере, пользователь видит картинку | Порт 3389, от 1–2 Мбит/с на сеанс | Офис и удалёнщики, нужен полный рабочий стол или печать на локальный принтер |
| RemoteApp | На сервере, окно 1С на рабочем столе пользователя | Тот же RDP | Пользователь не должен видеть серверный рабочий стол |
| Веб-публикация | Тонкий клиент или браузер на ПК пользователя, данные — на сервере | HTTP/HTTPS, порты 80/443 | Филиалы, ноутбуки, Linux и macOS у пользователей |
Режим базы тоже важен:
- 📁 Файловая база на терминальном сервере — все сеансы открывают файл
1Cv8.1CDлокально, поэтому работает быстрее, чем файловая база по сетевой папке. Предел — примерно 10–15 активных пользователей, дальше растут ожидания на блокировках. - 🖥 Клиент-серверная база (сервер 1С + PostgreSQL или MS SQL) — для 15+ пользователей и для веб-публикации с нагрузкой. Терминальный сервер в этом случае — просто «место», где запущены клиенты.
Сервер 1С и терминальный сервер лучше разнести на разные машины, если пользователей больше 20. Под нагрузкой они мешают друг другу за процессор и память.
Подготовка сервера под терминал 1С
Железо и система
Ориентировочные цифры для тонкого клиента в терминальной сессии:
- 💾 Память — 300–500 МБ на сеанс тонкого клиента, толстый клиент — до 1 ГБ и больше. На 15 пользователей закладывайте от 16 ГБ плюс память под систему.
- ⚙️ Процессор — от 4 ядер; на 1С сильнее влияет частота ядра, чем их число.
- 💿 Диск — SSD обязательно, особенно для файловой базы.
- 🪟 Система — Windows Server 2016 и новее.
Роли Windows Server
В Диспетчер серверов → Управление → Добавить роли и компоненты выберите «Установка служб удалённых рабочих столов» и сценарий быстрого развёртывания. Установятся посредник подключений, веб-доступ и узел сеансов.
Отдельно добавьте роль лицензирования удалённых рабочих столов и внесите в неё лицензии RDS CAL «на пользователя» или «на устройство». Без них Windows разрешает подключения только льготный период — 120 дней, потом сеансы перестают создаваться.
Установка платформы 1С на терминальный сервер
На узле сеансов программы ставят в режиме установки, иначе часть настроек ляжет в профиль администратора:
change user /install
setup.exe
change user /execute
В мастере установки отметьте компоненты:
- «1С:Предприятие» и «1С:Предприятие — тонкий клиент».
- «Модули расширения веб-сервера» — если на этой же машине будет публикация.
- «Сервер 1С:Предприятия» — только если сервер 1С будет здесь же.
- «Драйвер защиты» — если используете USB-ключ.
Платформа по умолчанию встанет в C:\Program Files\1cv8\<версия>\, общий запускатор — C:\Program Files\1cv8\common\1cestart.exe.
Общий список баз для всех пользователей
Каждый пользователь хранит свой список в %APPDATA%\1C\1CEStart\ibases.v8i. Чтобы не добавлять базы каждому вручную, сделайте общий файл, например C:\1C\bases.v8i, и пропишите его в общем конфиге C:\ProgramData\1C\1CEStart\1cestart.cfg:
CommonInfoBases=C:\1C\bases.v8i
Новую базу админ добавляет один раз в этот файл — она появится у всех при следующем запуске.
Публикация базы 1С на веб-сервере
Веб-сервер принимает HTTP-запросы и через модуль расширения передаёт их в 1С. Поддерживаются Apache 2.2/2.4 и IIS.
Шаг 1. Установить веб-сервер
- IIS — ставится ролью «Веб-сервер (IIS)». Добавьте компоненты «ISAPI-расширения» и «Фильтры ISAPI», иначе модуль 1С не загрузится.
- Apache 2.4 — распакуйте сборку, установите службой
httpd.exe -k install.
Разрядность модуля расширения должна совпадать с разрядностью веб-сервера. 64-битный Apache требует 64-битной платформы 1С, иначе публикация «молча» не работает .
Шаг 2. Опубликовать базу из Конфигуратора
- Запустите Конфигуратор от имени администратора — без этого не хватит прав записать в каталог веб-сервера.
- Откройте
Администрирование → Публикация на веб-сервере. - Укажите имя публикации (латиницей, например
buh), тип веб-сервера и каталог. - Отметьте «Публиковать тонкий клиент и веб-клиент», при необходимости — HTTP-сервисы и веб-сервисы.
- Нажмите «Опубликовать» и согласитесь на перезапуск веб-сервера.
В каталоге появится файл default.vrd со строкой подключения к базе.
Шаг 3. То же самое из командной строки
Для сервера без графики или скриптов развёртывания есть утилита webinst.exe в каталоге bin платформы:
webinst -publish -apache24 -wsdir buh -dir "C:\Apache24\htdocs\buh" -connstr "Srvr=srv1c;Ref=buh;" -confpath "C:\Apache24\conf\httpd.conf"
Для файловой базы строка подключения будет вида File="D:\Bases\Buh";.
Шаг 4. Права на каталог базы
Для файловой базы учётная запись веб-сервера должна иметь полные права на папку с базой. У IIS это пользователь пула приложений, у Apache — учётная запись службы. Без этого браузер показывает ошибку доступа к файлу базы.
Публикацию в интернет без HTTPS не делайте: логины и данные пойдут открытым текстом. Минимум — сертификат Let’s Encrypt и закрытые снаружи все порты, кроме 443.
Шаг 5. Подключить пользователя
В тонком клиенте: «Добавить» → «Добавление в список существующей информационной базы» → тип расположения «На веб-сервере» → адрес вида https://1c.firma.ru/buh. В браузере тот же адрес открывает веб-клиент без установки чего-либо.
Подключение пользователей через RDP и RemoteApp
Обычный рабочий стол
- Создайте пользователей в домене или локально, добавьте их в группу «Пользователи удалённого рабочего стола».
- Выдайте пользователю файл
.rdpс адресом сервера или настройте шлюз RD Gateway, если подключение идёт из интернета. - Проверьте перенаправление принтеров в свойствах коллекции — без него печать из 1С уйдёт на серверный принтер.
Публикация 1С как RemoteApp
Пользователь видит только окно 1С, как будто программа стоит у него. Это главный приём для бухгалтерии, которой не нужен серверный рабочий стол.
Диспетчер серверов → Службы удалённых рабочих столов → Коллекции→ ваша коллекция.- В блоке «Программы RemoteApp» выберите «Опубликовать программы RemoteApp».
- Нажмите «Добавить» и укажите
C:\Program Files\1cv8\common\1cestart.exe.
Публикуйте именно 1cestart.exe, а не 1cv8.exe из каталога конкретной версии. Запускатор сам выбирает нужную версию платформы, и после обновления 1С ярлык у пользователей не ломается.
Чтобы сразу открывать конкретную базу, в параметрах командной строки RemoteApp можно задать /IBName"Бухгалтерия" — имя должно совпадать с именем базы в списке.
Открытый RDP-порт 3389 в интернет — частая причина взломов и шифровальщиков. Ставьте шлюз RD Gateway (HTTPS 443) или VPN.
Лицензии 1С и ключи защиты на терминальном сервере
Без клиентской лицензии платформа базу не откроет. Для терминальной схемы считайте так: одна клиентская лицензия — на каждый одновременный сеанс 1С, независимо от того, на каком сервере эти сеансы запущены.
Программные лицензии
- Активируются на терминальном сервере — пин-кодом из комплекта, при первом запуске или через окно получения лицензии.
- Привязаны к параметрам оборудования. Замена материнской платы, сетевой карты или перенос виртуальной машины на другой хост может потребовать повторной активации резервным пин-кодом.
- Многопользовательский комплект (на 5, 10, 20 мест) на терминальном сервере раздаёт места по сеансам.
Аппаратные ключи HASP
- Для терминального сервера нужен многопользовательский ключ. Однопользовательский локальный ключ покрывает только один сеанс.
- Сетевые ключи раздаёт служба HASP License Manager. Если ключ стоит на другой машине, клиенту нужен доступ к ней по порту 475 и файл
nethasp.iniс адресом менеджера лицензий. - На виртуальных серверах ключ пробрасывают через USB-over-IP; это работает, но добавляет точку отказа.
Лицензии в клиент-серверном режиме
В свойствах информационной базы в консоли кластера есть параметр выдачи лицензий сервером 1С:Предприятия. Если его включить, клиентские лицензии берёт сервер 1С, а не компьютер, где запущен клиент. Это удобно, когда терминальных серверов несколько: лицензии ставятся в одно место.
Посмотреть, кто сейчас занимает лицензии, можно утилитой rac:
rac session list --cluster=<uuid-кластера> --licenses
Лицензии Microsoft RDS CAL — отдельная история: это право подключаться к Windows Server, они не заменяют лицензии 1С и нужны дополнительно к ним.
Диагностика: частые ошибки терминала 1С
Если ничего из этого не помогло
- Очистите кэш пользователя: закройте у него все сеансы 1С и удалите содержимое каталогов
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8в его профиле. Список баз (1CEStart) при этом не трогайте. - Проверьте, запускается ли база у администратора на том же сервере. Если да — проблема в профиле или правах пользователя, если нет — в базе или платформе.
- Для клиент-серверной базы посмотрите, отвечает ли агент сервера 1С по порту 1540 и открыт ли диапазон рабочих процессов, заданный в свойствах рабочего сервера (по умолчанию 1560–1591).
Перезапуск службы сервера 1С или терминальной службы обрывает сеансы всех пользователей. Делайте это вне рабочего времени или после предупреждения в общем чате.