Администрирование · 13 мин
Как работает серверная 1С: архитектура и практика администрирования
Разбираем, как устроена серверная 1С: роли сервера приложений и СУБД, обработка запросов, тонкий клиент, настройка кластера, типичные ошибки и диагностика.
Серверный вариант работы 1С — это трёхуровневая архитектура, в которой обработка данных вынесена с компьютера пользователя на выделенные серверы. Вместо того чтобы каждый клиент напрямую читал файлы базы, запросы проходят через сервер приложений 1С, который обращается к системе управления базами данных (СУБД) и возвращает клиенту только готовый результат. Такой подход позволяет десяткам и сотням пользователей работать с одной информационной базой одновременно без конфликтов и потери производительности.
Понимание этой архитектуры важно не только системным администраторам. Бухгалтер, столкнувшийся с «тормозами» программы, руководитель, выбирающий между файловым и серверным вариантом, и разработчик, оптимизирующий запросы, — все они принимают решения, которые зависят от того, как устроен серверный контур. Ниже разобраны компоненты системы, механика обработки запросов, практика настройки и признаки типичных проблем.
Из чего состоит серверная архитектура 1С
В серверном режиме задействованы три независимых уровня. Первый — клиентское приложение: тонкий клиент, веб-клиент в браузере или толстый клиент. Клиент отвечает только за интерфейс и ввод данных, тяжёлых вычислений на нём почти нет. Второй уровень — кластер серверов 1С:Предприятия, который исполняет код конфигурации, управляет сеансами пользователей, фоновыми заданиями и блокировками. Третий уровень — сервер СУБД, где физически хранятся таблицы информационной базы.
Кластер серверов состоит из одного или нескольких рабочих серверов, на каждом из которых запущены рабочие процессы (rphost), агент сервера (ragent) и менеджер кластера (rmngr). Агент принимает подключения клиентов, менеджер ведёт реестр сеансов и сервисов, а рабочие процессы непосредственно выполняют код. Если рабочих серверов несколько, нагрузка распределяется между ними, а отказ одного узла не останавливает работу всей системы.
Данные между уровнями передаются по собственному протоколу платформы поверх TCP/IP. По умолчанию агент сервера слушает порт 1540, рабочие процессы занимают диапазон 1560–1591, менеджер кластера — 1541. Эти порты должны быть открыты в брандмауэрах между клиентами, сервером 1С и СУБД, иначе подключение завершится ошибкой ещё до начала сеанса.
Как обрабатывается запрос пользователя
Когда пользователь открывает документ или проводит его, клиент отправляет вызов на сервер приложений. Кластер выбирает рабочий процесс, в котором уже закреплён сеанс пользователя, и передаёт ему вызов. Рабочий процесс исполняет серверный код конфигурации: проверяет права, выполняет обработчики, формирует SQL-запросы к СУБД.
СУБД выполняет запросы, управляет транзакциями и блокировками на уровне строк и таблиц. Результаты возвращаются рабочему процессу, тот сериализует данные и отправляет клиенту только то, что нужно для отображения: содержимое формы, а не всю таблицу. Поэтому объём трафика между клиентом и сервером относительно невелик, а основная нагрузка ложится на канал между сервером 1С и сервером СУБД — их рекомендуется размещать в одном сегменте сети с минимальными задержками.
Важный нюанс — сеансовые данные и кэш. Рабочий процесс хранит в памяти контекст сеанса, поэтому разрыв соединения с конкретным rphost при штатной настройке кластера не всегда фатален: сеанс может быть восстановлен другим процессом. Но если сеанс выполнял незавершённую транзакцию, она откатывается, и пользователю придётся повторить действие.
Файловый и серверный режимы: что выбрать
Файловый вариант подходит небольшим компаниям с несколькими пользователями и умеренными объёмами данных. Он не требует отдельного сервера и лицензий на СУБД, но имеет жёсткие ограничения: при одновременной работе пользователей растут задержки, повышается риск повреждения файла базы при сбое сети или питания, а часть механизмов платформы (например, полноценное управление блокировками) работает в упрощённом режиме.
Серверный вариант оправдан, когда пользователей больше десятка, база активно растёт, требуются регламентные задания по расписанию, разграничение прав на уровне СУБД и надёжное резервное копирование штатными средствами СУБД. Цена перехода — необходимость администрирования двух систем: кластера 1С и выбранной СУБД.
Сравнение вариантов
Подходит для 1–5 пользователей и небольших баз. Ограничения: чувствительность к сбоям сети, рост задержек при конкурентной работе, ограниченные механизмы блокировок.
Подходит для десятков и сотен пользователей, больших баз и регламентных заданий. Требует администрирования СУБД, лицензий и резервного копирования средствами СУБД.
Подходит, если нет ресурсов на собственную инфраструктуру. Ограничение: зависимость от провайдера, ограниченный доступ к настройкам сервера и СУБД.
Настройка кластера: что реально влияет на работу
После установки сервера 1С кластер создаётся автоматически с параметрами по умолчанию, и для небольших внедрений их часто достаточно. Но при росте нагрузки стоит обратить внимание на несколько настроек. Количество рабочих процессов на сервер определяет, сколько сеансов обслуживается параллельно: один процесс обычно обслуживает несколько десятков сеансов, и при большом числе пользователей процессы добавляют, чтобы снизить влияние падения одного процесса на остальных.
Полезные механизмы — перезапуск рабочих процессов по расписанию и ограничение объёма памяти процесса. Рабочие процессы со временем накапливают фрагментированную память, и регламентный перезапуск (например, раз в сутки в нерабочее время) помогает удерживать стабильное потребление ОЗУ. Ограничение памяти защищает сервер от ситуации, когда один «тяжёлый» запрос отбирает все ресурсы.
Отдельная тема — требования к назначению функциональности. С их помощью фоновые задания и сервисы можно закрепить за конкретным сервером кластера, чтобы регламентные операции не конкурировали с интерактивной работой пользователей. В консоли кластера это настраивается через объект «Требования назначения функциональности» для информационной базы.
- 1Установите и настройте СУБД, создайте пустую базу данных с нужной collation и выделите учётную запись для доступа.
- 2Установите сервер 1С:Предприятия той же версии платформы, что используется у клиентов.
- 3Через консоль кластера или оснастку создайте информационную базу, указав тип СУБД, имя базы и учётные данные.
- 4Откройте порты 1540, 1541 и диапазон 1560–1591 в брандмауэрах между клиентами, сервером 1С и СУБД.
- 5Подключитесь клиентом, загрузите конфигурацию и проверьте создание сеанса в консоли кластера.
- 6Настройте резервное копирование штатными средствами СУБД и проверьте восстановление на тестовой копии.
Производительность: где искать узкие места
Когда пользователи жалуются на медленную работу, причина почти всегда находится на одном из трёх уровней: клиент и сеть, сервер приложений или СУБД. Первый шаг диагностики — посмотреть загрузку ресурсов на серверах. Если процессор и диски сервера СУБД загружены под высокий процент, а сервер 1С простаивает, проблема в запросах или индексах. Если наоборот — в коде конфигурации, который выполняется в рабочих процессах.
Платформа предоставляет штатные инструменты: технологический журнал фиксирует длительные вызовы и запросы, счётчики производительности ОС показывают потребление памяти процессами rphost, а консоль кластера отображает активные сеансы и соединения. На стороне СУБД используются собственные средства мониторинга — планы запросов, статистика ожиданий, анализ индексов.
Типичные причины деградации: отсутствие индексов под частые запросы, неактуальная статистика в СУБД, избыточные запросы в циклах кода конфигурации, конкуренция за блокировки при массовом проведении документов и нехватка оперативной памяти, из-за которой СУБД вытесняет данные из кэша на диск. Каждая из них диагностируется своим методом, и «лечить» их добавлением мощности железа без анализа — плохая стратегия.
Как проверить результат оптимизации
Время стабильно и не растёт в часы пиковой нагрузки
Отклик резко увеличивается при росте числа одновременных пользователей
Потребление стабильно, перезапуски происходят по расписанию
Память растёт непрерывно до исчерпания ОЗУ
Ожидания в пределах нормы для профиля нагрузки
Высокие ожидания блокировок и дисковых операций
Отказоустойчивость и резервное копирование
Кластер серверов 1С поддерживает резервирование: при выходе из строя одного рабочего сервера сеансы переносятся на оставшиеся. Для этого в кластере должно быть минимум два рабочих сервера, а реестр кластера нужно защитить от потери. На уровне СУБД отказоустойчивость обеспечивается собственными механизмами — кластеризацией, репликацией, группами доступности.
Резервное копирование в серверном режиме выполняется средствами СУБД, а не выгрузкой в dt как единственным способом. Выгрузка в dt остаётся полезной для переноса базы между платформами и версиями, но как основной механизм бэкапа она проигрывает: дольше выполняется, требует монопольного доступа и не даёт восстановления на произвольный момент времени. Полноправная стратегия — полные копии плюс копии журналов транзакций с проверкой восстановления.
Типичные ошибки администрирования
Значительная часть проблем серверной 1С вызвана не дефектами платформы, а ошибками эксплуатации. Их знание экономит часы диагностики и предотвращает потери данных.
Ещё одна группа ошибок связана с обновлениями. Обновление платформы на сервере без обновления клиентов приводит к невозможности подключения, а обновление конфигурации без тестирования на копии — к неожиданным ошибкам реструктуризации на большой базе. Безопасный порядок: копия базы, тестовое обновление, проверка ключевых операций, затем обновление продуктива в согласованное окно обслуживания.
Как выбрать действие при проблемах
FAQ: частые вопросы о серверной 1С
Какую СУБД выбрать для серверной 1С?
Платформа поддерживает MS SQL Server, PostgreSQL (включая адаптированные сборки), Oracle Database и IBM DB2. На практике чаще всего выбирают MS SQL Server или PostgreSQL: первый удобен в инфраструктуре Windows, второй снижает затраты на лицензии. Выбор зависит от компетенций администраторов и существующей инфраструктуры — производительность при грамотной настройке сопоставима.
Можно ли перенести базу из файлового режима в серверный?
Да, это штатная операция. База выгружается из файлового режима в файл dt через конфигуратор, затем создаётся пустая серверная информационная база, и в неё загружается выгрузка. Перед переносом базу стоит протестировать и исправить, а после загрузки — проверить права пользователей и работу регламентных заданий.
Сколько памяти нужно серверу 1С и серверу СУБД?
Универсальной цифры нет: потребность зависит от числа активных сеансов, объёма базы и характера нагрузки. Общий принцип — серверу СУБД выделяют столько памяти, сколько позволяет система, ограничивая её максимум в настройках СУБД, чтобы оставить ресурс ОС. Серверу 1С память нужна под рабочие процессы; её потребление контролируют мониторингом и при необходимости ограничивают настройками кластера.
Что делать, если рабочий процесс rphost «съедает» всю память?
Сначала настройте ограничение объёма памяти на рабочий процесс и перезапуск процессов по расписанию — это быстрый защитный контур. Затем включите технологический журнал и найдите операции, которые приводят к росту потребления: чаще всего это обработки, загружающие большие объёмы данных в память целиком, или неоптимальные запросы. Устранять нужно причину, а не только симптом.
Нужен ли отдельный сервер под СУБД или можно всё поставить на одну машину?
Для небольших внедрений размещение сервера 1С и СУБД на одной физической машине допустимо и даже снижает сетевые задержки. При росте нагрузки уровни разносят, чтобы изолировать конкуренцию за ресурсы и масштабировать их независимо. В любом случае важно ограничить память СУБД, чтобы она не вытесняла рабочие процессы 1С.
Как понять, что пора переходить с файлового режима на серверный?
Признаки: одновременно работают больше 5–10 пользователей и растут задержки; появляются ошибки блокировок и конфликты при совместной работе; база достигла размера, при котором обслуживание в файловом режиме занимает часы; требуются регламентные задания и надёжное резервное копирование без остановки работы. Любой из этих признаков — повод запланировать миграцию.
Что важно запомнить
Серверная 1С — это связка «клиент → кластер серверов 1С → СУБД», где бизнес-логика выполняется на сервере приложений, а данные хранятся в СУБД. Стабильность обеспечивают настройка кластера, регламентное обслуживание СУБД, резервное копирование средствами СУБД с проверкой восстановления и диагностика через технологический журнал, а не угадывание причин.