Шесть сценариев, которые прячутся за словами «у нас 1С на сервере»

· 9 мин

Содержание

Фраза «1С на сервере» без уточнений может означать минимум шесть разных схем: клиент-серверную базу на сервере 1С:Предприятия с СУБД, файловую базу в сетевой папке, работу через терминальный сервер , публикацию на веб-сервере, облако или тестовый стенд разработчика. Быстрее всего смысл выясняется по строке соединения в окне запуска: Srvr= — сервер 1С, File= — файловая база, ws= — веб-публикация.

Для администратора разница принципиальная. От неё зависит, какие порты открывать, где искать данные для резервной копии, какие лицензии нужны и кто виноват, если «всё тормозит».

Что сказалиЧто это чаще всегоПризнак в окне запуска
«База на сервере 1С»Клиент-серверный вариантSrvr="имя";Ref="база";
«База лежит на сервере»Файловая база в общей папкеFile="\\сервер\папка";
«Заходим на сервер и работаем»Терминальный сервер (RDS)База видна только внутри RDP-сеанса
«1С через браузер»Веб-публикация или облакоws="http://..." или адрес сервиса
«База в SQL»Клиент-серверная база в СУБДТоже Srvr=, сама СУБД клиенту не видна

Сервер 1С:Предприятия: клиент-серверная схема

Это «настоящий» сервер 1С в техническом смысле. На машине установлен компонент «Сервер 1С:Предприятия», работает служба агента. Клиенты не трогают файлы базы: они передают запросы серверу, а тот обращается к СУБД.

Из чего состоит сервер:

  • 🖥️ ragent — агент сервера, слушает порт 1540, к нему идут клиенты и консоль администрирования;
  • 🧭 rmngr — менеджер кластера, порт 1541;
  • ⚙️ rphost — рабочие процессы, которые выполняют код. Диапазон портов задаётся в свойствах рабочего сервера, по умолчанию 1560–1591;
  • 🔌 ras — сервер администрирования для утилиты rac, порт по умолчанию 1545 (нужен, если управляете кластером из командной строки).

Каталог служебных данных кластера по умолчанию называется srvinfo. В нём хранится реестр кластера и сеансовые данные. Сами документы и справочники там не лежат — они в СУБД.

Управляют сервером через оснастку «Администрирование серверов 1С:Предприятия» или через rac. Если оснастка не открывается после установки, первым делом перерегистрируют radmin.dll той версии платформы, что стоит на сервере.

rem Перерегистрация консоли (путь укажите для своей версии платформы)
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"

Проверить из командной строки, что кластер жив и какие сеансы держат лицензии:

rac cluster list
rac session list --cluster=<id_кластера> --licenses

Версия платформы на клиенте и на сервере должна совпадать до последней цифры сборки. Другая сборка на рабочем месте — частая причина отказа в подключении после обновления сервера.

Лицензии в этой схеме двух видов: лицензия на сам сервер и клиентские лицензии. Клиентские при клиент-серверной работе выдаёт сервер, поэтому ключи или программные лицензии обычно активируют именно на нём.

«Ключ на сервере» — ещё один смысл

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

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

Сервер СУБД: где на самом деле лежат данные

Когда говорят «база в SQL», имеют в виду вторую половину той же клиент-серверной схемы. Данные хранятся в СУБД, а сервер 1С работает с ней как посредник. Пользователь напрямую к СУБД не подключается.

Платформа 8.3 работает с четырьмя СУБД:

СУБДПорт по умолчаниюГде встречается
Microsoft SQL Server1433Исторически самый частый вариант на Windows
PostgreSQL (сборки с патчами для 1С, Postgres Pro)5432Linux и Windows, популярен из-за бесплатности
IBM Db250000Редко, крупные инсталляции
Oracle Database1521Редко, крупные инсталляции

СУБД может стоять на той же машине, что и сервер 1С, или на отдельной. Для небольших компаний обычно всё на одном железе. При десятках пользователей и тяжёлых закрытиях месяца СУБД выносят отдельно.

Что из этого следует для администратора:

  1. Резервную копию делают средствами СУБД (план обслуживания SQL Server, pg_dump для PostgreSQL) или выгрузкой .dt из Конфигуратора. Копировать каталог srvinfo вместо бэкапа базы бессмысленно.
  2. Права доступа к СУБД нужны только серверу 1С. Пользователям 1С логин в SQL не выдают.
  3. Если «тормозит сервер», смотрят обе стороны: нагрузку rphost и ожидания в СУБД.

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

Файловая база в сетевой папке и терминальный сервер (RDS)

Самая частая путаница. В небольшой фирме «сервер» — это просто компьютер или NAS с общей папкой, где лежит файл 1Cv8.1CD. Сервер 1С:Предприятия там не установлен вовсе. Каждый клиент сам открывает файл по сети.

Признак — в окне запуска у базы строка вида File="\\fs01\1c\buh";. Ограничения такой схемы:

  • 🐢 при нескольких активных пользователях растут блокировки и падает скорость;
  • 💥 обрыв сети во время записи может повредить файл базы;
  • 🔒 права на папку должны быть на чтение и запись у каждого пользователя.

Терминальный сервер

Второе бытовое значение: «мы заходим на сервер и там работаем в 1С». Это сервер Windows с ролью удалённых рабочих столов (RDS). Пользователи подключаются по RDP (порт 3389), а клиент 1С запущен уже на сервере.

Внутри RDS база может быть любой: файловой на локальном диске сервера или клиент-серверной. Для файловой базы терминал даже выгоднее сетевой папки — файл открывается с локального диска, без передачи по сети.

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

На терминальном сервере обязательно ограничьте число сеансов на пользователя одним. Иначе при каждом обрыве RDP появляется новый сеанс, а старый продолжает держать клиентскую лицензию 1С.

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

Веб-сервер: публикация базы для браузера и тонкого клиента

«1С на сервере, заходим через браузер» обычно означает веб-публикацию. На сервере стоит Apache или IIS с модулем расширения веб-сервера 1С. Он принимает HTTP-запросы и передаёт их в базу.

Порядок публикации:

  1. Установите веб-сервер и компонент «Модули расширения веб-сервера» той же версии платформы.
  2. Запустите Конфигуратор от имени администратора Windows — без этого публикация не сможет записать настройки веб-сервера.
  3. Откройте Администрирование → Публикация на веб-сервере, задайте имя публикации и каталог.
  4. Проверьте адрес вида http://сервер/имя_публикации в браузере.

Для автоматизации и Linux есть консольная утилита webinst, она делает то же самое без интерфейса.

В окне запуска такая база выглядит как ws="http://web01/buh";. Публиковать можно и файловую, и клиент-серверную базу. Веб-сервер — только «окно» наружу, данные остаются там же, где были.

Публикацию в интернет без HTTPS и без ограничения доступа делать нельзя. Пароли пользователей 1С иначе пойдут по сети открытым текстом.

Облачные варианты: 1С:Fresh, 1С:Линк, аренда у провайдера

Здесь «сервер» вообще не ваш. Пользователь видит только адрес в браузере или базу в списке тонкого клиента .

ВариантКак устроенЧто остаётся администратору
1С:FreshСервис фирмы 1С, типовые конфигурации в модели сервиса, вход через браузерПользователи и права в самом сервисе
1С:ЛинкВаша база остаётся на вашем компьютере или сервере, сервис даёт к ней защищённый доступ из интернетаКомпьютер с базой, его доступность и копии
Аренда у провайдераТерминальный сервер или публикация на мощностях партнёраДоговор, уровень доступа, выгрузки базы

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

При аренде заранее уточните, получите ли вы выгрузку .dt по запросу и как быстро. Это главный вопрос при смене провайдера.

Тестовый стенд разработчика и директива &НаСервере

Для программиста «на сервере» часто значит совсем другое. Возможных смыслов два.

Локальный сервер для разработки. Сервер 1С:Предприятия и PostgreSQL ставят на рабочий компьютер или виртуальную машину, чтобы проверять код в клиент-серверном режиме. Многие ошибки (передача несериализуемых значений, разные права, фоновые задания) в файловом варианте не воспроизводятся так же, как на боевом сервере.

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

Контекст выполнения кода. В управляемых формах директивы компиляции определяют, где выполняется процедура:

&НаКлиенте
Процедура Заполнить(Команда)
    ЗаполнитьНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьНаСервере()
    // здесь доступны запросы и объекты базы данных
КонецПроцедуры

Код с &НаСервере выполняется на стороне сервера даже в файловой базе: роль сервера тогда играет сам процесс клиента. Поэтому фраза «упало на сервере» от разработчика может вообще не касаться серверного железа.

Как выяснить, какой сервер имел в виду собеседник

Не гадайте, задайте несколько вопросов и посмотрите на экран пользователя.

  1. Что написано под выделенной базой в окне запуска 1С: Srvr=, File= или ws=?
  2. Пользователь запускает 1С у себя или сначала подключается к удалённому рабочему столу?
  3. Сколько человек работает одновременно? Больше 10–15 в файловой базе — повод насторожиться.
  4. Где стоит ключ защиты или активированы программные лицензии: на рабочем месте или на сервере?
  5. Кто делает резервные копии и чем: копированием папки, выгрузкой .dt или средствами СУБД?
  6. Какие службы запущены на сервере? Служба «Агент сервера 1С:Предприятия 8.3» однозначно указывает на клиент-серверный вариант.
Что вы видите в окне запуска у базы?

Где администраторы чаще всего ошибаются

  • ❌ Считают сервером сетевую папку. Ставят «мощный сервер», а база остаётся файловой. Скорость почти не растёт, потому что узкое место — блокировки файла, а не процессор.
  • ❌ Бэкапят не то. Копируют srvinfo или каталог установки платформы, а саму базу в СУБД не трогают. При сбое восстанавливать нечего.
  • ❌ Открывают наружу только 1540. Клиент проходит к агенту, но не может достучаться до рабочих процессов, потому что закрыт диапазон портов rphost.
  • ❌ Обновляют платформу только на сервере. Клиенты с другой сборкой перестают подключаться к клиент-серверной базе.
  • ❌ Перезапускают службу агента днём. Остановка службы сервера 1С обрывает сеансы всех пользователей. Делать это — только после предупреждения и вне рабочего времени.

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

Можно ли перевести файловую базу на сервер 1С?
Да. Выгрузите базу в .dt из Конфигуратора, создайте новую базу в кластере сервера с подключением к СУБД и загрузите в неё файл .dt. Для этого нужна лицензия на сервер.
Сервер 1С и сервер СУБД — это обязательно разные машины?
Нет. Для небольшой нагрузки их ставят на один компьютер. Разносят, когда не хватает памяти или дисковой производительности.
Как с рабочего места понять, что база клиент-серверная, без доступа к серверу?
Посмотрите строку под базой в окне запуска 1С. Префикс Srvr= означает клиент-серверный вариант, File= — файловый.
Можно ли поставить сервер 1С на Linux?
Да, сервер 1С:Предприятия выпускается для Windows и Linux. С Linux обычно используют PostgreSQL.
Работает ли веб-публикация без сервера 1С?
Да, файловую базу тоже можно опубликовать на веб-сервере. Но при большом числе пользователей ограничения файлового варианта остаются.