К статье
Практический материал

Администрирование · 11 мин

Как работает сервер 1С: устройство, компоненты и принципы взаимодействия

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

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

В отличие от файлового режима, где каждый клиент сам читает и пишет данные в общий файл, клиент-серверный вариант централизует всю логику на сервере. Это снимает ограничения по числу одновременных подключений, повышает безопасность (пользователи не имеют прямого доступа к файлам БД) и позволяет распределять нагрузку между несколькими рабочими серверами.

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

Трёхзвенная архитектура: клиент, сервер 1С, СУБД

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

Взаимодействие выглядит так: пользователь нажимает «Провести документ» — клиент отправляет вызов на сервер, рабочий процесс сервера выполняет код проведения, формирует SQL-запросы и передаёт их в СУБД, получает результат и возвращает клиенту готовые данные для отображения. Клиент никогда не обращается к СУБД напрямую, что исключает необходимость выдавать пользователям права на базу данных.

Из каких процессов состоит кластер сервера

Кластер — не монолитная программа, а набор взаимодействующих процессов. Агент кластера (ragent) — главный процесс, который запускается первым, ведёт список информационных баз и координирует остальные компоненты. По умолчанию агент слушает порт 1540. Рабочие процессы (rphost) — именно они исполняют прикладной код и обслуживают сеансы пользователей; их может быть несколько, и при росте нагрузки кластер автоматически запускает дополнительные экземпляры. Менеджер кластера (rmngr) управляет фоновыми заданиями, сервисами сеансовых данных и распределением нагрузки.

Дополнительно работают служебные процессы: ragent хранит реестр кластера в каталоге srvinfo, а на каждый рабочий сервер кластера приходится свой набор rphost. Знание этих процессов важно при диагностике: например, «зависший» сеанс обычно виден в консоли кластера как соединение на конкретном rphost, и завершать нужно именно сеанс, а не перезапускать весь сервер.

ragentАгент кластера

Координирует кластер, порт 1540; без него кластер не работает

rphostРабочий процесс

Исполняет код конфигурации и обслуживает сеансы; потребляет основную память

rmngrМенеджер кластера

Управляет фоновыми заданиями и распределением нагрузки

Как сервер обрабатывает запрос пользователя

Когда клиент подключается, агент кластера назначает ему рабочий процесс с учётом текущей загрузки и правил распределения. Сеанс закрепляется за конкретным rphost, и все последующие вызовы в рамках этого сеанса обрабатываются им. Внутри рабочего процесса выполняется серверный код: обработчики проведения, запросы к данным, расчёты в регистрах.

Обращения к данным идут через механизм управляемых блокировок: сервер 1С сам отслеживает, какие объекты заняты транзакциями, и ставит конкурирующие операции в очередь, а не допускает взаимных блокировок на уровне СУБД. Если два пользователя одновременно проводят документы, изменяющие один регистр остатков, второй сеанс подождёт завершения первой транзакции. При грамотно написанной конфигурации такие ожидания кратковременны; при ошибках в коде они превращаются в массовые «зависания».

Фоновые задания — регламентные операции, обмены, расчёты — выполняются теми же рабочими процессами через менеджер кластера. Это важно учитывать: тяжёлое регламентное задание, запущенное в разгар рабочего дня, конкурирует за ресурсы с интерактивными сеансами пользователей.

Требования к оборудованию и инфраструктуре

Сервер 1С чувствителен к трём ресурсам: оперативной памяти, скорости дисковой подсистемы и сети между сервером 1С и СУБД. Память расходуется рабочими процессами пропорционально числу активных сеансов и объёму обрабатываемых данных; при нехватке RAM rphost начинает «раздуваться» и перезапускаться, что пользователи ощущают как обрывы сеансов. Диски критичны в первую очередь для СУБД: журнал транзакций и файлы данных должны располагаться на быстрых носителях, желательно SSD.

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

Настройка кластера и распределение нагрузки

Администрирование выполняется через консоль управления кластером (или утилиту rac из командной строки). В консоли задаются свойства рабочих процессов: максимальный объём памяти на процесс, допустимое число соединений, интервал перезапуска. Ограничение памяти на rphost защищает сервер от ситуации, когда один «утекающий» процесс забирает всю RAM и роняет кластер целиком.

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

Базовый порядок развёртывания сервера
  1. 1
    Установите СУБД и создайте пустую базу данных с нужной кодировкой
  2. 2
    Установите компоненты сервера 1С:Предприятия той же версии платформы, что и у клиентов
  3. 3
    Запустите агент сервера и откройте консоль кластера
  4. 4
    Создайте информационную базу через консоль или конфигуратор, указав сервер СУБД и имя базы
  5. 5
    Настройте ограничения памяти и перезапуск рабочих процессов
  6. 6
    Проверьте подключение тонким клиентом и выполните тестовое проведение документа
bash
rac cluster list --cluster=localhost:1545

Диагностика проблем и типичные ошибки

Основные симптомы неполадок сервера 1С: медленная работа у всех пользователей, обрывы сеансов, ошибки «соединение с сервером разорвано», очереди блокировок. Первичная диагностика начинается с консоли кластера — там видно, какие сеансы активны, какой rphost перегружен, есть ли зависшие фоновые задания. Для глубокого анализа используется технологический журнал: он фиксирует длительные вызовы, запросы к СУБД, взаимоблокировки и ошибки.

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

Типичные ошибки администрирования
01
Не ограничена память рабочих процессов — один rphost забирает всю RAM и роняет кластер
02
Разные версии платформы на сервере и клиентах — пользователи не могут подключиться
03
СУБД без регламентного обслуживания — разрастание журнала транзакций и деградация скорости
04
Тяжёлые регламентные задания запущены днём — конкуренция за ресурсы с пользователями
05
Сервер 1С и СУБД в разных сетевых сегментах — задержки на каждый запрос

Проверка результата и мониторинг

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

Контрольные точки

Как проверить здоровье сервера

Память рабочих процессов
Норма

Потребление стабильно, rphost не перезапускаются по лимиту

Тревожный признак

Процессы регулярно достигают лимита и перезапускаются, сеансы обрываются

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

Нет массовых событий DBLOCK, TLOCK, TDEADLOCK и длительных запросов

Тревожный признак

Регулярные взаимоблокировки и запросы длиной в десятки секунд

Сеансы в консоли кластера
Норма

Сеансы завершаются корректно, нет «спящих» зависших соединений

Тревожный признак

Накопление неактивных сеансов и соединений, съедающих память

Часто задаваемые вопросы

Чем сервер 1С отличается от СУБД и зачем нужны оба компонента?

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

Можно ли обойтись без сервера 1С?

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

Почему рабочие процессы rphost съедают всю память?

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

Что делать, если пользователи жалуются на взаимоблокировки?

Включите сбор событий TDEADLOCK и TLOCK в технологическом журнале, определите объекты и операции, которые конфликтуют. Обычно проблема в порядке обращения к данным в коде или в слишком длинных транзакциях — это задача для доработки конфигурации, а не для настроек сервера.

Нужно ли перезагружать сервер 1С регулярно?

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

Как обновить платформу на сервере без остановки работы?

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

Итог

Что важно запомнить

Сервер 1С — это кластер процессов (ragent, rphost, rmngr), исполняющий код конфигурации и связывающий клиентов с СУБД. Стабильность зависит от лимитов памяти рабочих процессов, быстрой сети до СУБД, регламентного обслуживания базы и грамотного кода конфигурации. Диагностику начинайте с консоли кластера и технологического журнала.