Администрирование · 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С выполняет тяжёлые операции на стороне сервера, а клиенты получают только результат. Это даёт заметный выигрыш при десятках одновременных пользователей и больших объёмах данных, а также позволяет использовать штатные средства СУБД для резервного копирования и репликации.
Сравнение вариантов
Подходит для небольших баз и ограниченного числа одновременных пользователей. Ограничение: чувствителен к сбоям сети, слабо масштабируется.
Подходит для растущих компаний, десятков пользователей и больших объёмов. Ограничение: требует лицензий на сервер 1С, СУБД и регулярного администрирования.
Подходит, если нет желания администрировать инфраструктуру самостоятельно. Ограничение: зависимость от провайдера и условий тарифа.
Когда переход на SQL действительно нужен
Переход на клиент-серверный режим — это затраты на лицензии, оборудование и администрирование, поэтому решение стоит принимать по объективным признакам, а не «на вырост».
Как выбрать действие
Отдельный сигнал — требования безопасности. В файловом режиме любой пользователь с доступом к сетевой папке может скопировать файл базы целиком. В SQL-режиме прямой доступ к данным имеет только сервер 1С, а права на уровне СУБД разграничиваются отдельно.
Как разворачивается связка 1С и SQL-сервера
Типовое развёртывание включает установку СУБД, установку сервера 1С:Предприятия и создание информационной базы через консоль кластера или конфигуратор. Компоненты могут стоять на одном физическом сервере (для небольших нагрузок) или быть разнесены на разные машины.
- 1Установите поддерживаемую версию СУБД и настройте её согласно рекомендациям для 1С (параметры памяти, collation, кодировка)
- 2Установите сервер 1С:Предприятия той же разрядности и версии платформы, что используется у клиентов
- 3Создайте информационную базу через консоль администрирования сервера 1С, указав тип СУБД, имя сервера баз данных и имя базы
- 4Загрузите данные из файловой базы через выгрузку/загрузку .dt или выполните миграцию
- 5Проверьте работу пользователей, настройте регламентные задания и резервное копирование средствами СУБД
Ключевой момент — параметры СУБД. Для MS SQL критичны модель восстановления базы, настройки tempdb и максимальный объём памяти сервера; для PostgreSQL — корректная сборка и параметры shared_buffers, work_mem. Значения по умолчанию рассчитаны на универсальные нагрузки и для 1С почти всегда требуют корректировки.
Резервное копирование и обслуживание SQL-базы 1С
В SQL-режиме резервное копирование выполняется штатными средствами СУБД: полные и разностные копии, копии журнала транзакций. Это надёжнее и быстрее, чем копирование файла 1Cv8.1CD, и позволяет восстановить базу на произвольный момент времени.
Дополнительно рекомендуется периодически делать выгрузку в файл .dt средствами конфигуратора: такая копия независима от СУБД и пригодится при миграции между СУБД или при повреждении на уровне сервера баз данных. Регламентное обслуживание — обновление статистики, перестроение индексов, контроль роста журнала транзакций — должно быть настроено как расписание, а не выполняться «когда вспомнили».
Как проверить результат
Полная копия создаётся по расписанию, тестовое восстановление выполняется успешно
Копии не создаются или восстановление из них никогда не проверялось
Журнал контролируемого размера, модель восстановления соответствует плану копирования
Журнал растёт бесконтрольно и занимает весь диск
Проведение документов и отчёты выполняются за приемлемое время без роста
Время операций неуклонно растёт — вероятны проблемы со статистикой и индексами
Типичные ошибки и ограничения
Ещё одно ограничение: лицензия на сервер 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-запросами. Переход оправдан по объективным признакам и всегда начинается с резервной копии.