Клиент-серверная 1С на SQL: когда переходить с файловой базы и что для этого нужно

· 11 мин

Содержание

«SQL версия 1С» — это разговорное название клиент-серверного варианта 1С:Предприятия 8.3. Данные лежат не в одном файле 1Cv8.1CD, а в базе СУБД (PostgreSQL или Microsoft SQL Server), а между пользователями и СУБД работает кластер серверов 1С. Отдельной «SQL-редакции» 1С не существует: та же платформа, та же конфигурация (Бухгалтерия, ЗУП, УТ), меняется только способ хранения и обработки данных.

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

Как устроены файловая и клиент-серверная 1С

Файловый вариант

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

Строка подключения выглядит так: File="D:\Bases\Buh";

Клиент-серверный вариант (SQL версия)

Здесь цепочка длиннее:

  1. 🖥️ Клиент 1С у пользователя не трогает данные напрямую. Он отправляет запросы серверу 1С.
  2. ⚙️ Агент сервера (ragent, порт 1540) принимает подключение и передаёт его менеджеру кластера (rmngr, порт 1541).
  3. 🔧 Рабочие процессы (rphost) выполняют код конфигурации. Диапазон их портов (по умолчанию 1560:1591) задаётся в свойствах рабочего сервера.
  4. 🗄️ СУБД хранит таблицы. С ней общаются только рабочие процессы 1С, а не пользователи.

Строка подключения: Srvr="srv-1c";Ref="buh"; — имя сервера 1С и имя базы в кластере.

Сервер 1С и СУБД можно поставить на одну машину. Для небольшой фирмы на 10–30 пользователей так обычно и делают: меньше сетевых задержек и одна точка обслуживания.

Чем SQL версия 1С отличается от файловой

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

ПараметрФайловая базаSQL версия (клиент-сервер)
Где хранятся данныеФайл 1Cv8.1CDБаза PostgreSQL или MS SQL
Кто обрабатывает запросыКомпьютер пользователяРабочие процессы сервера 1С
БлокировкиЦеликом на таблицуНа уровне записей (управляемые блокировки)
Рост числа пользователейОриентир — до 5–10 одновременныхДесятки и сотни
Резервное копированиеКопия файла или выгрузка .dtСредствами СУБД, без остановки работы
ЛицензииТолько клиентскиеКлиентские + лицензия на сервер 1С (+ MS SQL, если выбран он)
ОбслуживаниеПочти не нужноНужен администратор
Стоимость стартаНоль сверх клиентских лицензийОриентировочно от 100 тыс. руб.

Что это даёт на практике

  • 🔒 Меньше ожиданий на блокировках. Бухгалтер проводит реализацию, кладовщик в это же время оформляет поступление — в файловой базе один ждёт другого, в серверной они чаще всего работают параллельно.
  • 📈 Стабильная скорость на большой базе. Файловая база в десятки гигабайт работает заметно медленнее. Для СУБД это обычный объём.
  • 🛡️ Надёжность. Сбой сети или зависший компьютер пользователя в файловом режиме может повредить 1Cv8.1CD. В серверном варианте СУБД ведёт журнал транзакций и откатывает незавершённое.
  • 🔁 Фоновые и регламентные задания. В клиент-серверной базе они выполняются на сервере по расписанию сами. В файловой — только пока кто-то из пользователей открыл базу.

Минусы клиент-серверного варианта

  • 💰 Нужно купить лицензию на сервер 1С. Цена зависит от редакции (ПРОФ или КОРП), ориентировочно ПРОФ — порядка 100 тыс. руб., КОРП — в несколько раз дороже.
  • 👨‍💻 Нужен человек, который настроит сервер, обновления платформы, резервные копии и обслуживание СУБД.
  • ⚡ На маленькой базе с 2–3 пользователями файловый режим бывает даже быстрее: в нём нет сетевого обмена между клиентом, сервером 1С и СУБД.

Когда пора переходить с файловой базы на SQL

Явных признаков несколько:

  1. Одновременно работают больше 5–10 человек, и ошибки вида Конфликт блокировок при выполнении транзакции появляются каждый день.
  2. Закрытие месяца или проведение документов задним числом занимает часы.
  3. База выросла до десятков гигабайт, а открытие списков документов тормозит у всех.
  4. Нужны регламентные задания без постоянно открытого сеанса: обмены, загрузка курсов, выгрузка в ЭДО по расписанию.
  5. Пользователи подключаются удалённо, и файловая база через VPN работает недопустимо медленно.

Если базу открывают 1–3 человека, а объём небольшой, переход ничего не даст, кроме расходов.

Нужна ли вам клиент-серверная 1С?

PostgreSQL или MS SQL Server для 1С

1С 8.3 работает с четырьмя СУБД: Microsoft SQL Server, PostgreSQL, IBM Db2 и Oracle Database. На практике в малом и среднем бизнесе выбирают из первых двух.

КритерийPostgreSQLMicrosoft SQL Server
ЛицензияБесплатноПлатная (кроме Express)
СборкаНужна сборка с патчами для 1С (от 1С или Postgres Professional)Обычная установка
ОС сервераWindows и LinuxВ основном Windows
Порог входа для администратораВыше: настройка через конфигурационные файлыНиже: графический Management Studio
Скорость на типовых задачахСопоставима при грамотной настройкеСопоставима, «из коробки» настроек меньше

Когда выбирать PostgreSQL

  • Не хотите платить за СУБД и планируете обходиться без зарубежного ПО.
  • Сервер будет на Linux.
  • Есть администратор, готовый настроить параметры памяти и обслуживание.

Обычный PostgreSQL из репозитория дистрибутива для 1С не подходит. Нужна сборка с патчами для 1С: в ней есть расширения (например, тип mchar), без которых база не создастся.

Когда выбирать MS SQL Server

  • Уже есть лицензии Microsoft и администратор Windows.
  • Нужен простой графический инструмент для копий и обслуживания.

Бесплатная редакция Express технически работает с 1С, но ограничивает размер одной базы 10 ГБ и использует малую часть памяти и ядер. Для старта и тестов подходит, для рабочей базы, которая растёт, — нет.

Требования к серверу и порядок установки 1С на SQL

Что нужно купить и подготовить

  • 🔑 Лицензия на сервер 1С:Предприятия 8.3 (ПРОФ или КОРП, x86-64). Клиентские лицензии на пользователей нужны так же, как и в файловом режиме.
  • 🗄️ СУБД: PostgreSQL в сборке для 1С или MS SQL Server с лицензией.
  • 🖥️ Сервер. Ориентир для 10–20 пользователей Бухгалтерии или УТ: 4–8 ядер, 16–32 ГБ памяти, SSD под базы. Для одной небольшой базы хватит и меньшего, но экономить на диске не стоит — СУБД чувствительна к его скорости.
  • 🌐 Сеть: открытые порты 1540, 1541 и диапазон рабочих процессов между клиентами и сервером 1С.

Порядок установки

  1. Установите СУБД. Для PostgreSQL задайте пароль роли postgres или создайте отдельную роль для 1С. Для MS SQL создайте логин с правами на создание баз.
  2. Запустите установщик платформы 1С на сервере и отметьте компонент Сервер 1С:Предприятия 8. Установите его как службу Windows — он будет работать без входа пользователя.
  3. Активируйте лицензию на сервер.
  4. Установите компонент Администрирование сервера 1С:Предприятия и откройте консоль кластера. Если консоль не открывается, зарегистрируйте radmin.dll из папки bin нужной версии платформы через regsvr32.
  5. Создайте информационную базу: в окне запуска 1С нажмите Добавить → Создание новой информационной базы и выберите размещение На сервере 1С:Предприятия. Укажите кластер, имя базы, тип СУБД, сервер СУБД, имя базы данных и пользователя. Отметьте флажок создания базы данных, если её ещё нет.
  6. Если переносите существующую файловую базу — выгрузите её в .dt (Конфигуратор → Администрирование → Выгрузить информационную базу), а в новой серверной базе загрузите этот файл командой Загрузить информационную базу. Загрузка требует монопольного доступа, пользователей в новой базе быть не должно.

Версия платформы на клиентах должна совпадать с версией сервера 1С с точностью до номера сборки. Обновили сервер — обновляйте и клиентов, иначе подключиться не получится.

Пример: база PostgreSQL для 1С вручную и через rac

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

Создание роли и базы в PostgreSQL

-- роль, от имени которой сервер 1С будет подключаться к СУБД
CREATE ROLE usr1c WITH LOGIN SUPERUSER PASSWORD 'СложныйПароль';

-- база в кодировке UTF8 с русской локалью
CREATE DATABASE buh
    WITH OWNER = usr1c
    ENCODING = 'UTF8'
    LC_COLLATE = 'ru_RU.UTF-8'
    LC_CTYPE = 'ru_RU.UTF-8'
    TEMPLATE = template0;

Права суперпользователя роли дают потому, что при первом подключении 1С создаёт в базе свои расширения. На Windows имя локали может называться иначе (например, Russian_Russia.1251 в старых установках) — смотрите список доступных локалей в своей системе.

После этого в окне создания информационной базы укажите buh как имя базы данных и не ставьте флажок «создать базу данных ».

Создание информационной базы командой rac

Если на сервере запущен сервер администрирования ras (по умолчанию порт 1545), базу можно завести из командной строки:

rem список кластеров — нужен идентификатор
rac cluster list

rem создание информационной базы с созданием БД в PostgreSQL
rac infobase --cluster=<UUID_кластера> create --create-database ^
  --name=buh --dbms=PostgreSQL --db-server=localhost ^
  --db-name=buh --locale=ru --db-user=usr1c --db-pwd=СложныйПароль

Полный список параметров для вашей версии платформы покажет rac help infobase.

Скорость SQL версии 1С: что настроить

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

PostgreSQL

  • shared_buffers — ориентир 25% оперативной памяти сервера.
  • effective_cache_size — 50–75% памяти: подсказка планировщику, сколько данных закешировано системой.
  • work_mem — память на сортировки в одном запросе; слишком большое значение при многих сеансах приведёт к нехватке памяти.
  • Регулярный VACUUM ANALYZE (автовакуум должен быть включён) — иначе таблицы распухают, а статистика устаревает.

MS SQL Server

  • Max server memory — ограничьте, оставив память системе и серверу 1С, если они на одной машине. Без ограничения SQL Server займёт всё.
  • Max degree of parallelism = 1 — общепринятая настройка для баз 1С: параллельные планы на коротких запросах 1С чаще мешают.
  • План обслуживания: обновление статистики ежедневно, перестроение индексов раз в неделю в нерабочее время.

На стороне 1С

  • 🧩 Переведите конфигурацию в управляемый режим блокировок, если она ещё в автоматическом. Все актуальные типовые уже работают в управляемом.
  • 🔍 Медленные операции ищите технологическим журналом или замером производительности, а не наугад.
  • 🧹 Не держите тысячи записей в регистрах сведений, которые давно не нужны, и регулярно сворачивайте неактуальные данные по регламенту фирмы.

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

Резервные копии SQL базы 1С

Главный плюс клиент-серверного режима здесь — копию можно снимать, не выгоняя пользователей.

Способы

СпособКогда использоватьЧто учесть
Средства СУБД (pg_dump, BACKUP DATABASE)Ежедневные копии рабочей базыНе останавливает работу, быстро
Журнал транзакций MS SQL (модель Full)Нужна точка восстановления «на 15 минут назад»Журнал надо регулярно копировать, иначе он растёт без конца
Выгрузка .dt из КонфигуратораПеренос базы, переход между СУБДНужен монопольный доступ, на большой базе долго

Копия и восстановление в PostgreSQL

rem копия в сжатом формате
pg_dump -U postgres -Fc -f D:\Backup\buh.backup buh

rem восстановление в новую пустую базу
pg_restore -U postgres -d buh_test D:\Backup\buh.backup

Восстанавливайте копию в отдельную базу, а не поверх рабочей. Так вы проверите, что копия живая, и не потеряете текущие данные, если в файле что-то не так. Затем подключите восстановленную базу к кластеру 1С как новую информационную базу.

Раз в месяц проверяйте копию разворачиванием на тестовом сервере. Копия, которую ни разу не восстанавливали, — это надежда, а не копия.

Перед восстановлением поверх рабочей базы

Иногда без этого не обойтись. Тогда порядок такой: заблокируйте вход новых сеансов в консоли кластера, предупредите пользователей, завершите их сеансы — несохранённая работа будет потеряна. Только после этого восстанавливайте базу и снимайте блокировку.

Частые ошибки при переходе на SQL версию

  • ❌ Ставят обычный PostgreSQL. База не создаётся с ошибкой о недостающих типах или расширениях. Нужна сборка для 1С.
  • ❌ Разные версии платформы на сервере и клиентах. Пользователи получают сообщение о несоответствии версий. Решение — одна версия везде.
  • ❌ Закрытые порты. Консоль кластера открывается на сервере, а с рабочих мест подключиться нельзя: файрвол пропустил 1540–1541, но не диапазон рабочих процессов.
  • ❌ Не ограничили память MS SQL. Через сутки работы сервер 1С начинает падать от нехватки памяти — SQL Server забрал её всю.
  • ❌ Делают копии только через .dt. На базе в 50 ГБ выгрузка занимает часы и требует выгнать всех. Ежедневные копии — средствами СУБД.

Частые вопросы о SQL версии 1С

Можно ли поставить только SQL Server без сервера 1С?
Нет. Клиент 1С 8.3 не подключается к СУБД напрямую. Нужен кластер серверов 1С и лицензия на него.
Нужно ли менять конфигурацию при переходе на SQL?
Нет. Бухгалтерия, ЗУП и другие типовые работают в обоих режимах. Базу переносят выгрузкой и загрузкой .dt.
Можно ли вернуться с SQL версии на файловую?
Да. Выгрузите серверную базу в .dt и загрузите в новую файловую. Данные и настройки сохранятся.
Работают ли веб-клиент и мобильный доступ с SQL базой?
Да. Публикация на веб-сервере (IIS или Apache) работает и с файловой, и с клиент-серверной базой.
Сколько баз можно держать на одном сервере 1С?
Лицензия на сервер не ограничивает число информационных баз в кластере. Предел задают ресурсы машины.