Администрирование · 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, и завершать нужно именно сеанс, а не перезапускать весь сервер.
Координирует кластер, порт 1540; без него кластер не работает
Исполняет код конфигурации и обслуживает сеансы; потребляет основную память
Управляет фоновыми заданиями и распределением нагрузки
Как сервер обрабатывает запрос пользователя
Когда клиент подключается, агент кластера назначает ему рабочий процесс с учётом текущей загрузки и правил распределения. Сеанс закрепляется за конкретным rphost, и все последующие вызовы в рамках этого сеанса обрабатываются им. Внутри рабочего процесса выполняется серверный код: обработчики проведения, запросы к данным, расчёты в регистрах.
Обращения к данным идут через механизм управляемых блокировок: сервер 1С сам отслеживает, какие объекты заняты транзакциями, и ставит конкурирующие операции в очередь, а не допускает взаимных блокировок на уровне СУБД. Если два пользователя одновременно проводят документы, изменяющие один регистр остатков, второй сеанс подождёт завершения первой транзакции. При грамотно написанной конфигурации такие ожидания кратковременны; при ошибках в коде они превращаются в массовые «зависания».
Фоновые задания — регламентные операции, обмены, расчёты — выполняются теми же рабочими процессами через менеджер кластера. Это важно учитывать: тяжёлое регламентное задание, запущенное в разгар рабочего дня, конкурирует за ресурсы с интерактивными сеансами пользователей.
Требования к оборудованию и инфраструктуре
Сервер 1С чувствителен к трём ресурсам: оперативной памяти, скорости дисковой подсистемы и сети между сервером 1С и СУБД. Память расходуется рабочими процессами пропорционально числу активных сеансов и объёму обрабатываемых данных; при нехватке RAM rphost начинает «раздуваться» и перезапускаться, что пользователи ощущают как обрывы сеансов. Диски критичны в первую очередь для СУБД: журнал транзакций и файлы данных должны располагаться на быстрых носителях, желательно SSD.
Сеть между сервером 1С и сервером СУБД должна иметь минимальные задержки — идеально размещать их в одном сегменте локальной сети с гигабитным или более быстрым каналом. Размещение СУБД за медленным каналом или через VPN — частая скрытая причина «тормозов», которую ошибочно списывают на саму платформу.
Настройка кластера и распределение нагрузки
Администрирование выполняется через консоль управления кластером (или утилиту rac из командной строки). В консоли задаются свойства рабочих процессов: максимальный объём памяти на процесс, допустимое число соединений, интервал перезапуска. Ограничение памяти на rphost защищает сервер от ситуации, когда один «утекающий» процесс забирает всю RAM и роняет кластер целиком.
Для крупных внедрений кластер масштабируется горизонтально: добавляются дополнительные рабочие серверы, а требования назначения функциональности позволяют выделить, например, отдельный сервер под фоновые задания и отдельный — под интерактивные сеансы. Это изолирует тяжёлые регламентные операции от пользователей.
- 1Установите СУБД и создайте пустую базу данных с нужной кодировкой
- 2Установите компоненты сервера 1С:Предприятия той же версии платформы, что и у клиентов
- 3Запустите агент сервера и откройте консоль кластера
- 4Создайте информационную базу через консоль или конфигуратор, указав сервер СУБД и имя базы
- 5Настройте ограничения памяти и перезапуск рабочих процессов
- 6Проверьте подключение тонким клиентом и выполните тестовое проведение документа
rac cluster list --cluster=localhost:1545Диагностика проблем и типичные ошибки
Основные симптомы неполадок сервера 1С: медленная работа у всех пользователей, обрывы сеансов, ошибки «соединение с сервером разорвано», очереди блокировок. Первичная диагностика начинается с консоли кластера — там видно, какие сеансы активны, какой rphost перегружен, есть ли зависшие фоновые задания. Для глубокого анализа используется технологический журнал: он фиксирует длительные вызовы, запросы к СУБД, взаимоблокировки и ошибки.
На стороне СУБД проверяют активные запросы, ожидания блокировок и заполнение журнала транзакций. Частая картина: пользователи жалуются на «зависшую 1С», а причина — один тяжёлый отчёт, который держит блокировку на регистре, или переполненный лог базы данных из-за отсутствия регламентного обслуживания СУБД.
Проверка результата и мониторинг
После настройки или изменения параметров кластера результат проверяют наблюдаемыми признаками: время открытия типовых форм и проведения документов, отсутствие ошибок в технологическом журнале, стабильное потребление памяти рабочими процессами без постоянных перезапусков. Для постоянного контроля настраивают сбор счётчиков производительности ОС (память, диск, сеть) и периодический анализ технологического журнала на длительные события.
Как проверить здоровье сервера
Потребление стабильно, rphost не перезапускаются по лимиту
Процессы регулярно достигают лимита и перезапускаются, сеансы обрываются
Нет массовых событий DBLOCK, TLOCK, TDEADLOCK и длительных запросов
Регулярные взаимоблокировки и запросы длиной в десятки секунд
Сеансы завершаются корректно, нет «спящих» зависших соединений
Накопление неактивных сеансов и соединений, съедающих память
Часто задаваемые вопросы
Чем сервер 1С отличается от СУБД и зачем нужны оба компонента?
СУБД хранит данные и выполняет SQL-запросы, но ничего не знает о логике конфигурации. Сервер 1С исполняет прикладной код, управляет сеансами и блокировками и преобразует действия пользователей в запросы к СУБД. Один без другого в клиент-серверном режиме не работает.
Можно ли обойтись без сервера 1С?
Да, для небольших баз существует файловый режим, где клиенты работают напрямую с файлом базы. Но он ограничен по числу одновременных пользователей, хуже переносит сетевые сбои и не обеспечивает сопоставимой безопасности. При росте числа пользователей рекомендуется переход на клиент-серверный вариант.
Почему рабочие процессы rphost съедают всю память?
Чаще всего причина — отсутствие лимита памяти в настройках кластера в сочетании с тяжёлыми операциями (большие отчёты, обмены) или утечками в коде конфигурации. Задайте ограничение на процесс и интервал перезапуска, затем анализируйте технологический журнал, чтобы найти операции, вызывающие рост потребления.
Что делать, если пользователи жалуются на взаимоблокировки?
Включите сбор событий TDEADLOCK и TLOCK в технологическом журнале, определите объекты и операции, которые конфликтуют. Обычно проблема в порядке обращения к данным в коде или в слишком длинных транзакциях — это задача для доработки конфигурации, а не для настроек сервера.
Нужно ли перезагружать сервер 1С регулярно?
Регулярная перезагрузка всего сервера не требуется. Достаточно настроить автоматический перезапуск рабочих процессов по достижении лимита памяти или по расписанию в нерабочее время — это освобождает накопленные ресурсы без полной остановки кластера.
Как обновить платформу на сервере без остановки работы?
Полностью без простоя обновление возможно только при нескольких рабочих серверах и продуманной схеме перевода сеансов. В типовом случае обновление планируют на нерабочее время: завершают сеансы, обновляют сервер и клиентов до одной версии платформы, затем при необходимости выполняют обновление конфигурации базы данных.
Что важно запомнить
Сервер 1С — это кластер процессов (ragent, rphost, rmngr), исполняющий код конфигурации и связывающий клиентов с СУБД. Стабильность зависит от лимитов памяти рабочих процессов, быстрой сети до СУБД, регламентного обслуживания базы и грамотного кода конфигурации. Диагностику начинайте с консоли кластера и технологического журнала.