Как устроен сервер 1С:Предприятия и когда базе нужен клиент-серверный режим

· 10 мин

Содержание

Клиент-сервер 1С — это режим работы, при котором база данных лежит не в файле 1Cv8.1CD на общем диске, а в СУБД (MS SQL Server, PostgreSQL, IBM Db2 или Oracle Database), а между пользователями и СУБД стоит сервер 1С:Предприятия. Клиент только показывает формы и передаёт команды. Запросы, проведение документов и расчёты выполняет кластер серверов 1С. Архитектура трёхзвенная: клиент → сервер 1С → сервер СУБД.

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

Материал ниже относится к платформе 8.3 и не зависит от конфигурации: Бухгалтерия, ЗУП, УТ и ERP работают в клиент-серверном режиме одинаково.

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

Каждое звено — отдельная программа, и их можно разнести по разным машинам.

ЗвеноЧто этоЧто делает
🖥️ КлиентТонкий клиент 1cv8c.exe, толстый клиент 1cv8.exe, веб-клиент в браузереРисует интерфейс, выполняет клиентский код модулей форм
⚙️ Сервер 1ССлужба «Агент сервера 1С:Предприятия 8.3» и её процессыВыполняет серверный код, запросы, проведение, регламентные задания, выдаёт лицензии
🗄️ СУБДMS SQL Server, PostgreSQL, IBM Db2, Oracle DatabaseХранит таблицы, обеспечивает транзакции и блокировки записей

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

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

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

Кластер серверов 1С: агент, менеджер и рабочие процессы

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

Процессы и порты

  • 🔹 ragent — агент сервера. Слушает порт 1540. С него начинается любое подключение клиента и консоли администрирования.
  • 🔹 rmngr — менеджер кластера. Порт 1541. Ведёт реестр кластера: список баз, рабочих серверов, сеансов, блокировок.
  • 🔹 rphost — рабочие процессы. Порты берутся из диапазона, по умолчанию 1560–1591. Именно здесь выполняется код конфигурации и запросы к СУБД.

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

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

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

Что хранится на диске сервера

Служебные данные кластера лежат в каталоге srvinfo (в Windows по умолчанию C:\Program Files\1cv8\srvinfo). В подкаталоге reg_1541 находится реестр кластера — файл 1CV8Clst.lst со списком баз и настроек — и сеансовые данные. Этот каталог надо включить в резервное копирование : без него после сбоя придётся регистрировать все базы заново.

Несколько серверов в кластере

В кластер можно добавить второй и следующие рабочие серверы. Нагрузка распределяется между ними автоматически, а при назначении сервера центральным он тоже хранит копию реестра кластера и подстраховывает основной. Масштабирование и резервирование кластера требуют лицензии на сервер уровня КОРП.

Файловая база или сервер 1С: сравнение режимов

Файловый режим не хуже и не лучше — он под другую нагрузку. Для ИП и небольшой бухгалтерии на 2–3 рабочих места он удобнее: нечего администрировать.

КритерийФайловый режимКлиент-серверный режим
Где данныеОдин файл 1Cv8.1CDТаблицы в СУБД
Пользователи одновременноКомфортно — ориентировочно до 5–10Десятки и сотни
БлокировкиНа уровне таблиц: проведение одного документа может заставить ждать остальныхНа уровне записей, меньше ожиданий
Работа по сетиКаждый клиент читает файл по сети, медленно на слабых каналахПо сети идут только данные форм
ЛицензииКлиентскиеКлиентские + лицензия на сервер 1С
Резервное копированиеКопия файла или выгрузка .dtСредства СУБД, по расписанию, без остановки работы
АдминистрированиеПочти не нужноНужен администратор: служба, СУБД, обновления платформы

Когда переходить

  • 👥 Одновременно работают больше 8–10 пользователей, и тормоза растут с каждым новым сотрудником.
  • ⏳ При проведении документов или закрытии месяца другие получают ошибку ожидания блокировки.
  • 📦 Размер файла базы — десятки гигабайт, копия по сети делается часами.
  • 🌐 Есть удалённые офисы или сотрудники, которые работают через интернет .
  • 🔁 Нужны регламентные задания, которые идут сами по расписанию: обмены, загрузка курсов, выгрузка в банк. В файловой базе они выполняются только пока кто-то из пользователей держит базу открытой.

Перенос файловой базы на сервер делают через выгрузку и загрузку .dt: в Конфигураторе файловой базы Администрирование → Выгрузить информационную базу, затем создают пустую базу в кластере и в её Конфигураторе выбирают Администрирование → Загрузить информационную базу. Загрузка требует монопольного доступа к новой базе.

Установка сервера 1С и подключение первой базы

Порядок одинаков для Windows Server 2016 и новее. На Linux меняются только пакеты и способ запуска службы, логика та же.

Шаг 1. Подготовьте СУБД

  1. Установите MS SQL Server или PostgreSQL. Для PostgreSQL берите сборку, адаптированную для 1С (её выпускают фирма 1С и Postgres Professional), — обычная сборка из репозитория дистрибутива для 1С не подходит.
  2. Создайте отдельного пользователя СУБД для сервера 1С с правом создавать базы. Не используйте sa или postgres в рабочей схеме.
  3. Если СУБД на другой машине, откройте её порт для сервера 1С: у MS SQL по умолчанию 1433, у PostgreSQL 5432.

Шаг 2. Установите сервер 1С:Предприятия

  1. Запустите установщик платформы той же версии, что и у клиентов. Номер версии сервера и клиента должен совпадать полностью, до последней цифры сборки.
  2. В списке компонентов отметьте «Сервер 1С:Предприятия» и «Администрирование сервера 1С:Предприятия».
  3. Согласитесь установить сервер как службу Windows. Установщик создаст пользователя USR1CV8, от имени которого служба будет работать.
  4. После установки проверьте, что служба «Агент сервера 1С:Предприятия 8.3» запущена.

Шаг 3. Подключите консоль администрирования

Консоль — оснастка MMC «Администрирование серверов 1С Предприятия». Если она открывается с ошибкой или пустой, зарегистрируйте библиотеку radmin.dll нужной версии из командной строки, запущенной от администратора:

regsvr32 "C:\Program Files\1cv8\8.3.25.1286\bin\radmin.dll"

Номер версии в пути подставьте свой. Эта же команда нужна после каждого обновления платформы на сервере: консоль старой версии к новому агенту не подключится.

В консоли создайте новый центральный сервер (имя компьютера, порт 1540). Кластер «Локальный кластер» с портом 1541 появится автоматически.

Шаг 4. Создайте информационную базу в кластере

Проще всего — из окна запуска 1С на любом клиенте: Добавить → Создание новой информационной базы, тип расположения «На сервере 1С:Предприятия». Дальше заполните параметры:

ПолеЧто указать
Кластер серверов 1С:ПредприятияИмя сервера 1С (при нестандартном порте — имя:порт)
Имя информационной базы в кластереКороткое латиницей, например buh_main
Тип СУБДMS SQL Server или PostgreSQL
Сервер баз данныхИмя или адрес сервера СУБД
Имя базы данныхИмя базы в СУБД, обычно совпадает с именем в кластере
Пользователь и пароль сервера БДПользователь из шага 1
Смещение датДля MS SQL Server — 2000
Создать базу данных в случае ее отсутствияОтметить
Разрешить выдачу лицензий сервером 1С:Предприятия«Да», если лицензии стоят на сервере

Для копии рабочей базы (тестовой или для разработчика) включите флажок «Установить блокировку регламентных заданий». Иначе копия начнёт сама выполнять обмены, отправлять отчёты или выгрузки — от имени вашей организации.

Лицензия на сервер 1С активируется на самом сервере. Без неё кластер не даст пользователям войти в базу, исключение — учебная версия.

Мониторинг и диагностика производительности сервера 1С

Когда пользователи говорят «1С тормозит», сначала выясните, где именно: на клиенте, в сервере 1С или в СУБД.

Что смотреть в консоли кластера

  • 📋 Сеансы информационной базы: кто подключён, с какого компьютера, какое приложение, сколько времени занимает текущий вызов.
  • 🔒 Блокировки: какие объекты держит каждый сеанс. Если один сеанс висит долго, а остальные ждут — виновник обычно виден сразу.
  • 🧮 Рабочие процессы: занятая память, число соединений и показатель «Доступная производительность». Его резкое падение говорит о перегрузке процесса.

То же самое доступно из командной строки через сервер администрирования ras и утилиту rac. Это удобно для скриптов и для Linux, где оснастки MMC нет:

ras cluster --port=1545 localhost:1540
rac localhost:1545 cluster list
rac localhost:1545 session list --cluster=<uuid-кластера>

Идентификатор кластера берётся из вывода cluster list. Остальные команды и параметры — в справке rac help.

Технологический журнал

Для разбора долгих запросов и взаимоблокировок включают технологический журнал. Он настраивается файлом logcfg.xml в каталоге conf платформы. В нём указывают каталог логов, события (например, долгие вызовы и ожидания блокировок) и срок хранения. Сервер подхватывает файл без перезапуска.

Не оставляйте полный журнал включённым надолго: на нагруженном сервере он за час занимает гигабайты и сам добавляет нагрузку.

Типовые узкие места

СимптомГде искать
Медленно у всех, процессор сервера загруженРабочие процессы rphost, тяжёлые фоновые и регламентные задания
Ошибка «Конфликт блокировок при выполнении транзакции»Блокировки в консоли, долгие транзакции проведения
Медленно только у удалённых пользователейКанал связи, работа через толстый клиент вместо тонкого
Растёт память rphost до пределаОграничение памяти в свойствах рабочего сервера, утечки в доработках
Тормозит СУБД, диск занят на 100%Статистика и индексы СУБД, регламентное обслуживание базы

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

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

Безопасность кластера и резервное копирование базы

Закройте администрирование

Сразу после установки у кластера нет администратора: любой, кто дотянется до порта 1540 с установленной консолью, может удалить базу из кластера или завершить сеансы. Поэтому:

  1. Добавьте администратора центрального сервера в узле «Администраторы» консоли.
  2. Добавьте администратора кластера в свойствах кластера.
  3. Для каждой информационной базы задайте пользователей 1С с паролями, у администратора базы — отдельный пароль.
  4. Ограничьте доступ к портам сервера 1С только сетью офиса и VPN. Выставлять 1540–1591 в интернет нельзя.
  5. Пользователь СУБД для 1С не должен совпадать с суперпользователем СУБД.

Пароли администраторов кластера храните там, где их найдёт ваш преемник. Если пароль администратора кластера потерян, его не «сбрасывают»: останавливают службу и восстанавливают реестр кластера из резервной копии каталога srvinfo либо обращаются к администратору, который его ставил.

Как делать резервные копии

СпособПлюсыМинусы
Бэкап средствами СУБД (план обслуживания MS SQL, pg_dump для PostgreSQL)Без остановки работы, по расписанию, полный и разностныйНужно уметь восстанавливать именно этой СУБД
Выгрузка .dt из КонфигуратораПереносима между СУБД и файловым режимомДолго на больших базах, неудобна по расписанию
Копия каталога srvinfoВосстанавливает настройки кластера и список базСамих данных базы не содержит

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

Бэкап, который ни разу не восстанавливали, — не бэкап. Раз в квартал разворачивайте копию в отдельную тестовую базу с блокировкой регламентных заданий и открывайте её.

Сервер 1С после установки
Выполнено: 0 / 8

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

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