Когда компании пора переходить на клиент-серверную 1С и как устроен сервер
Содержание
Сервер приложений 1С — это служба «Агент сервера 1С:Предприятия 8.3», которая выполняет код конфигурации вместо компьютеров пользователей и работает с базой данных в СУБД (MS SQL Server или PostgreSQL). Он нужен компании, когда в одной базе одновременно сидят больше 8–10 человек, база выросла за десятки гигабайт или пользователи жалуются на «зависания» при проведении документов.
В файловом режиме каждый компьютер сам читает файл 1Cv8.1CD по сети. В клиент-серверном режиме пользователи только отправляют запросы, а всю тяжёлую работу делает отдельная машина. Это другой уровень надёжности, скорости и контроля доступа — и другой уровень требований к администрированию.
Какую роль сервер играет в трёхзвенной схеме 1С
Клиент-серверная 1С состоит из трёх звеньев. У каждого своя задача.
| Звено | Что это | Что делает |
|---|---|---|
| 🖥️ Клиент | Тонкий клиент, веб-клиент, толстый клиент | Показывает формы, отправляет команды пользователя |
| ⚙️ Сервер приложений | Кластер серверов 1С (службы ragent, rmngr, rphost) | Выполняет серверный код, запросы, проведение, регламентные задания |
| 🗄️ СУБД | MS SQL Server, PostgreSQL, IBM Db2, Oracle Database | Хранит таблицы базы, обеспечивает транзакции |
Тонкий клиент вообще не обращается к базе напрямую. Он передаёт серверу «пользователь нажал Провести», сервер читает нужные таблицы из СУБД, выполняет алгоритм и возвращает результат. По сети идут команды и данные форм, а не содержимое таблиц.
Отсюда главное практическое следствие: скорость работы почти не зависит от мощности рабочих мест. Слабый ноутбук бухгалтера проводит закрытие месяца так же быстро, как мощная рабочая станция, — считает сервер.
💡 Сервер приложений и сервер СУБД могут стоять на одной машине. Для компании до 30–50 пользователей это обычная схема. Разносят их по разным машинам, когда упираются в память или диск.
Файловая база или клиент-серверная: чем отличаются на практике
Обе схемы используют одну и ту же платформу и одну и ту же конфигурацию. Бухгалтерия 3.0 в файловом и серверном варианте выглядит одинаково. Разница — в том, где хранятся данные и кто их обрабатывает.
| Критерий | Файловый вариант | Клиент-серверный вариант |
|---|---|---|
| Где данные | Один файл 1Cv8.1CD в сетевой папке | Таблицы в СУБД |
| Кто обрабатывает | Каждый компьютер пользователя | Сервер приложений |
| Комфортное число пользователей | Ориентировочно до 5–10 | Десятки и сотни |
| Блокировки | Таблица целиком | Записи (управляемые блокировки) |
| Резервная копия | Копия файла или выгрузка .dt | Средства СУБД, без остановки работы |
| Лицензии | Только клиентские | Клиентские + лицензия на сервер |
| Администрирование | Почти не нужно | Нужен человек, который понимает сервер и СУБД |
Цифры по пользователям — ориентир, а не предел платформы. Пять человек, которые одновременно проводят реализации и формируют оборотно-сальдовые ведомости, нагрузят файловую базу сильнее, чем пятнадцать, которые в основном смотрят справочники.
Признаки, что файловой базы уже мало
- ⏳ Документы проводятся с ожиданием, а при одновременном проведении у коллег появляется сообщение о блокировке.
- 📦 Файл
1Cv8.1CDперевалил за 20–30 ГБ, тестирование и исправление идёт часами. - 🌐 Нужен удалённый доступ из филиалов, а работа через общую папку по VPN мучительно медленная.
- 🔐 Требуется контроль: кто подключён, с какого компьютера, как выгнать зависший сеанс.
- 💥 Был случай порчи файла базы после обрыва сети или выключения питания.
Когда сервер ставить рано
Если в базе 2–3 человека, нет филиалов и нет человека, который будет администрировать сервер и СУБД, переход часто не окупается. Серверная лицензия стоит денег, а неправильно настроенный кластер работает хуже аккуратной файловой базы на SSD.
Из чего состоит кластер серверов 1С
Слово «кластер» пугает, но даже один сервер в небольшой компании — это кластер из одного рабочего сервера. В нём работают несколько процессов, и знать их по именам полезно: именно они видны в диспетчере задач.
| Процесс | Порт по умолчанию | Назначение |
|---|---|---|
ragent.exe — агент сервера | 1540 | Точка входа: принимает подключения клиентов и консоли, хранит список кластеров |
rmngr.exe — менеджер кластера | 1541 | Распределяет сеансы, ведёт реестр баз, блокировки, регламентные задания |
rphost.exe — рабочие процессы | диапазон 1560–1591 | Выполняют код конфигурации и запросы к СУБД |
ras.exe — сервер администрирования | 1545 | Нужен для утилиты rac и сторонних консолей |
Порядок подключения такой. Клиент обращается к агенту на порт 1540, агент передаёт его менеджеру кластера на 1541, а тот назначает рабочий процесс из диапазона портов. Диапазон задаётся в свойствах рабочего сервера в консоли. Если на брандмауэре открыт только 1540, клиент до базы не дойдёт.
Что лежит в каталоге srvinfo
Служебные данные кластера хранятся в каталоге srvinfo. По умолчанию это C:\Program Files\1cv8\srvinfo, но путь задаётся при установке службы и может быть другим — смотрите параметр -d в командной строке службы.
- 📄
1CV8Clst.lstв папкеreg_1541— реестр кластера: список баз, администраторы, настройки. - 📁 Папки
snccntx…— сеансовые данные и кэш конфигураций. - 📄 Файлы с лицензиями, полученными сервером.
Этот каталог включают в резервное копирование
вместе с базой СУБД. Без 1CV8Clst.lst после сбоя придётся заново регистрировать все базы в кластере.
Чем управляют из консоли
Консоль «Администрирование серверов 1С Предприятия» — оснастка MMC, она ставится вместе с платформой. В дереве консоли вы увидите:
- Центральные серверы — машины, на которых работает агент.
- Кластеры — с параметрами отказоустойчивости и распределения нагрузки.
- Информационные базы — каждая со своими сеансами, соединениями и блокировками.
- Рабочие серверы — с диапазоном портов и лимитами памяти.
- Рабочие процессы — текущие
rphostс их нагрузкой. - Профили безопасности и Администраторы.
Если консоль после обновления платформы пишет, что не может создать объект, перерегистрируйте библиотеку новой версии (от администратора):
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"
Вместо 8.3.xx.xxxx подставьте номер установленной платформы. Версия radmin.dll должна совпадать с версией сервера.
Как настроить сервер 1С, чтобы он работал быстро
Сервер «из коробки» работает, но с настройками по умолчанию. Для 10–20 пользователей их обычно хватает. Дальше нужна точная настройка — и начинают её с оборудования, а не с галочек в консоли.
Железо и СУБД
- 💾 Диск. Базу СУБД и её журнал — только на SSD или NVMe. Медленный диск — самая частая причина тормозов, и никакие настройки кластера это не исправят.
- 🧠 Память. Ориентир для небольшой компании: 16–32 ГБ на машину, где стоят и сервер 1С, и СУБД. Для MS SQL ограничьте максимальную память СУБД, чтобы она не отняла всё у
rphost. - 🔢 Процессор. Для 1С важна частота ядра: один тяжёлый запрос выполняется в одном потоке.
- 🐘 PostgreSQL берите в сборке, адаптированной под 1С (от фирмы 1С или Postgres Pro). Обычная сборка без патчей с некоторыми конфигурациями работает медленнее.
Параметры рабочего сервера
Откройте в консоли Кластер → Рабочие серверы → свойства сервера. Ключевые поля:
| Параметр | Что делает | Практический смысл |
|---|---|---|
| Количество ИБ на процесс | Сколько баз обслуживает один rphost | Значение 1 изолирует базы друг от друга |
| Количество соединений на процесс | Сколько соединений держит один процесс | Платформа запустит ещё процесс, если лимит исчерпан |
| Критический объем памяти процессов | Порог, при котором сервер начинает обрывать вызовы | Защищает машину от ухода в своп |
| Временно допустимый объем памяти процессов | Порог, после которого процесс считают проблемным | Работает вместе с интервалом превышения |
| Безопасный расход памяти за один вызов | Лимит памяти одного серверного вызова | Отсекает «убийственные» отчёты за 5 лет |
| Диапазон IP-портов | Порты рабочих процессов | Должен совпадать с правилами брандмауэра |
💡 Изоляция «одна база — один процесс» помогает, когда на сервере крутятся рабочая и тестовая базы. Тяжёлая обработка в тестовой копии не затормозит бухгалтерию.
Параметры кластера и базы
В свойствах кластера есть флаг принудительного завершения проблемных процессов и интервал перезапуска рабочих процессов. Перезапуск раз в сутки ночью — простой способ бороться с постепенным ростом памяти rphost.
В свойствах информационной базы следите за двумя флагами:
- Блокировка регламентных заданий включена — ставьте на копиях базы. Иначе тестовая копия начнёт сама загружать банковские выписки и обмениваться с ЭДО.
- Блокировка начала сеансов включена — нужна на время обновления конфигурации.
Технологический журнал
Когда непонятно, что именно тормозит, включают технологический журнал. Он настраивается файлом logcfg.xml в каталоге conf платформы, например C:\Program Files\1cv8\conf\logcfg.xml. Минимальная настройка для поиска долгих запросов и взаимоблокировок:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\techlog" history="24">
<event>
<eq property="name" value="TDEADLOCK"/>
</event>
<event>
<eq property="name" value="TTIMEOUT"/>
</event>
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
Журнал пишет много. Указывайте отдельный диск и ограничивайте историю (history — в часах). Включили на время расследования — потом удалите файл или закомментируйте секции.
Безопасность сервера 1С и права доступа
В файловом режиме безопасность держится на правах к сетевой папке: кто может открыть папку, тот может скопировать базу целиком. Сервер приложений меняет картину. Пользователь вообще не видит файлов базы — только то, что разрешают его права в конфигурации.
Четыре уровня защиты
- Учётная запись службы. Установщик создаёт пользователя
USR1CV8, под которым работает агент. Не запускайте службу от доменного администратора: у процесса, выполняющего чужой код, должно быть минимум прав. - Администраторы агента и кластера. По умолчанию их нет, и любой, кто дотянется до порта 1540, может открыть консоль и удалить базу из кластера. Заведите администратора центрального сервера и администратора кластера сразу после установки.
- Пользователи информационной базы. Роли и профили групп доступа в конфигурации. Включите аутентификацию операционной системы — пользователи домена входят без отдельного пароля.
- Профили безопасности. Ограничивают, что код внешних обработок и расширений может делать на сервере: читать диск, запускать программы, обращаться в интернет.
Сеть
- 🔥 Откройте на брандмауэре сервера 1540, 1541 и диапазон рабочих процессов только для подсети офиса.
- 🚫 Не публикуйте эти порты в интернет. Для удалённых сотрудников — VPN, терминальный сервер или веб-публикация через IIS или Apache с HTTPS.
- 🔑 Пароль к СУБД, указанный при регистрации базы в кластере, хранится на сервере. Учётной записи, под которой 1С ходит в СУБД, не давайте прав на другие базы.
Если пароль администратора кластера потерян, не пересоздавайте кластер. Остановите службу агента (в нерабочее время — все сеансы оборвутся), восстановите 1CV8Clst.lst из резервной копии или обратитесь к администратору, который настраивал сервер.
Сбои сервера 1С: симптомы и что делать
Большинство проблем клиент-серверной 1С повторяются из компании в компанию. Ниже — те, с которыми администратор сталкивается в первый же год.
Зависший сеанс пользователя
Пользователь закрыл программу, а сеанс в консоли висит и держит лицензию или блокировку. Удалите его в консоли: Информационные базы → имя базы → Сеансы, правая кнопка мыши — удалить. Пользователь потеряет несохранённые данные, поэтому сначала уточните, не работает ли он в базе.
Из командной строки то же делают утилитой rac. Для неё должен быть запущен ras. Список кластеров:
rac cluster list
Остальные команды и их параметры смотрите в справке rac help для вашей версии платформы — набор ключей меняется от релиза к релизу.
Обновление платформы на сервере
Порядок, который не даёт сюрпризов:
- Включите блокировку начала сеансов на базах и дождитесь выхода пользователей.
- Сделайте резервную копию базы средствами СУБД и скопируйте
srvinfo. - Установите новую платформу. Служба агента новой версии заменит старую.
- Перерегистрируйте
radmin.dllновой версии для консоли. - Обновите клиентов на рабочих местах до той же сборки.
- Снимите блокировку сеансов.
Сколько стоит и что нужно для перехода на сервер
Сервер приложений требует отдельной лицензии. Она бывает для 64-разрядного сервера (базовый вариант для современных систем) и в версии КОРП с расширенными возможностями кластера. Клиентские лицензии нужны так же, как и в файловом режиме. Программные клиентские лицензии можно активировать прямо на сервере — тогда они выдаются всем, кто подключается к кластеру.
Ориентировочный бюджет перехода для компании на 15–20 пользователей:
| Статья | Ориентир |
|---|---|
| Лицензия на сервер 1С (64 бит) | примерно 85–100 тыс. руб. |
| СУБД | PostgreSQL — бесплатно; MS SQL Server — от сотен тысяч рублей в зависимости от редакции и числа ядер |
| Сервер (железо или аренда) | от 150 тыс. руб. за своё или от 5–10 тыс. руб. в месяц за аренду |
| Работы по установке и переносу | ориентировочно 20–60 тыс. руб. разово |
Цены ориентировочные и меняются; точную стоимость уточняйте у партнёра 1С.
Как перенести базу из файлового режима
- Выгрузите файловую базу в
.dt: Конфигуратор,Администрирование → Выгрузить информационную базу. Все пользователи должны выйти. - В консоли сервера создайте новую информационную базу, укажите сервер СУБД, имя базы и учётную запись.
- Откройте новую базу в Конфигураторе и загрузите
.dtчерезАдминистрирование → Загрузить информационную базу. - На рабочих местах добавьте базу в список: вариант «На сервере 1С:Предприятия», кластер — имя сервера, база — имя из консоли.
- Проверьте обмены, регламентные задания и пути к файлам: теперь их выполняет сервер, а не компьютер пользователя.
💡 Последний пункт — частая неожиданность. Если обработка загружает файл из C:\Обмен, в серверном режиме она будет искать этот путь на сервере, а не на компьютере бухгалтера. Используйте сетевые пути, к которым есть доступ у учётной записи службы USR1CV8.
Частые вопросы о сервере приложений 1С
Можно ли поставить сервер 1С на Linux?
Нужен ли сервер приложений для веб-доступа к базе?
Можно ли держать на одном сервере несколько баз разных организаций?
Что будет с базой, если сервер 1С упадёт?
1Cv8.1CD, здесь практически не встречается. После перезапуска службы пользователи подключаются заново.