Работа 1С через сервер: устройство, перенос базы и типичные сбои
Содержание
Клиент-серверный режим 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 |
Как клиент находит базу
Порядок соединения такой:
- Клиент обращается к агенту сервера по порту
1540. - Агент передаёт его менеджеру кластера (порт
1541). - Менеджер выделяет рабочий процесс
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С и СУБД стоят на одной машине. Под конкретную нагрузку их подбирают по замерам.
| Пользователей одновременно | Процессор | Память | Диски |
|---|---|---|---|
| до 15 | 4 ядра | 16 ГБ | SSD, отдельный том под базы |
| 15–50 | 8 ядер | 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С:Предприятия».
- Включите опцию установки сервера как службы Windows. Установщик предложит создать пользователя
USR1CV8— от его имени будет работать служба. - После установки проверьте в списке служб, что агент сервера 1С:Предприятия запущен.
- Откройте в брандмауэре порты
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. Перенос существующей файловой базы
- Откройте файловую базу в Конфигураторе и выгрузите её:
Администрирование→Выгрузить информационную базу(файл.dt). - Откройте новую пустую серверную базу в Конфигураторе.
- Выполните
Администрирование→Загрузить информационную базуи выберите.dt.
Загрузка .dt полностью заменяет содержимое базы-приёмника. Убедитесь, что выбрали пустую новую базу, а не рабочую. Для загрузки нужен монопольный доступ к базе.
Лицензии сервера 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С.
- Скопируйте каталог
srvinfoв резервную папку. - Удалите содержимое папок
snccntx*. Файлы.lstс реестром кластера и списком баз не трогайте. - Запустите службу.
Что ускоряет работу
- 🔒 Управляемые блокировки. Режим управления блокировкой данных в свойствах конфигурации — «Управляемый». В типовых конфигурациях на 8.3 он уже включён, в старых доработанных базах проверьте.
- 🧠 Память рабочих процессов. В свойствах рабочего сервера есть параметры «Безопасный расход памяти за один вызов» и объём памяти, до которого сервер считается производительным. Они не дают одному тяжёлому отчёту съесть всю память.
- 🗃️ Обслуживание СУБД. Регулярное обновление статистики и перестроение индексов. Для MS SQL это планы обслуживания, для PostgreSQL — настройка autovacuum.
- 📋 Технологический журнал. Файл
logcfg.xmlв каталогеconfплатформы включает запись событий: долгие запросы, ожидания на блокировках, взаимоблокировки. По журналу видно, какой именно код тормозит.
Не держите на сервере 1С терминальные сеансы пользователей с браузерами и почтой. Они конкурируют с рабочими процессами за процессор и память.
Частые ошибки при переходе на клиент-серверный режим
- ❌ Разные версии платформы. Обновили сервер — клиенты перестали заходить. Обновляйте сервер и клиентов одновременно или включите автообновление клиента.
- ❌ СУБД без ограничения памяти. MS SQL забирает почти всю оперативную память, рабочим процессам 1С её не хватает, начинаются падения
rphost. - ❌ Резервные копии только через
.dt. Выгрузка требует выгнать всех пользователей и долго идёт на большой базе. Основную копию делайте средствами СУБД,.dt— дополнительно перед обновлениями. - ❌ Сервер на HDD. Медленный диск съедает все плюсы клиент-серверного режима.
- ❌ Пароль администратора кластера знает один человек. Запишите его в хранилище паролей компании: восстановить его без остановки службы и правки файлов кластера не получится.
Частые вопросы
Можно ли работать в клиент-серверном режиме без отдельного сервера?
Нужно ли платить за СУБД?
Работает ли веб-клиент без клиент-серверного режима?
Можно ли вернуть серверную базу в файловую?
.dt, создайте пустую файловую базу и загрузите в неё этот файл через Конфигуратор.