Клиент-серверная 1С: что берёт на себя сервер и когда без него не обойтись
Содержание
Сервер 1С:Предприятие нужен, чтобы данные и вычисления жили не на компьютере каждого пользователя, а в одном месте. Он принимает подключения клиентов, сам выполняет запросы, проведение документов и регламентные задания, а данные хранит в СУБД: Microsoft SQL Server, PostgreSQL, IBM Db2 или Oracle Database. Для работы с базой одновременно 10–15 человек и больше сервер почти всегда выгоднее файлового варианта.
Простой пример. В файловой базе проведение месячной ведомости на 300 сотрудников тянет данные по сети на компьютер бухгалтера и обрабатывает их там. В клиент-серверной базе тот же расчёт идёт на сервере рядом с СУБД, а клиент получает только результат. Сеть и слабый ноутбук перестают быть узким местом.
Как устроен клиент-серверный вариант 1С
Сервер 1С — это не одна программа, а набор процессов, которые вместе называют кластером серверов. Устанавливается он как служба «Агент сервера 1С:Предприятия 8.3» на Windows или Linux.
Процессы кластера и порты по умолчанию
| Процесс | Что делает | Порт по умолчанию |
|---|---|---|
ragent — агент сервера | Принимает первое обращение клиента, через него работает консоль кластера | 1540 |
rmngr — менеджер кластера | Хранит реестр кластера, распределяет сеансы, управляет блокировками | 1541 |
rphost — рабочие процессы | Выполняют код конфигурации, запросы к СУБД, фоновые задания | диапазон 1560–1591 |
ras — сервер администрирования | Даёт доступ к кластеру утилите rac и сторонним консолям | 1545 |
Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера, а не кластера. Если между клиентами и сервером стоит межсетевой экран, открывать нужно и 1540–1541, и весь этот диапазон. Иначе клиент найдёт агента, но подключиться к базе не сможет.
Путь одного запроса
- Клиент (тонкий, толстый или веб-клиент через веб-сервер) обращается к агенту на порт 1540.
- Агент передаёт его менеджеру кластера, тот выбирает рабочий процесс.
- Рабочий процесс выполняет серверный код и обращается к СУБД.
- Клиенту возвращается результат: форма, отчёт, сообщение об ошибке.
Сама СУБД может стоять на том же компьютере или на отдельном. Пользователю это не видно: в списке баз он видит строку вида Srvr="server1c";Ref="buh";, а не путь к файлу.
Строку подключения удобно раздавать файлом списка баз .v8i или через общий файл списка в настройках стартера. Тогда при переезде сервера правят одно место, а не 30 рабочих мест.
Что умеет сервер 1С и чем он полезен
Главная мысль: сервер снимает с рабочих мест всё тяжёлое и общее. Вот что это даёт на практике.
- 🚀 Скорость на большом числе пользователей. Запросы выполняются рядом с данными. 40 человек в одной базе — рабочая ситуация, а не повод для жалоб.
- 🔒 Безопасность данных. Пользователям не нужна сетевая папка с правами на запись. Файл базы нельзя случайно скопировать, удалить или зашифровать вирусом с рабочего места.
- ⏱ Регламентные и фоновые задания. Обмены, загрузка курсов валют, обновление полнотекстового индекса выполняются на сервере по расписанию. Никто не должен держать открытым сеанс 1С.
- 🧩 Блокировки на уровне записей. При управляемых блокировках двое пользователей могут одновременно проводить документы по разным контрагентам и не ждать друг друга.
- 💾 Резервное копирование средствами СУБД. Полные и разностные копии, журнал транзакций, восстановление на момент времени — без выгона пользователей.
- 📈 Масштабирование. Можно добавить рабочие процессы, второй рабочий сервер, настроить резервирование. Файловой базе расти некуда.
- 🛠 Управление сеансами. Администратор видит, кто в базе, какой сеанс держит блокировку и сколько памяти ест каждый процесс. Завершить зависший сеанс можно из консоли, не обходя кабинеты.
Файловая база или сервер: отличия и момент для перехода
Файловый вариант — это один файл 1Cv8.1CD в папке, к которому клиенты обращаются напрямую. Сервер 1С и СУБД для него не нужны. Для одного-пяти пользователей это нормальный и дешёвый выбор.
| Критерий | Файловый режим | Клиент-серверный режим |
|---|---|---|
| Где выполняется код | На компьютере пользователя | На сервере 1С |
| Хранение данных | Файл 1Cv8.1CD | База в СУБД |
| Комфортное число пользователей | Ориентировочно до 5–10 | Десятки и сотни |
| Блокировки | Крупные, на уровне таблиц | На уровне записей (управляемые) |
| Регламентные задания | Только пока открыт сеанс клиента | Выполняет сервер по расписанию |
| Резервная копия | Копия файла или выгрузка .dt, обычно без пользователей | Средствами СУБД, без остановки работы |
| Лицензии | Только клиентские | Клиентские + лицензия на сервер |
| Администрирование | Почти не нужно | Нужен человек, понимающий 1С и СУБД |
Признаки, что пора на сервер
- пользователи жалуются на «зависания», когда кто-то формирует большой отчёт или закрывает месяц;
- в базе работают больше 8–10 человек одновременно;
- файл базы перерос 10–20 ГБ, а тестирование и исправление идёт часами;
- нужны обмены по расписанию без «дежурного» компьютера;
- база открыта через интернет или из филиалов.
Как перевести файловую базу на сервер
- Сделайте выгрузку: в Конфигураторе файловой базы
Администрирование → Выгрузить информационную базу, получите файл.dt. - Создайте пустую базу в кластере через консоль администрирования серверов 1С: укажите имя базы, сервер СУБД, тип СУБД, имя базы данных и учётную запись СУБД.
- Откройте новую базу в Конфигураторе и выполните
Администрирование → Загрузить информационную базус этим.dt. - Добавьте базу в список у пользователей и проверьте вход, печать, обмены.
Загрузка .dt полностью заменяет данные в целевой базе. Не путайте рабочую серверную базу с новой пустой.
Железо и базовая настройка сервера 1С
Цифры ниже — ориентиры для типовых конфигураций (Бухгалтерия, ЗУП, УТ). Реальная нагрузка зависит от объёма данных и доработок.
| Пользователей | Процессор | Память (1С + СУБД на одной машине) | Диск |
|---|---|---|---|
| до 15 | 4 ядра с высокой частотой | 16 ГБ | SSD |
| 15–50 | 8 ядер | 32–64 ГБ | NVMe SSD |
| 50+ | 16+ ядер, 1С и СУБД раздельно | 64 ГБ и больше на СУБД | NVMe, отдельные диски под данные и журнал |
Для 1С важнее частота ядра, чем их количество: код одного вызова выполняется в одном потоке. Восемь медленных ядер дадут меньше, чем четыре быстрых.
Что настроить сразу после установки
- 🧠 Память рабочих процессов. В свойствах рабочего сервера задайте максимальный объём памяти рабочих процессов, а в свойствах кластера — безопасный расход памяти за один вызов. Тогда один тяжёлый отчёт не съест память у всех.
- 🔁 Перезапуск процессов. В свойствах кластера есть интервал перезапуска рабочих процессов и допустимый объём памяти. Это страховка от «распухания»
rphost. - 🗄 СУБД. Для PostgreSQL берите сборку, адаптированную для 1С. Для MS SQL Server ограничьте максимальную память сервера, иначе он займёт всю RAM и 1С начнёт свопиться.
- 👤 Администратор кластера. Задайте его в консоли сразу. Без него любой, кто знает адрес сервера, может открыть консоль и завершить чужие сеансы.
- 💾 Резервные копии. Настройте задания в СУБД, а не только выгрузку
.dtраз в неделю.
Изменения в свойствах рабочего сервера и кластера применяются к рабочим процессам, и часть из них перезапускается. Сеансы пользователей на перезапускаемых процессах обрываются. Меняйте такие настройки вечером или в выходной, предупредив пользователей.
Лицензии сервера и ключи защиты
В клиент-серверном режиме нужны два вида лицензий:
- Клиентские — на число одновременных подключений пользователей, как и в файловом варианте.
- Лицензия на сервер — разрешает запуск самого кластера. Без неё сервер не начнёт обслуживать базы.
Варианты серверной лицензии
| Лицензия | Для кого | Ограничение |
|---|---|---|
| Сервер МИНИ | Небольшие фирмы | До 5 подключений |
| Сервер (x86-64) | Основной вариант | Без ограничения числа подключений, только клиентские лицензии |
| Сервер КОРП | Крупные внедрения | Расширенные механизмы управления кластером для больших нагрузок |
По стоимости ориентир такой: «Сервер МИНИ» заметно дешевле, полная 64-разрядная лицензия ориентировочно стоит десятки тысяч рублей, КОРП — в несколько раз дороже. Актуальные цены спрашивайте у партнёра 1С.
Программная лицензия или аппаратный ключ
- 🔑 Программная лицензия (пин-код). Активируется на конкретный компьютер и привязана к его параметрам. При замене материнской платы, диска или переносе виртуальной машины лицензия «слетает», и нужна повторная активация резервным пин-кодом.
- 🔌 Аппаратный ключ (HASP). Вставляется в USB-порт сервера. Не зависит от смены железа, но на виртуализации требует проброса USB или сетевого USB-хаба.
В клиент-серверном варианте клиентские лицензии удобно ставить на сам сервер. Тогда их получает и раздаёт кластер, а на рабочих местах ключи и пин-коды не нужны. Посмотреть, какой сеанс какую лицензию занял, можно в консоли кластера или командой rac session list --licenses.
Храните файлы активированных программных лицензий (.lic) и неиспользованные резервные пин-коды в надёжном месте. После переустановки системы это сэкономит время на повторной активации.
Мониторинг и диагностика производительности сервера
Когда «1С тормозит», первым делом нужно понять, где именно: в рабочих процессах 1С, в СУБД, на диске или в сети. У сервера для этого есть свои инструменты.
Инструменты администратора
- 🖥 Консоль администрирования серверов 1С. Показывает сеансы, соединения, рабочие процессы с объёмом памяти, управляемые блокировки. Отсюда же завершают зависший сеанс.
- 🧾 Утилита
rac. То же самое из командной строки, через сервер администрированияras. Удобна для скриптов и мониторинга. Начните сrac cluster list, остальные команды — вrac help. - 📜 Технологический журнал. Включается файлом
logcfg.xmlв каталоге настроек сервера. Пишет длительные вызовы, ожидания на блокировках, взаимоблокировки, исключения. Главный инструмент поиска медленных мест. - 📊 Счётчики потребления ресурсов. Создаются в консоли кластера и показывают, какой пользователь или сеанс нагружает процессор и СУБД.
- 🗃 Средства СУБД. Для MS SQL — монитор активности и планы запросов, для PostgreSQL — статистика
pg_stat_activityи журнал медленных запросов.
Типичные симптомы и где их искать
Завершение сеанса или рабочего процесса из консоли обрывает работу пользователя: несохранённые изменения и незавершённые транзакции пропадут. Перед этим свяжитесь с человеком или делайте это после окончания рабочего дня.
Ошибки при переходе на сервер 1С
- ❌ Поставить СУБД «по умолчанию» и не настроить память. СУБД и 1С начинают бороться за RAM, и сервер работает медленнее старой файловой базы.
- ❌ Оставить кластер без администратора. Любой сотрудник с консолью может удалить базу из кластера или завершить чужие сеансы.
- ❌ Не открыть порты рабочих процессов. Открыли только 1540, а клиенты получают ошибку соединения.
- ❌ Перенести только базу, а лицензии забыть. Клиентские ключи остались на старом компьютере, и в первый день половина пользователей не может войти.
- ❌ Считать выгрузку
.dtполноценным бэкапом. Для серверной базы основная копия — средствами СУБД, а.dt— дополнительная. - ❌ Экономить на диске. Медленный HDD под СУБД сводит на нет все преимущества сервера.