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