Работа 1С через сервер: устройство, перенос базы и типичные сбои

· 10 мин

Содержание

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

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

Из чего состоит клиент-серверный вариант 1С: три звена

Архитектура трёхзвенная. Каждое звено можно поставить на отдельную машину или собрать два-три звена на одном сервере.

ЗвеноЧто этоПроцессы и программы
КлиентРабочее место пользователяТонкий клиент 1cv8c.exe, толстый клиент 1cv8.exe, веб-клиент через браузер
Сервер 1С:ПредприятияКластер, который выполняет код конфигурации и запросыragent — агент сервера, rmngr — менеджер кластера, rphost — рабочие процессы
Сервер СУБДХранилище данныхMS SQL Server, PostgreSQL, IBM Db2, Oracle Database

Как клиент находит базу

Порядок соединения такой:

  1. Клиент обращается к агенту сервера по порту 1540.
  2. Агент передаёт его менеджеру кластера (порт 1541).
  3. Менеджер выделяет рабочий процесс rphost, и дальше клиент работает с ним. Порты рабочих процессов берутся из диапазона, который задаётся в свойствах рабочего сервера; по умолчанию это 1560:1591.

Консоль администрирования тоже подключается через агент. Если у вас удалённое администрирование через утилиту rac, то сначала запускается сервер администрирования ras (по умолчанию порт 1545), а rac подключается уже к нему.

Кто что делает

  • 🖥️ Клиент показывает формы и выполняет только клиентский код. В тонком клиенте почти вся логика уходит на сервер.
  • ⚙️ Рабочие процессы проводят документы, выполняют запросы, формируют отчёты и регламентные задания.
  • 🗄️ СУБД хранит таблицы, индексы и отвечает за транзакции и блокировки на уровне данных.

Чем клиент-серверный режим 1С отличается от файлового

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

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

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

Чёткой границы по числу пользователей нет. Практические признаки, что файловая база упёрлась в потолок:

  • 🐢 проведение документа «висит», пока кто-то формирует большой отчёт;
  • ⏳ появляются ошибки блокировки при одновременной записи;
  • 📦 файл базы перевалил за 10–20 ГБ и продолжает расти;
  • 🌐 нужен доступ из нескольких офисов или веб-клиент для внешних сотрудников;
  • 🔁 закрытие месяца приходится запускать вечером, когда все ушли.

Если у вас 2–3 пользователя и база на 2 ГБ, переход на сервер почти ничего не даст. Сначала проверьте диск (SSD вместо HDD) и сеть: часто именно они тормозят файловую базу.

Что нужно для сервера 1С: оборудование, ОС и СУБД

Программное обеспечение

  • ОС сервера: Windows Server 2016 и новее или Linux (дистрибутивы на базе Debian и RHEL, а также российские сертифицированные ОС).
  • СУБД: чаще всего MS SQL Server или PostgreSQL. Для PostgreSQL берите сборку, адаптированную для 1С (её распространяют вместе с дистрибутивами платформы, а также Postgres Pro): обычная «ванильная» сборка без патчей 1С работает с ограничениями.
  • Платформа: дистрибутив «Сервер 1С:Предприятия» той же версии, что и у клиентов.

Оборудование: ориентиры

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

Пользователей одновременноПроцессорПамятьДиски
до 154 ядра16 ГБSSD, отдельный том под базы
15–508 ядер32–64 ГБNVMe SSD, RAID 1 или 10
50+12+ ядер, СУБД лучше вынести64+ ГБNVMe, отдельные тома под данные и журнал транзакций

Для 1С важнее частота ядра, чем их количество: один длинный вызов выполняется в одном потоке. Сервер с 8 быстрыми ядрами обычно лучше сервера с 32 медленными.

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

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

1. Установка СУБД

Поставьте MS SQL Server или PostgreSQL, создайте пользователя с правами на создание баз. Для MS SQL сразу ограничьте максимальный объём памяти СУБД, иначе она займёт всю память и вытеснит рабочие процессы 1С.

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

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

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

Консоль «Администрирование серверов 1С Предприятия» не откроется сразу после установки: ей нужна зарегистрированная библиотека radmin.dll. Запустите командную строку от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.XX.XXXX\bin\radmin.dll"

Вместо 8.3.XX.XXXX подставьте номер своей версии. Регистрировать нужно библиотеку той же версии, что и сервер. После обновления платформы регистрацию повторяют для новой папки.

Затем в консоли: правой кнопкой по «Central console» → Создать → Центральный сервер 1С:Предприятия, укажите имя компьютера.

4. Создание информационной базы

В консоли раскройте кластер → Информационные базы → Создать. Заполните:

  • Имя — так база будет называться в кластере;
  • Сервер баз данных и Тип СУБД;
  • База данных — имя базы в СУБД;
  • Пользователь и пароль сервера БД;
  • Смещение дат — для MS SQL ставят 2000;
  • флажок Создать базу данных в случае ее отсутствия.

Базу можно создать и из окна запуска 1С: Добавить → Создание новой информационной базы → вариант расположения На сервере 1С:Предприятия.

5. Перенос существующей файловой базы

  1. Откройте файловую базу в Конфигураторе и выгрузите её: Администрирование → Выгрузить информационную базу (файл .dt).
  2. Откройте новую пустую серверную базу в Конфигураторе.
  3. Выполните Администрирование → Загрузить информационную базу и выберите .dt.

Загрузка .dt полностью заменяет содержимое базы-приёмника. Убедитесь, что выбрали пустую новую базу, а не рабочую. Для загрузки нужен монопольный доступ к базе.

Сервер 1С готов к работе
Выполнено: 0 / 8

Лицензии сервера 1С и подключение рабочих мест

В клиент-серверном режиме нужны два типа лицензий.

Лицензия на сервер

Ставится на компьютер, где работает рабочий сервер 1С. Основные варианты:

  • Сервер мини — для небольших компаний, ограничен по числу одновременных подключений (ориентировочно до 5);
  • Сервер (стандартный) — без ограничения по пользователям;
  • Сервер КОРП — даёт расширенные возможности кластера: требования назначения функциональности, отказоустойчивый кластер из нескольких серверов и другие функции масштабирования.

Без лицензии на сервер кластер не обслуживает подключения к базам: пользователи увидят ошибку получения лицензии.

Клиентские лицензии

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

Посмотреть, какие лицензии сейчас заняты, можно в консоли кластера: откройте список сеансов базы и включите отображение лицензий. Из командной строки то же самое показывает команда:

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

Идентификатор кластера выводит rac cluster list.

Подключение пользователя

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

  • Кластер серверов 1С:Предприятия — имя сервера (если агент работает не на 1540, то имя:порт);
  • Имя информационной базы в кластере — то самое имя из консоли.

Строка подключения в файле списка баз выглядит так: Srvr="srv1c";Ref="buh";.

Диагностика и ускорение клиент-серверной базы 1С

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

Очистка кэша сервера

Если кластер ведёт себя странно (базы пропали из списка, сеансы «зависли», после обновления конфигурации ошибки метаданных), помогает очистка серверного кэша. Это папки snccntx* в каталоге srvinfo кластера.

Остановка службы агента обрывает сеансы всех пользователей всех баз кластера. Делайте это вне рабочего времени и предупредите людей.

  1. Остановите службу агента сервера 1С.
  2. Скопируйте каталог srvinfo в резервную папку.
  3. Удалите содержимое папок snccntx*. Файлы .lst с реестром кластера и списком баз не трогайте.
  4. Запустите службу.

Что ускоряет работу

  • 🔒 Управляемые блокировки. Режим управления блокировкой данных в свойствах конфигурации — «Управляемый». В типовых конфигурациях на 8.3 он уже включён, в старых доработанных базах проверьте.
  • 🧠 Память рабочих процессов. В свойствах рабочего сервера есть параметры «Безопасный расход памяти за один вызов» и объём памяти, до которого сервер считается производительным. Они не дают одному тяжёлому отчёту съесть всю память.
  • 🗃️ Обслуживание СУБД. Регулярное обновление статистики и перестроение индексов. Для MS SQL это планы обслуживания, для PostgreSQL — настройка autovacuum.
  • 📋 Технологический журнал. Файл logcfg.xml в каталоге conf платформы включает запись событий: долгие запросы, ожидания на блокировках, взаимоблокировки. По журналу видно, какой именно код тормозит.

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

Частые ошибки при переходе на клиент-серверный режим

  • ❌ Разные версии платформы. Обновили сервер — клиенты перестали заходить. Обновляйте сервер и клиентов одновременно или включите автообновление клиента.
  • ❌ СУБД без ограничения памяти. MS SQL забирает почти всю оперативную память, рабочим процессам 1С её не хватает, начинаются падения rphost.
  • ❌ Резервные копии только через .dt. Выгрузка требует выгнать всех пользователей и долго идёт на большой базе. Основную копию делайте средствами СУБД, .dt — дополнительно перед обновлениями.
  • ❌ Сервер на HDD. Медленный диск съедает все плюсы клиент-серверного режима.
  • ❌ Пароль администратора кластера знает один человек. Запишите его в хранилище паролей компании: восстановить его без остановки службы и правки файлов кластера не получится.

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

Можно ли работать в клиент-серверном режиме без отдельного сервера?
Можно поставить сервер 1С и СУБД на обычный мощный компьютер с Windows 10/11 или Linux. Для теста и маленькой команды это работает, но для постоянной работы лучше серверная ОС и SSD.
Нужно ли платить за СУБД?
PostgreSQL бесплатна. MS SQL Server требует лицензий, кроме редакции Express, у которой есть ограничение на размер базы (10 ГБ) и используемые ресурсы.
Работает ли веб-клиент без клиент-серверного режима?
Да, файловую базу тоже можно опубликовать на веб-сервере. Но при нескольких пользователях нагрузка на файловую базу через веб-публикацию растёт так же, как в обычном файловом режиме.
Можно ли вернуть серверную базу в файловую?
Да. Выгрузите серверную базу в .dt, создайте пустую файловую базу и загрузите в неё этот файл через Конфигуратор.
Сколько баз можно держать в одном кластере?
Жёсткого ограничения на десяток-другой баз нет. Упирается всё в память и процессор: каждая активная база занимает ресурсы рабочих процессов.