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

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

Как перевести базу 1С на SQL Server

Пошаговая инструкция по переводу базы 1С на Microsoft SQL Server: установка СУБД, создание базы, публикация в кластере 1С, настройки и типичные ошибки.

Файловый режим работы 1С хорошо справляется с небольшими базами, но при росте числа пользователей и объёма данных начинаются блокировки, медленные отчёты и повреждения файла базы. Переход на клиент-серверный вариант с СУБД Microsoft SQL Server или PostgreSQL снимает большинство этих проблем: данные хранит и обрабатывает выделенный сервер СУБД, а платформа 1С обращается к нему через кластер серверов 1С:Предприятия.

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

Перед началом работ убедитесь, что у вас есть дистрибутивы платформы 1С и SQL Server подходящих версий, права администратора на серверах и актуальная резервная копия файловой базы (выгрузка в .dt). Все действия лучше сначала отработать на тестовом стенде, а не на рабочей базе.

Что понадобится: версии, лицензии и ресурсы

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

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

По железу ориентируйтесь на то, что SQL Server чувствителен к скорости дисков и объёму оперативной памяти. Размещайте файлы данных и журнала транзакций на разных физических дисках, если это возможно, и выделяйте серверу достаточно RAM — SQL Server активно кэширует данные в память.

Установка и базовая настройка SQL Server под 1С

При установке SQL Server выберите компоненты Database Engine и средства управления (SQL Server Management Studio). Режим проверки подлинности задайте смешанный (Windows и SQL Server) — платформа 1С подключается к базе под отдельной учётной записью, и проще всего использовать SQL-аутентификацию. Создайте отдельный логин для 1С (например, sql1c) с надёжным паролем.

После установки выполните несколько обязательных настроек. Во-первых, ограничьте максимальный объём памяти SQL Server (параметр max server memory), оставив операционной системе и серверу 1С достаточный резерв — без этого ограничения SQL Server постепенно забирает почти всю RAM. Во-вторых, убедитесь, что включён протокол TCP/IP в конфигураторе сети SQL Server, иначе удалённые подключения работать не будут.

Полезно сразу задать параметр tempdb: вынесите её файлы на быстрый диск и создайте несколько файлов данных tempdb — 1С активно использует временные таблицы, и узкая tempdb становится узким местом. Эти настройки выполняются в свойствах сервера в Management Studio.

Создание базы в кластере 1С
  1. 1
    Откройте консоль администрирования серверов 1С:Предприятия
  2. 2
    Создайте кластер и добавьте рабочий сервер, если это ещё не сделано
  3. 3
    В ветке «Информационные базы» создайте новую базу
  4. 4
    Укажите тип СУБД MS SQL Server, имя сервера БД, имя базы, логин и пароль SQL-пользователя
  5. 5
    Отметьте «Создать базу данных в случае её отсутствия» и подтвердите
  6. 6
    Проверьте, что база появилась в списке и в SQL Server Management Studio

Установка сервера 1С:Предприятия и создание базы

Установите компоненту «Сервер 1С:Предприятия» из дистрибутива платформы той же версии, что и клиенты. После установки служба «Агент сервера 1С:Предприятия» должна быть запущена. Управление выполняется через оснастку «Администрирование серверов 1С:Предприятия» (консоль кластера).

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

Отдельного ручного создания таблиц не требуется: структуру метаданных 1С формирует сама при первом обращении. Ваша задача — корректно указать параметры подключения и убедиться, что SQL-пользователь имеет достаточные права (на этапе создания — роль dbcreator или выше, для работы базы — db_owner на конкретную базу).

Перенос данных из файловой базы

Перенос выполняется стандартным механизмом выгрузки и загрузки информационной базы. Откройте файловую базу в конфигураторе и выполните «Администрирование → Выгрузить информационную базу», указав файл с расширением .dt. Для больших баз выгрузка может занять значительное время — планируйте окно обслуживания.

Затем откройте в конфигураторе новую пустую базу на SQL Server и выполните «Администрирование → Загрузить информационную базу», выбрав полученный .dt-файл. После загрузки платформа предложит перезапустить конфигуратор. Проверьте, что справочники, документы и отчёты открываются и данные совпадают с исходной базой.

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

Перед выгрузкой в .dt выполните тестирование и исправление файловой базы (chdbfl или штатное ТиИ в конфигураторе). Ошибки в исходной базе могут прервать загрузку на SQL на середине процесса, и придётся начинать заново.
ПЗ
Практическое замечание

Настройка после перехода: обслуживание и производительность

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

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

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

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

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

База в консоли кластера
Норма

База видна, статус активен, свойства открываются

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

База не создаётся или ошибка подключения к СУБД

Вход пользователей
Норма

Тонкий клиент подключается, данные на месте

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

Ошибка соединения с сервером 1С или пустая база

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

Файлы бэкапа создаются по расписанию и восстанавливаются на тесте

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

Бэкапов нет или восстановление не проверялось

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

Стабильный, контролируемый размер

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

Журнал растёт без ограничений

Типичные ошибки и как их избежать

Самая частая проблема — ошибка «СУБД: ошибка SQL» при создании базы. Обычно причины три: неправильный логин или пароль SQL-пользователя, отключённый протокол TCP/IP на SQL Server или недостаточные права учётной записи. Проверяйте подключение тем же логином через Management Studio — если там вход не работает, проблема в СУБД, а не в 1С.

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

Типичные ошибки
01
Не ограничена память SQL Server — сервер 1С и ОС начинают тормозить из-за нехватки RAM
02
Полная модель восстановления без бэкапа журнала — журнал транзакций заполняет диск
03
Перенос базы без предварительного тестирования и исправления — загрузка .dt обрывается на ошибках
04
Использование учётки sa для работы 1С — риск безопасности и сложности с аудитом
05
Отсутствие плана обслуживания индексов и статистики — постепенная деградация скорости отчётов

Когда SQL не нужен: границы разумного перехода

Клиент-серверный режим оправдан, когда с базой одновременно работают более 5–10 пользователей, объём данных измеряется десятками гигабайт, есть тяжёлые отчёты или требования к отказоустойчивости и резервному копированию. Если у вас одна-две бухгалтерии и небольшая база, файловый режим с регулярными копиями проще и дешевле в поддержке.

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

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

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

Подходит для 1–5 пользователей и малых баз; не требует СУБД, но уязвим к блокировкам и повреждениям файла

1С + MS SQL Server

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

1С + PostgreSQL

Бесплатная СУБД с поддержкой платформой; требует отдельных навыков администрирования и специальной сборки postgres

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

Можно ли перевести базу на SQL без выгрузки в .dt?

Штатного прямого переноса файловой базы в SQL не существует — выгрузка и загрузка .dt единственный поддерживаемый способ. Сторонние инструменты прямого копирования таблиц не гарантируют целостность данных и не поддерживаются вендором.

Подойдёт ли SQL Server Express для рабочей базы?

Для небольших баз — да, но учитывайте ограничения редакции по размеру базы и используемой памяти. При росте базы или числа пользователей переходите на Standard, иначе упрётесь в лимиты в самый неподходящий момент.

Нужно ли ставить сервер 1С и SQL Server на разные машины?

Для небольших внедрений допустима установка на одном сервере при достаточном объёме RAM с ограниченной памятью SQL Server. При высокой нагрузке разнесение на разные серверы даёт стабильный прирост производительности и упрощает диагностику.

Что делать, если при создании базы возникает ошибка подключения к СУБД?

Проверьте по порядку: запущена ли служба SQL Server, включён ли протокол TCP/IP, открыт ли порт на брандмауэре, верны ли логин и пароль (проверьте вход через Management Studio), есть ли у учётной записи права на создание базы.

Как часто делать резервные копии базы на SQL?

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

Итог

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

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