Клиент-серверная 1С: что берёт на себя сервер и когда без него не обойтись

· 10 мин

Содержание

Сервер 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, и весь этот диапазон. Иначе клиент найдёт агента, но подключиться к базе не сможет.

Путь одного запроса

  1. Клиент (тонкий, толстый или веб-клиент через веб-сервер) обращается к агенту на порт 1540.
  2. Агент передаёт его менеджеру кластера, тот выбирает рабочий процесс.
  3. Рабочий процесс выполняет серверный код и обращается к СУБД.
  4. Клиенту возвращается результат: форма, отчёт, сообщение об ошибке.

Сама СУБД может стоять на том же компьютере или на отдельном. Пользователю это не видно: в списке баз он видит строку вида Srvr="server1c";Ref="buh";, а не путь к файлу.

Строку подключения удобно раздавать файлом списка баз .v8i или через общий файл списка в настройках стартера. Тогда при переезде сервера правят одно место, а не 30 рабочих мест.

Что умеет сервер 1С и чем он полезен

Главная мысль: сервер снимает с рабочих мест всё тяжёлое и общее. Вот что это даёт на практике.

  • 🚀 Скорость на большом числе пользователей. Запросы выполняются рядом с данными. 40 человек в одной базе — рабочая ситуация, а не повод для жалоб.
  • 🔒 Безопасность данных. Пользователям не нужна сетевая папка с правами на запись. Файл базы нельзя случайно скопировать, удалить или зашифровать вирусом с рабочего места.
  • ⏱ Регламентные и фоновые задания. Обмены, загрузка курсов валют, обновление полнотекстового индекса выполняются на сервере по расписанию. Никто не должен держать открытым сеанс 1С.
  • 🧩 Блокировки на уровне записей. При управляемых блокировках двое пользователей могут одновременно проводить документы по разным контрагентам и не ждать друг друга.
  • 💾 Резервное копирование средствами СУБД. Полные и разностные копии, журнал транзакций, восстановление на момент времени — без выгона пользователей.
  • 📈 Масштабирование. Можно добавить рабочие процессы, второй рабочий сервер, настроить резервирование. Файловой базе расти некуда.
  • 🛠 Управление сеансами. Администратор видит, кто в базе, какой сеанс держит блокировку и сколько памяти ест каждый процесс. Завершить зависший сеанс можно из консоли, не обходя кабинеты.

Файловая база или сервер: отличия и момент для перехода

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

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

Признаки, что пора на сервер

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

Как перевести файловую базу на сервер

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

Загрузка .dt полностью заменяет данные в целевой базе. Не путайте рабочую серверную базу с новой пустой.

Железо и базовая настройка сервера 1С

Цифры ниже — ориентиры для типовых конфигураций (Бухгалтерия, ЗУП, УТ). Реальная нагрузка зависит от объёма данных и доработок.

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

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

Что настроить сразу после установки

  • 🧠 Память рабочих процессов. В свойствах рабочего сервера задайте максимальный объём памяти рабочих процессов, а в свойствах кластера — безопасный расход памяти за один вызов. Тогда один тяжёлый отчёт не съест память у всех.
  • 🔁 Перезапуск процессов. В свойствах кластера есть интервал перезапуска рабочих процессов и допустимый объём памяти. Это страховка от «распухания» rphost.
  • 🗄 СУБД. Для PostgreSQL берите сборку, адаптированную для 1С. Для MS SQL Server ограничьте максимальную память сервера, иначе он займёт всю RAM и 1С начнёт свопиться.
  • 👤 Администратор кластера. Задайте его в консоли сразу. Без него любой, кто знает адрес сервера, может открыть консоль и завершить чужие сеансы.
  • 💾 Резервные копии. Настройте задания в СУБД, а не только выгрузку .dt раз в неделю.

Изменения в свойствах рабочего сервера и кластера применяются к рабочим процессам, и часть из них перезапускается. Сеансы пользователей на перезапускаемых процессах обрываются. Меняйте такие настройки вечером или в выходной, предупредив пользователей.

Лицензии сервера и ключи защиты

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

  1. Клиентские — на число одновременных подключений пользователей, как и в файловом варианте.
  2. Лицензия на сервер — разрешает запуск самого кластера. Без неё сервер не начнёт обслуживать базы.

Варианты серверной лицензии

ЛицензияДля когоОграничение
Сервер МИНИНебольшие фирмыДо 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 под СУБД сводит на нет все преимущества сервера.

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

Можно ли поставить сервер 1С на обычный офисный компьютер?
Технически да, служба запустится. Но для постоянной работы нужен отдельный компьютер или виртуальная машина с SSD, достаточной памятью и бесперебойным питанием. Рабочий компьютер сотрудника под сервер не подходит.
Нужен ли сервер 1С, если база одна и пользователей трое?
Обычно нет. Файловая база на SSD справится, а деньги лучше потратить на резервное копирование.
Работает ли сервер 1С на Linux?
Да, сервер 1С:Предприятие 8.3 выпускается для Windows и Linux. Связка Linux и PostgreSQL популярна, потому что не требует лицензий на ОС и СУБД.
Обязательно ли покупать MS SQL Server?
Нет. Можно использовать PostgreSQL в сборке для 1С — она бесплатна. Выбор СУБД зависит от опыта администратора и требований компании.
Будут ли работать старые клиентские лицензии с сервером?
Да, клиентские лицензии одинаковы для файлового и серверного режима. Их можно оставить на рабочих местах или перенести на сервер, чтобы раздавал кластер.
Можно ли держать на одном сервере 1С несколько баз?
Да, один кластер обслуживает много баз: Бухгалтерию, ЗУП, УТ и тестовые копии. Следите только за памятью и нагрузкой на СУБД.