Клиент-серверная 1С изнутри: что делает сервер и когда на него переходить

· 10 мин

Содержание

Сервер 1С нужен, чтобы база работала у многих пользователей одновременно и не «ложилась» от роста данных. Он берёт на себя выполнение кода и обмен с СУБД, а сами данные хранятся не в одном файле 1Cv8.1CD, а в полноценной базе данных: Microsoft SQL Server, PostgreSQL, IBM Db2 или Oracle.

В файловом варианте каждый компьютер сам читает и пишет общий файл по сети. В клиент-серверном клиент лишь отправляет запросы, а тяжёлую работу делает сервер. Отсюда главные отличия: скорость при 10+ пользователях, надёжность, тонкое управление правами и сеансами.

Как устроен клиент-серверный вариант 1С

Схема из трёх звеньев:

  1. 💻 Клиент — тонкий клиент, толстый клиент или браузер через веб-сервер.
  2. ⚙️ Кластер серверов 1С:Предприятия — один или несколько рабочих серверов, которые выполняют серверный код конфигурации.
  3. 🗄️ СУБД — хранит таблицы базы. Может стоять на той же машине, что и сервер 1С, или на отдельной.

Внутри сервера 1С работают три вида процессов:

ПроцессЧто делаетПорт по умолчанию
ragentагент сервера: первая точка входа клиента и консоли администрирования1540
rmngrменеджер кластера: хранит реестр баз, распределяет сеансы1541
rphostрабочие процессы: выполняют код, ходят в СУБДдиапазон 1560–1591

Подключение идёт по цепочке: клиент обращается к агенту на 1540, тот направляет его к менеджеру кластера на 1541, а затем клиент получает соединение с рабочим процессом из диапазона портов. Диапазон для rphost задаётся в свойствах рабочего сервера, а не кластера.

Если клиенты подключаются через межсетевой экран, открывать нужно все три зоны: 1540, 1541 и весь диапазон рабочих процессов. Открыли только 1540 — получите ошибку соединения после первого обращения.

Код конфигурации, помеченный директивой &НаСервере, в клиент-серверном варианте выполняется в rphost на сервере. В файловом варианте «сервер» эмулируется внутри процесса пользователя на его же компьютере. Поэтому одна и та же конфигурация работает в обоих режимах, но ведёт себя по-разному в мелочах (пути к файлам, права, COM-объекты — об этом ниже).

Чем серверная 1С отличается от файловой версии

Короткая сводка по пунктам, которые чаще всего решают выбор.

КритерийФайловая базаКлиент-серверная база
Где лежат данныефайл 1Cv8.1CD в сетевой папкетаблицы в СУБД
Кто выполняет серверный кодкомпьютер пользователярабочие процессы сервера
Комфортное число одновременных пользователейориентировочно до 5–10десятки и сотни
Размер базына больших объёмах заметно замедляетсяограничен в основном ресурсами СУБД и дисков
Блокировкина уровне таблицна уровне записей (управляемые блокировки)
Резервное копированиекопия файла или выгрузка .dtсредства СУБД, в том числе без остановки работы
Администрирование сеансовпочти никакогоконсоль кластера, rac, завершение сеансов
Стоимостьтолько клиентские лицензииплюс лицензия сервера, СУБД (может быть бесплатной), железо

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

Вторая разница — устойчивость к сбоям. Обрыв сети при записи в файл 1Cv8.1CD может повредить базу. В серверном варианте транзакция в СУБД либо фиксируется, либо откатывается целиком.

Нужен ли вам сервер 1С?

Управление кластером серверов 1С

Основной инструмент — Консоль администрирования серверов 1С:Предприятия. Это оснастка MMC, она ставится вместе с сервером или отдельно на рабочее место администратора.

Что в ней делают:

  • 📋 создают и удаляют информационные базы в кластере;
  • 👥 смотрят активные сеансы и соединения, завершают зависшие;
  • 🔒 включают блокировку начала сеансов и блокировку регламентных заданий перед обновлением;
  • ⚙️ настраивают рабочие серверы, диапазоны портов, требования назначения функциональности;
  • 🛡️ задают администраторов кластера и профили безопасности.

Если консоль не открывается или пишет об ошибке оснастки, частая причина — не зарегистрирована библиотека radmin.dll нужной версии платформы. Её регистрируют через regsvr32 из каталога bin установленной платформы, запустив командную строку от имени администратора. Версия консоли должна совпадать с версией сервера.

Для Linux и для скриптов есть связка ras + rac. Сервер администрирования ras поднимается рядом с агентом (по умолчанию слушает порт 1545), а утилита rac отправляет ему команды:

# список кластеров на сервере
rac localhost:1545 cluster list

# сеансы в кластере
rac localhost:1545 session list --cluster=<uuid-кластера>

# полный перечень команд и параметров
rac help

Завершение сеанса через консоль или rac обрывает работу пользователя без сохранения. Перед завершением сеансов и перезапуском службы предупредите людей и делайте это вне рабочего времени.

Сервер 1С: требования к железу и лицензиям

Оборудование

Точных цифр «на все случаи» нет, но для старта годятся такие ориентиры:

НагрузкаПроцессорПамятьДиски
до 15 пользователей, СУБД на той же машине4 ядра16 ГБSSD под базу и журналы
15–50 пользователей8 ядер32 ГБотдельные SSD/NVMe под данные СУБД и под временные файлы
50+ пользователейСУБД на отдельной машинеот 64 ГБ на сервер СУБДNVMe, RAID 10

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

ОС для сервера — Windows Server 2016 и новее или поддерживаемые дистрибутивы Linux. Сервер 1С и PostgreSQL на Linux — рабочая и распространённая связка.

Лицензии

Для клиент-серверной работы нужны:

  1. Лицензия на сервер 1С:Предприятия — уровня ПРОФ или КОРП. КОРП добавляет возможности для крупных внедрений (масштабирование и отказоустойчивость кластера), для типичной компании хватает ПРОФ. Набор функций сверяйте с описанием лицензий у партнёра перед покупкой.
  2. Клиентские лицензии — по числу одновременных пользователей. В серверном варианте их удобно ставить на сервер: тогда пользователи берут лицензии из общего пула, где бы они ни работали.
  3. Лицензия СУБД — для Microsoft SQL Server она платная, сборки PostgreSQL для 1С распространяются бесплатно.

Одна лицензия сервера покрывает все базы на этом рабочем сервере. Ориентир по цене: лицензия сервера ПРОФ — порядка нескольких десятков тысяч рублей, КОРП — заметно дороже; актуальный прайс уточняйте у партнёра.

Без лицензии платформа базу не запустит — «демо-режима» у сервера нет. Исключение — учебная версия, но клиент-серверный вариант она не поддерживает.

Производительность серверной базы и её настройка

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

  • 🐢 Диски СУБД — HDD вместо SSD или общий диск с другими системами.
  • 🧠 Память — СУБД не хватает памяти под кэш, она постоянно читает с диска.
  • 🔐 Блокировки — конфигурация в автоматическом режиме блокировок или тяжёлые транзакции, которые держат данные долго.
  • 🧹 Обслуживание СУБД — не обновляется статистика, не перестраиваются индексы.

Что настраивают в первую очередь:

  1. Регламентное обслуживание СУБД. Для MS SQL — планы обслуживания с обновлением статистики и перестроением индексов. Для PostgreSQL — VACUUM и ANALYZE (автоочистка должна быть включена).
  2. Параметры рабочего сервера. В свойствах рабочего сервера в консоли задают количество информационных баз и соединений на один рабочий процесс, лимиты памяти рабочих процессов. Значения по умолчанию подходят для начала, менять их стоит по результатам замеров.
  3. Технологический журнал. Его включают файлом logcfg.xml в каталоге conf платформы и смотрят события долгих запросов и ожиданий на блокировках. Это главный источник правды при разборе тормозов.
  4. Режим блокировок конфигурации. Типовые конфигурации давно работают в управляемом режиме. Если у вас старая доработанная конфигурация на автоматических блокировках — серверный вариант раскроется только после её перевода.

Технологический журнал при подробных настройках быстро съедает диск. Задавайте срок хранения и включайте только нужные события.

Безопасность и права доступа в клиент-серверной 1С

Права в серверном варианте живут на трёх уровнях. Их часто путают.

УровеньГде настраиваетсяЧто защищает
Администраторы кластераконсоль, раздел администраторов кластерасоздание и удаление баз, управление сеансами
Пользователи СУБДсредства СУБДдоступ к таблицам напрямую, в обход 1С
Пользователи и роли 1Свнутри конфигурациичто человек видит и делает в программе

Минимальный набор мер:

  • 🔑 Задайте администратора кластера. Пока его нет, любой, кто дотянется до порта 1540 с консолью, может удалить базу из кластера.
  • 🗄️ Отдельный пользователь СУБД для 1С вместо sa или postgres. Пароль к нему знает только администратор.
  • 🧑‍💻 Служба сервера 1С запускается от отдельной учётной записи ОС с минимальными правами (при стандартной установке на Windows это USR1CV8).
  • 🧱 Сетевой доступ. Порты 1540, 1541 и диапазон рабочих процессов открыты только для пользовательской сети, порт СУБД — только для сервера 1С.
  • 🛡️ Профили безопасности в кластере ограничивают внешние обработки и расширения: доступ к файловой системе, COM-объектам, интернет-ресурсам.

В свойствах информационной базы в кластере проверьте параметр выдачи лицензий сервером: если клиентские лицензии стоят на сервере, он должен быть включён. Там же хранятся имя и пароль пользователя СУБД — пользователям 1С их знать не нужно.

Перенос файловой базы на сервер 1С

Классический и самый надёжный способ — через файл выгрузки .dt.

Подготовка

  1. Убедитесь, что на сервере стоит та же версия платформы, что используется у пользователей, — или новее, если вы планируете обновить её всем.
  2. Установите и проверьте СУБД. Для PostgreSQL берите сборку, рекомендованную для вашей версии платформы.
  3. Сделайте копию файла 1Cv8.1CD — это ваш путь отката.

Перенос

  1. Откройте файловую базу в Конфигураторе и выполните Администрирование → Выгрузить информационную базу. Получите файл .dt.
  2. В консоли кластера создайте новую информационную базу: укажите имя базы в кластере, тип СУБД, сервер СУБД, имя базы данных и пользователя СУБД. Можно отметить флажок создания базы данных, если её ещё нет.
  3. Добавьте эту базу в список у себя: в окне запуска выберите добавление существующей базы, вариант «На сервере 1С:Предприятия», укажите имя сервера и имя базы в кластере.
  4. Откройте новую базу в Конфигураторе и выполните Администрирование → Загрузить информационную базу, выбрав файл .dt. Загрузка требует монопольного доступа и полностью заменяет содержимое базы.
  5. Запустите базу в режиме 1С:Предприятие, проверьте остатки по ключевым счетам или регистрам и открытие пары документов.
  6. Разошлите пользователям новую строку подключения и уберите старую файловую базу из их списков, чтобы никто не продолжил работать в ней.

Файловую базу после переноса переведите в режим «только чтение» или переименуйте папку — иначе через неделю окажется, что половина отдела работает в старой базе.

Что ломается после переезда

Опытный администратор проверяет эти места до того, как пользователи начнут жаловаться:

  • 📁 Пути к файлам. Серверный код ищет C:\Обмен\ уже на диске сервера, а не на компьютере пользователя. Пути к общим папкам обменов и загрузок нужно указывать в формате \\сервер\папка.
  • 👤 Права службы. Сетевые папки должны быть доступны учётной записи, от которой работает служба сервера 1С, а не только самим пользователям.
  • 🧩 COM-объекты и внешние компоненты при серверном вызове создаются на сервере. Если Excel или драйвер оборудования стоял только на рабочих местах, серверная обработка не найдёт его.
  • ⏰ Регламентные задания начинают выполняться сами по расписанию. Проверьте, что обмены и загрузки не запустятся дважды — в серверной и в ещё живой файловой копии.
  • 🔐 Лицензии. Если клиентские лицензии были привязаны к рабочим местам, решите, оставляете их там или переносите на сервер.
Проверка после перевода базы на сервер
Выполнено: 0 / 6

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

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