Когда компании пора переходить на клиент-серверную 1С и как устроен сервер

· 12 мин

Содержание

Сервер приложений 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, она ставится вместе с платформой. В дереве консоли вы увидите:

  1. Центральные серверы — машины, на которых работает агент.
  2. Кластеры — с параметрами отказоустойчивости и распределения нагрузки.
  3. Информационные базы — каждая со своими сеансами, соединениями и блокировками.
  4. Рабочие серверы — с диапазоном портов и лимитами памяти.
  5. Рабочие процессы — текущие rphost с их нагрузкой.
  6. Профили безопасности и Администраторы.

Если консоль после обновления платформы пишет, что не может создать объект, перерегистрируйте библиотеку новой версии (от администратора):

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С и права доступа

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

Четыре уровня защиты

  1. Учётная запись службы. Установщик создаёт пользователя USR1CV8, под которым работает агент. Не запускайте службу от доменного администратора: у процесса, выполняющего чужой код, должно быть минимум прав.
  2. Администраторы агента и кластера. По умолчанию их нет, и любой, кто дотянется до порта 1540, может открыть консоль и удалить базу из кластера. Заведите администратора центрального сервера и администратора кластера сразу после установки.
  3. Пользователи информационной базы. Роли и профили групп доступа в конфигурации. Включите аутентификацию операционной системы — пользователи домена входят без отдельного пароля.
  4. Профили безопасности. Ограничивают, что код внешних обработок и расширений может делать на сервере: читать диск, запускать программы, обращаться в интернет.

Сеть

  • 🔥 Откройте на брандмауэре сервера 1540, 1541 и диапазон рабочих процессов только для подсети офиса.
  • 🚫 Не публикуйте эти порты в интернет. Для удалённых сотрудников — VPN, терминальный сервер или веб-публикация через IIS или Apache с HTTPS.
  • 🔑 Пароль к СУБД, указанный при регистрации базы в кластере, хранится на сервере. Учётной записи, под которой 1С ходит в СУБД, не давайте прав на другие базы.

Если пароль администратора кластера потерян, не пересоздавайте кластер. Остановите службу агента (в нерабочее время — все сеансы оборвутся), восстановите 1CV8Clst.lst из резервной копии или обратитесь к администратору, который настраивал сервер.

Что проверить после установки сервера 1С
Выполнено: 0 / 6

Сбои сервера 1С: симптомы и что делать

Большинство проблем клиент-серверной 1С повторяются из компании в компанию. Ниже — те, с которыми администратор сталкивается в первый же год.

Диагностика: выберите симптом

Зависший сеанс пользователя

Пользователь закрыл программу, а сеанс в консоли висит и держит лицензию или блокировку. Удалите его в консоли: Информационные базы → имя базы → Сеансы, правая кнопка мыши — удалить. Пользователь потеряет несохранённые данные, поэтому сначала уточните, не работает ли он в базе.

Из командной строки то же делают утилитой rac. Для неё должен быть запущен ras. Список кластеров:

rac cluster list

Остальные команды и их параметры смотрите в справке rac help для вашей версии платформы — набор ключей меняется от релиза к релизу.

Обновление платформы на сервере

Порядок, который не даёт сюрпризов:

  1. Включите блокировку начала сеансов на базах и дождитесь выхода пользователей.
  2. Сделайте резервную копию базы средствами СУБД и скопируйте srvinfo.
  3. Установите новую платформу. Служба агента новой версии заменит старую.
  4. Перерегистрируйте radmin.dll новой версии для консоли.
  5. Обновите клиентов на рабочих местах до той же сборки.
  6. Снимите блокировку сеансов.

Сколько стоит и что нужно для перехода на сервер

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

Ориентировочный бюджет перехода для компании на 15–20 пользователей:

СтатьяОриентир
Лицензия на сервер 1С (64 бит)примерно 85–100 тыс. руб.
СУБДPostgreSQL — бесплатно; MS SQL Server — от сотен тысяч рублей в зависимости от редакции и числа ядер
Сервер (железо или аренда)от 150 тыс. руб. за своё или от 5–10 тыс. руб. в месяц за аренду
Работы по установке и переносуориентировочно 20–60 тыс. руб. разово

Цены ориентировочные и меняются; точную стоимость уточняйте у партнёра 1С.

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

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

💡 Последний пункт — частая неожиданность. Если обработка загружает файл из C:\Обмен, в серверном режиме она будет искать этот путь на сервере, а не на компьютере бухгалтера. Используйте сетевые пути, к которым есть доступ у учётной записи службы USR1CV8.

Частые вопросы о сервере приложений 1С

Можно ли поставить сервер 1С на Linux?
Да. Платформа 8.3 выпускается в варианте сервера для Linux, лицензия на сервер подходит для обеих систем. В связке с PostgreSQL это самый недорогой вариант по лицензиям на ПО.
Нужен ли сервер приложений для веб-доступа к базе?
Нет. Опубликовать на веб-сервере можно и файловую базу. Но при работе многих пользователей через браузер файловая база упирается в те же ограничения, что и по сети.
Можно ли держать на одном сервере несколько баз разных организаций?
Да, один кластер обслуживает много баз. Лицензия на сервер одна, клиентские лицензии считаются по сеансам на всех базах вместе.
Что будет с базой, если сервер 1С упадёт?
Данные хранятся в СУБД, и незавершённые транзакции откатятся. Порча базы, как при обрыве связи с файлом 1Cv8.1CD, здесь практически не встречается. После перезапуска службы пользователи подключаются заново.
Ускорит ли сервер одного пользователя, у которого тормозит отчёт?
Не всегда. Сервер выигрывает на параллельной работе многих людей. Один тяжёлый отчёт на файловой базе с быстрым SSD может работать сопоставимо, а иногда и быстрее.