Администрирование · 10 мин
1C SQL: что это такое и как работает связка 1С с SQL-сервером
Что такое 1C SQL, чем клиент-серверный режим отличается от файлового, как выбрать СУБД, настроить подключение и избежать типичных ошибок при работе.
Запрос «1C SQL» обычно означает работу платформы 1С:Предприятие в клиент-серверном режиме, когда данные информационной базы хранятся не в файле на диске, а в базе данных под управлением СУБД — Microsoft SQL Server, PostgreSQL, Oracle или IBM DB2. Сама 1С не содержит собственной SQL-системы: она формирует запросы к внешней СУБД, а та физически хранит и обрабатывает таблицы. Поэтому под «1C SQL» на практике понимают связку «сервер 1С + SQL-сервер».
Такой режим нужен, когда файловый вариант перестаёт справляться: база выросла, одновременно работают десятки пользователей, появляются конфликты блокировок и требуется разграничение прав на уровне СУБД. В клиент-серверном варианте тяжёлые операции выполняются на сервере, сеть меньше нагружается, а целостность данных защищается механизмами транзакций СУБД.
Понимание архитектуры важно и для администратора, и для разработчика: от неё зависят резервное копирование, производительность запросов, обновление конфигурации и диагностика ошибок. Ниже разобрано устройство связки, выбор СУБД, порядок перехода с файлового режима и типичные проблемы.
Как устроена связка 1С и SQL-сервера
В клиент-серверной архитектуре участвуют три звена: клиентское приложение (тонкий, толстый или веб-клиент), сервер 1С:Предприятия и сервер СУБД. Клиент никогда не обращается к базе напрямую — он передаёт запросы серверу 1С, тот транслирует их в SQL и возвращает результат. Такое разделение позволяет выполнять бизнес-логику на сервере и снижает трафик между клиентом и данными.
Структура базы в SQL выглядит иначе, чем в конфигураторе. Объекты метаданных — справочники, документы, регистры — превращаются в таблицы с техническими именами вида _Reference, _Document, _InfoRg. Работать с этими таблицами напрямую через SQL-запросы на запись категорически не рекомендуется: 1С хранит служебные поля, итоги и служебные последовательности, и ручное вмешательство разрушает целостность данных.
Чем клиент-серверный режим отличается от файлового
В файловом режиме вся база — один файл 1Cv8.1CD в сетевой папке, и каждый клиент работает с ним напрямую. Это просто и дёшево, но при росте числа пользователей и объёма данных возникают блокировки на уровне файла, замедление и риск повреждения базы при сбое сети. Клиент-серверный режим снимает эти ограничения, но требует отдельного сервера, лицензий и администрирования СУБД.
| Параметр | Файловый режим | Клиент-серверный (SQL) |
|---|---|---|
| Хранение данных | Файл 1Cv8.1CD | База в СУБД (MS SQL, PostgreSQL и др.) |
| Одновременные пользователи | Небольшое число, быстро растут блокировки | Десятки и сотни сеансов |
| Устойчивость к сбоям | Риск повреждения файла при обрыве | Транзакционность и журналы СУБД |
| Резервное копирование | Копирование файла или выгрузка dt | Штатные средства СУБД, горячие копии |
| Требования | Общая папка, минимум настроек | Сервер 1С, СУБД, лицензии, администрирование |
Выбор режима — это не вопрос «моды», а расчёт нагрузки. Для небольшой базы с несколькими пользователями файловый вариант надёжнее в сопровождении, а попытка развернуть SQL «на вырост» без администратора часто создаёт больше проблем, чем решает.
Как выбрать действие
Какую СУБД выбрать для 1С
Платформа 1С поддерживает несколько СУБД, но на практике выбор обычно стоит между Microsoft SQL Server и PostgreSQL. MS SQL исторически самый распространённый в экосистеме 1С: для него больше готовых инструкций, типовых настроек и специалистов. PostgreSQL привлекает отсутствием лицензионных платежей, но требует специальной сборки (например, адаптированной под 1С) и более внимательной настройки.
Сравнение вариантов
Максимум документации и специалистов, предсказуемая работа с 1С; ограничение — стоимость лицензий на сервер и подключения
Бесплатная СУБД, подходит для экономии на лицензиях; ограничение — нужна адаптированная сборка и более тонкая настройка
Встречаются в крупных корпоративных внедрениях; ограничение — высокая стоимость и редкость специалистов именно по связке с 1С
Независимо от выбора важно, чтобы версия СУБД входила в список поддерживаемых для вашей версии платформы 1С — эта информация публикуется в системных требованиях платформы. Использование неподдерживаемой версии приводит к ошибкам при создании базы и обновлении конфигурации.
Как перейти с файлового режима на SQL
Переход выполняется через выгрузку и загрузку базы, а не копированием файла. Стандартный путь: сделать выгрузку в файл .dt из конфигуратора, создать пустую базу на SQL-сервере через консоль кластера или при добавлении информационной базы, а затем загрузить dt в новую базу. Пользователи после этого подключаются уже к серверной базе.
- 1Установите СУБД и сервер 1С:Предприятия, проверьте совместимость версий
- 2Сделайте полную выгрузку файловой базы в .dt через конфигуратор
- 3Создайте новую информационную базу в консоли кластера с указанием SQL-сервера
- 4Загрузите .dt в новую базу через конфигуратор
- 5Настройте в СУБД план обслуживания: бэкапы, реиндексацию, обновление статистики
- 6Проверьте работу пользователей, отчётов и регламентных заданий на новой базе
После загрузки обязательно проверьте, что регламентные задания выполняются на сервере, а пользователи работают под своими учётными записями. Частая ситуация: база переехала, но задания не запускаются, потому что на сервере 1С не разрешено их выполнение или не настроен рабочий процесс.
Резервное копирование и обслуживание SQL-базы
Главное преимущество SQL-режима — штатные механизмы резервного копирования СУБД. Для продуктивной базы настраивают полную модель восстановления с регулярными полными копиями и копиями журнала транзакций: это позволяет восстановить базу на произвольный момент времени, а не только на момент последнего бэкапа.
Кроме бэкапов, базе нужен регулярный план обслуживания: обновление статистики, реорганизация или перестроение индексов, контроль роста журнала транзакций. Без этого со временем деградирует скорость запросов, а журнал может заполнить диск и остановить работу базы. Эти задачи выполняются средствами СУБД и не требуют остановки 1С, если запланированы в часы минимальной нагрузки.
Как проверить результат
Копии создаются по расписанию, тестовое восстановление проходит успешно
Копии не создаются или восстановление ни разу не проверялось
Размер контролируется, есть регламентное обрезание через бэкапы журнала
Файл журнала растёт бесконечно и заполняет диск
Типовые операции выполняются без заметных пауз
Отчёты и проведение документов резко замедлились без роста нагрузки
Можно ли писать SQL-запросы к базе 1С напрямую
Чтение данных прямыми SQL-запросами технически возможно и иногда применяется для интеграций и аналитики, но требует понимания структуры хранения: виртуальные таблицы 1С (итоги, срезы) в SQL не существуют и вычисляются платформой. Запись напрямую в таблицы запрещена во всех сценариях — это гарантированный путь к рассогласованию итогов и повреждению базы.
Для обмена данными с внешними системами правильнее использовать механизмы платформы: веб-сервисы, HTTP-сервисы, планы обмена, COM-соединение или OData. Они сохраняют логику целостности и не привязывают интеграцию к внутренней структуре таблиц, которая может измениться при обновлении конфигурации.
Частые вопросы о работе 1С с SQL
Что значит «1C SQL» простыми словами?
Это режим, при котором 1С хранит данные не в файле, а в базе данных на SQL-сервере (MS SQL, PostgreSQL и др.). Сервер 1С формирует SQL-запросы, а СУБД их выполняет. Так работают средние и крупные внедрения с большим числом пользователей.
Нужно ли знать язык SQL, чтобы администрировать 1С?
Для базового администрирования достаточно понимать архитектуру и уметь настраивать бэкапы средствами СУБД. Знание SQL помогает при диагностике производительности и чтении планов запросов, но повседневная работа с данными ведётся через платформу 1С.
Можно ли вернуться с SQL-режима обратно на файловый?
Да: выгрузите базу в файл .dt из конфигуратора, создайте файловую информационную базу и загрузите в неё этот файл. Ограничение — размер: очень большие базы могут не помещаться в ограничения файлового формата.
Почему база на SQL работает медленнее, чем ожидалось?
Частые причины — отсутствие плана обслуживания (устаревшая статистика, фрагментированные индексы), нехватка памяти у СУБД, медленные диски под данные или журнал, а также неоптимальные запросы в самой конфигурации. Диагностику начинают с мониторинга ресурсов сервера и анализа длительных запросов.
Безопасно ли подключать сторонние отчёты к базе 1С через SQL?
Только для чтения и с пониманием структуры хранения. Виртуальные таблицы (итоги, срезы первых и последних значений) платформа вычисляет сама, поэтому прямой запрос к физическим таблицам может дать не те цифры, что показывает отчёт в 1С. Для аналитики надёжнее выгружать данные штатными средствами.
Что важно запомнить
1C SQL — это клиент-серверный режим 1С с хранением данных во внешней СУБД. Переход оправдан при росте пользователей и объёма базы, выполняется через выгрузку/загрузку .dt и требует регулярного обслуживания СУБД: бэкапов, обновления статистики и контроля журнала транзакций. Прямая запись в таблицы SQL запрещена — все изменения данных выполняются только через платформу.