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

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

1С и SQL: зачем программе нужен сервер баз данных

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

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

Понимание того, зачем 1С нужен SQL, важно не только разработчикам. От этого зависит выбор архитектуры для компании, скорость работы пользователей, надёжность хранения и стоимость инфраструктуры. Ошибка на этапе выбора варианта работы приводит к блокировкам, медленным отчётам и риску потери данных.

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

Какую роль играет SQL в архитектуре 1С

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

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

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

Когда файлового варианта достаточно, а когда нужен SQL

Файловый вариант подходит для небольших компаний: как правило, до 5–10 одновременно работающих пользователей и базы умеренного объёма. Он не требует отдельного сервера СУБД, проще в установке и обслуживании, его легко переносить — достаточно скопировать файл базы.

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

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

Файловый вариант против клиент-серверного

Файловая база

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

Клиент-сервер с SQL

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

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

Платформа 1С:Предприятие официально работает с несколькими СУБД: Microsoft SQL Server, PostgreSQL (включая сборки, адаптированные для 1С), IBM Db2 и Oracle Database. Выбор зависит от бюджета, квалификации администраторов и требований к инфраструктуре.

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

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

Как развернуть базу 1С на SQL-сервере

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

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

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

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

Настройка и обслуживание SQL-сервера под 1С

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

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

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

Типичные ошибки и проблемы производительности

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

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

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

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

Как проверить, что связка 1С и SQL работает правильно

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

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

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

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

Создание и открытие базы
Норма

База создаётся без ошибок, пользователи входят штатно

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

Ошибки соединения с СУБД или несовместимости версий при создании

Время проведения типового документа
Норма

Стабильное время, сопоставимое с эталоном после внедрения

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

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

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

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

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

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

Журналы ошибок
Норма

Нет регулярных ошибок блокировок и таймаутов

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

Повторяющиеся взаимоблокировки и превышения времени ожидания

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

Итог

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

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

Частые вопросы

Можно ли работать в 1С без SQL-сервера?

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

Какую бесплатную СУБД выбрать для 1С?

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

Можно ли читать данные из базы 1С прямыми SQL-запросами?

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

Почему база на SQL работает медленнее файловой?

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

Как перенести файловую базу на SQL-сервер?

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

Нужен ли отдельный сервер под СУБД?

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