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

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

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

Как перевести файловую базу 1С на SQL Server: выгрузка DT, создание базы, загрузка, настройка прав и проверка результата. Пошаговая инструкция.

Переход с файлового режима работы 1С на клиент-серверный (SQL) — стандартная задача при росте числа пользователей и объёма данных. Файловая база хранится в одном файле 1Cv8.1CD и при одновременной работе более 5–10 пользователей начинает тормозить, а риск повреждения файла растёт. SQL-вариант переносит хранение данных на сервер СУБД (обычно Microsoft SQL Server или PostgreSQL), что снимает эти ограничения.

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

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

Когда переход на SQL действительно нужен

Файловый режим корректно работает при небольшом числе одновременных пользователей и умеренном объёме базы. Тревожные признаки, указывающие на необходимость перехода: заметные паузы при проведении документов, ошибки блокировок, рост файла 1Cv8.1CD сверх нескольких гигабайт, регулярные сбои при одновременной работе.

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

Маршрут решения

Как выбрать действие

Пользователей до 5 и база меньше 2–3 ГБОставьте файловый режим, настройте регулярное копирование файла 1Cv8.1CD
Пользователей 5–30, есть блокировки и жалобы на скоростьПереходите на SQL Server или PostgreSQL по инструкции ниже
База очень большая или работает распределённая сеть филиаловПланируйте клиент-серверный режим с выделенным сервером 1С и отдельным сервером СУБД

Что подготовить перед миграцией

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

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

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

Шаг 1. Выгрузка файловой базы в .dt

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

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

Шаг 2. Настройка SQL Server и создание базы

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

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

Шаг 3. Загрузка данных и проверка результата

Добавьте новую клиент-серверную базу в список баз на рабочем месте (или через общий список bases.v8i), откройте её в конфигураторе и выполните «Администрирование» → «Загрузить информационную базу», указав файл .dt. После загрузки платформа может предложить выполнить реструктуризацию — согласитесь.

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

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

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

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

Все пользователи заходят со своими паролями, права соответствуют ролям

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

Пользователи отсутствуют в списке или получают ошибки доступа

Проведение документов
Норма

Документы проводятся без ошибок блокировок и ссылочной целостности

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

Ошибки «объект не найден», битые ссылки, сбои проведения

Отчёты и остатки
Норма

Обороты и остатки совпадают с файловой копией на дату миграции

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

Расхождения в итогах регистров

Регламентные задания
Норма

Задания выполняются на сервере по расписанию

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

Задания не стартуют или падают с ошибками в журнале

Типичные ошибки и ограничения

Частая ошибка — попытка перенести базу копированием файла 1Cv8.1CD на сервер SQL. Это бессмысленно: SQL Server не работает с форматом 1CD, перенос возможен только через выгрузку/загрузку .dt или через публикацию обмена. Другая распространённая проблема — недостаток прав учётной записи СУБД, из-за чего создание базы завершается ошибкой.

Учтите ограничения: в клиент-серверном режиме некоторые операции выполняются на сервере, поэтому пути к файлам в коде конфигурации должны быть доступны с сервера, а не с клиентских машин. Если конфигурация использует локальные пути (например, C:\ для обменов), их потребуется перенастроить на сетевые ресурсы.

Типичные ошибки
01
Копирование 1Cv8.1CD на SQL Server вместо выгрузки .dt — сервер СУБД не читает файловый формат 1С
02
Миграция без резервной копии — при сбое загрузки данные восстановить неоткуда
03
Неподдерживаемая версия SQL Server — ошибки при создании базы или нестабильная работа
04
Учётная запись без прав на создание БД — создание информационной базы завершается ошибкой доступа
05
Локальные пути в обменах и печатных формах — после перехода код ищет файлы на сервере, а не на клиенте
06
Переключение пользователей без тестового периода — скрытые проблемы обнаруживаются уже в боевой работе

Альтернативы и обратный переход

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

Обратный переход (из SQL в файловый режим) выполняется симметрично: выгрузка .dt из клиент-серверной базы и загрузка в файловую. Это удобно для создания локальных копий для разработки и тестирования.

Итог

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

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

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

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

Нет. Формат файловой базы (1Cv8.1CD) несовместим с СУБД на уровне хранения. Единственный штатный способ — выгрузка в .dt и загрузка в клиент-серверную базу. Альтернатива для больших баз — выгрузка через механизмы обмена, но это дольше и сложнее.

Сколько времени занимает миграция?

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

Потеряются ли пользователи и права при переходе?

Нет, список пользователей и их роли хранятся внутри информационной базы и переносятся вместе с выгрузкой .dt. Однако если использовалась аутентификация операционной системы, привязки к учётным записям Windows нужно проверить отдельно.

Нужно ли дорабатывать конфигурацию под SQL?

Обычно нет — типовые конфигурации работают в обоих режимах без изменений. Доработки могут понадобиться, если в коде есть обращения к локальным файлам, COM-объекты, запускаемые на клиенте, или прямые вызовы, рассчитанные на файловый режим.

Что делать, если при загрузке .dt возникла ошибка?

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

Можно ли держать одновременно файловую и SQL-копию?

Да, это удобно для тестирования: загрузите .dt в SQL-базу, а файловую оставьте как эталон. Но не работайте в обеих базах параллельно в боевом режиме — данные разойдутся, и объединить их штатными средствами будет нельзя.