К статье
Практический материал

Администрирование · 10 мин

Что такое SQL-версия 1С и как она работает

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

SQL-версия 1С — это вариант работы платформы «1С:Предприятие», при котором данные информационной базы хранятся не в файле на диске, а в реляционной базе данных под управлением СУБД: Microsoft SQL Server, PostgreSQL, IBM Db2 или Oracle Database. Сама логика конфигурации — документы, справочники, отчёты — остаётся той же, меняется только способ хранения и обработки данных. Платформа формирует SQL-запросы, передаёт их серверу СУБД и получает результат, который отображает пользователю.

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

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

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

В SQL-режиме работают три уровня. Первый — клиентское приложение (тонкий клиент, толстый клиент или веб-клиент), с которым работает пользователь. Второй — сервер «1С:Предприятия», который выполняет код конфигурации, управляет сеансами и формирует запросы к данным. Третий — сервер СУБД, где физически хранятся таблицы с данными.

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

Важно понимать: «SQL-версия» — это не отдельная конфигурация и не другая редакция программы. Одна и та же конфигурация (например, «1С:Бухгалтерия» или «1С:ERP») может работать и в файловом, и в клиент-серверном режиме. Разница только в инфраструктуре и в наличии серверных лицензий.

Чем SQL-версия отличается от файловой на практике

Файловый режим хранит всю базу в одном файле, и платформа сама управляет доступом к нему. При одновременной работе пользователей блокировки накладываются на большие участки данных, что приводит к ошибкам «Конфликт блокировок» и падению скорости. Клиент-серверный режим передаёт управление блокировками СУБД, которая умеет блокировать отдельные строки и обслуживать сотни одновременных соединений.

КритерийФайловый режимSQL (клиент-серверный)
Число пользователейДо ~10 комфортноДесятки и сотни
Объём базыОграничения на размер таблицПрактически не ограничен
ОтказоустойчивостьРиск повреждения файла при сбоеТранзакции, журналы, резервирование СУБД
Фоновые заданияОграниченноПолноценно на сервере
Стоимость владенияМинимальнаяСервер, лицензии, администратор

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

Сравнение вариантов

Файловый режим

Подходит для небольшой компании до 5–10 пользователей; ограничение — рост базы и конфликты блокировок при интенсивной работе.

SQL на MS SQL Server

Подходит для средних и крупных внедрений на Windows; ограничение — стоимость лицензий СУБД.

SQL на PostgreSQL

Подходит для снижения стоимости лицензий, есть сборки, адаптированные под 1С; ограничение — требуется опыт администрирования PostgreSQL.

Когда переход на SQL-версию действительно нужен

Однозначных порогов не существует, но есть характерные признаки, что файловый режим исчерпал себя. Первый — регулярные ошибки конфликта блокировок при одновременном проведении документов. Второй — заметное замедление отчётов и проведения при росте базы. Третий — необходимость работы более чем 10–15 пользователей одновременно. Четвёртый — требования к бесперебойности: регламентные задания, интеграции, обмены должны работать круглосуточно.

Маршрут решения

Как выбрать действие

Менее 5 пользователей, база небольшая, жалоб на скорость нетОставайтесь в файловом режиме — переход не окупится
5–15 пользователей, периодические конфликты блокировокСначала оптимизируйте работу (регламентные операции, индексы), планируйте переход
Более 15 пользователей или критична бесперебойная работаПереходите на клиент-серверный режим с выделенным сервером
База повреждается при сбоях питания или сетиПереходите на SQL — транзакционная модель СУБД устойчивее к сбоям

Обратная ситуация тоже встречается: небольшая компания переходит на SQL «для надёжности», но не имеет администратора, и в итоге база остаётся без резервных копий и обслуживания СУБД. Если нет ресурсов на сопровождение сервера, файловый режим с регулярным копированием может быть безопаснее.

Выбор СУБД: MS SQL Server, PostgreSQL и другие

Платформа 1С официально поддерживает несколько СУБД. Наиболее распространённая связка — Microsoft SQL Server: для него есть подробная документация, множество специалистов и предсказуемое поведение под нагрузкой. Минус — стоимость лицензий, которые приобретаются на сервер или на ядра.

PostgreSQL — популярная альтернатива с бесплатной лицензией. Для работы с 1С используются специальные сборки, адаптированные под требования платформы. Это заметно снижает стоимость внедрения, но требует администратора, знакомого именно с PostgreSQL: настройки памяти, автовакуума и планировщика сильно влияют на производительность.

IBM Db2 и Oracle Database применяются реже, в основном в крупных организациях, где эти СУБД уже используются в корпоративной инфраструктуре. Выбор между ними обычно продиктован не 1С, а существующим парком систем.

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

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

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

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

Администрирование и типичные ошибки

SQL-версия требует регулярного обслуживания СУБД: обновления статистики, перестроения индексов, контроля размера журнала транзакций и мониторинга свободного места. Без этого производительность постепенно деградирует, даже если сервер мощный. Для MS SQL Server обычно настраивают план обслуживания, для PostgreSQL — следят за автовакуумом.

Резервное копирование в SQL-режиме делается штатными средствами СУБД, а не копированием файлов. Выгрузка .dt остаётся полезной как дополнительный формат переноса, но как единственный способ бэкапа она медленная и не подходит для больших баз.

Типичные ошибки
01
Размещение СУБД и сервера 1С на перегруженной машине вместе с другими сервисами — нехватка памяти и дисковых ресурсов убивает производительность
02
Отсутствие плана обслуживания СУБД — со временем растут фрагментация индексов и размер журнала транзакций, база замедляется
03
Прямая правка данных запросами SQL в обход платформы — нарушение целостности данных и отказ в поддержке
04
Переход на SQL без тестирования обменов и внешних компонентов — часть интеграций может работать иначе в клиент-серверном режиме
05
Использование .dt как единственного бэкапа вместо штатных средств СУБД
Контрольные точки

Как проверить результат

Скорость проведения документов
Норма

Проведение типового документа занимает секунды, без ошибок блокировок

Тревожный признак

Регулярные конфликты блокировок или ожидание на десятки секунд

Резервное копирование
Норма

Копии создаются по расписанию средствами СУБД, тестовое восстановление проходит успешно

Тревожный признак

Копий нет или восстановление из них никогда не проверялось

Место на дисках СУБД
Норма

Запас свободного места, журнал транзакций контролируется

Тревожный признак

Диск заполнен почти полностью, журнал растёт бесконтрольно

Часто задаваемые вопросы

Можно ли работать в SQL-режиме без покупки лицензии на MS SQL Server?

Да. Альтернатива — PostgreSQL со специальными сборками, адаптированными под 1С, которые распространяются бесплатно. При этом серверная лицензия 1С всё равно необходима независимо от выбранной СУБД.

Изменится ли конфигурация при переходе на SQL-версию?

Нет, конфигурация остаётся той же — переносится вся логика, данные и настройки. Меняется только способ хранения. Исключение — решения с жёсткой привязкой к файловому режиму, которые встречаются редко и выявляются на тестировании.

Можно ли вернуться с SQL обратно в файловый режим?

Да, через выгрузку базы в .dt из конфигуратора и загрузку в новую файловую базу. Ограничение — объём: очень большие базы могут не поместиться в ограничения файлового формата, поэтому возврат возможен не всегда.

Нужно ли ставить СУБД и сервер 1С на разные машины?

Для небольшой нагрузки допустимо размещение на одном сервере, если ресурсов достаточно. При росте числа пользователей рекомендуется разносить их: сервер СУБД чувствителен к дисковой подсистеме, а сервер 1С — к процессору и памяти.

Что делать, если в SQL-режиме база работает медленнее, чем в файловом?

Чаще всего причины — недостаток памяти под СУБД, отсутствие обслуживания индексов и статистики, либо размещение базы на медленных дисках. Проверьте настройки СУБД, план обслуживания и загрузку сервера; при необходимости привлеките специалиста по производительности 1С.

Итог

Что важно запомнить

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