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

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

1С SQL: что это такое и как работает связка 1С с SQL-сервером

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

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

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

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

Что скрывается за термином «1С SQL»

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

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

Какие СУБД поддерживает платформа 1С

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

СУБДЛицензияТипичный сценарий
Microsoft SQL ServerКоммерческая (есть бесплатный Express с ограничениями)Инфраструктура на Windows, есть администратор MS SQL
PostgreSQL (включая сборки Postgres Pro)Свободная / коммерческие сборкиСнижение стоимости лицензий, Linux-инфраструктура
Oracle DatabaseКоммерческаяКрупные предприятия с существующим Oracle-ландшафтом
IBM Db2КоммерческаяОрганизации, где уже развёрнут Db2

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

Чем клиент-серверный режим отличается от файлового

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

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

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

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

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

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

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

1С:Fresh / облачный сервис

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

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

Переход на клиент-серверный режим — это затраты на лицензии, оборудование и администрирование, поэтому решение стоит принимать по объективным признакам, а не «на вырост».

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

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

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

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

Как разворачивается связка 1С и SQL-сервера

Типовое развёртывание включает установку СУБД, установку сервера 1С:Предприятия и создание информационной базы через консоль кластера или конфигуратор. Компоненты могут стоять на одном физическом сервере (для небольших нагрузок) или быть разнесены на разные машины.

Порядок действий
  1. 1
    Установите поддерживаемую версию СУБД и настройте её согласно рекомендациям для 1С (параметры памяти, collation, кодировка)
  2. 2
    Установите сервер 1С:Предприятия той же разрядности и версии платформы, что используется у клиентов
  3. 3
    Создайте информационную базу через консоль администрирования сервера 1С, указав тип СУБД, имя сервера баз данных и имя базы
  4. 4
    Загрузите данные из файловой базы через выгрузку/загрузку .dt или выполните миграцию
  5. 5
    Проверьте работу пользователей, настройте регламентные задания и резервное копирование средствами СУБД

Ключевой момент — параметры СУБД. Для MS SQL критичны модель восстановления базы, настройки tempdb и максимальный объём памяти сервера; для PostgreSQL — корректная сборка и параметры shared_buffers, work_mem. Значения по умолчанию рассчитаны на универсальные нагрузки и для 1С почти всегда требуют корректировки.

Резервное копирование и обслуживание SQL-базы 1С

В SQL-режиме резервное копирование выполняется штатными средствами СУБД: полные и разностные копии, копии журнала транзакций. Это надёжнее и быстрее, чем копирование файла 1Cv8.1CD, и позволяет восстановить базу на произвольный момент времени.

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

Контрольные точки

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

Наличие свежих резервных копий
Норма

Полная копия создаётся по расписанию, тестовое восстановление выполняется успешно

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

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

Размер журнала транзакций (MS SQL)
Норма

Журнал контролируемого размера, модель восстановления соответствует плану копирования

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

Журнал растёт бесконтрольно и занимает весь диск

Скорость типовых операций
Норма

Проведение документов и отчёты выполняются за приемлемое время без роста

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

Время операций неуклонно растёт — вероятны проблемы со статистикой и индексами

Типичные ошибки и ограничения

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

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

Перед миграцией на SQL сделайте замеры времени ключевых операций в файловом режиме и повторите их после перехода на тестовом стенде. Так вы получите объективное подтверждение эффекта и сможете отловить проблемы настроек СУБД до запуска в работу.
ПЗ
Практическое замечание

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

Можно ли подключиться к базе 1С напрямую через SQL для отчётов?

Технически чтение данных напрямую из таблиц СУБД возможно, и так иногда делают для внешней аналитики. Однако структура таблиц не документирована как публичный интерфейс и может меняться при обновлении конфигурации. Безопаснее использовать штатные механизмы: OData, HTTP-сервисы, COM-соединение или выгрузку в отдельную аналитическую базу.

Что лучше для 1С: MS SQL или PostgreSQL?

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

Можно ли перевести файловую базу в SQL без потери данных?

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

Нужно ли знать SQL, чтобы администрировать 1С в клиент-серверном режиме?

Базовые навыки администрирования СУБД необходимы: настройка резервного копирования, контроль места на дисках, обслуживание индексов и статистики. Писать сложные запросы не требуется, но понимать планы запросов и уметь находить тяжёлые запросы полезно для диагностики производительности.

Почему после перехода на SQL база работает медленнее, чем в файловом режиме?

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

Итог

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

1С SQL — это клиент-серверный режим работы 1С:Предприятия с внешней СУБД (MS SQL, PostgreSQL, Oracle, Db2). Он нужен при росте пользователей и данных, требует отдельных лицензий и администрирования, а данные в базе нельзя править напрямую SQL-запросами. Переход оправдан по объективным признакам и всегда начинается с резервной копии.