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

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

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

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

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

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

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

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

Перенос имеет смысл не всегда. Файловый режим стабильно обслуживает базы с несколькими пользователями и умеренным объёмом данных. Сигналами к миграции обычно служат: одновременная работа более 10–15 пользователей, регулярные ошибки «Конфликт блокировок», длительное формирование отчётов, размер файла 1Cv8.1CD в десятки гигабайт, а также необходимость регламентных заданий, веб-доступа и тонкого разграничения прав на уровне СУБД.

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

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

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

Пользователей до 5 и база до нескольких гигабайтМожно остаться на файловом режиме, перенос не даст ощутимого выигрыша
Ошибки блокировок и медленные отчёты при 10+ пользователяхПланируйте переход на клиент-серверный вариант
Нужны регламентные задания и веб-доступТребуется сервер 1С и SQL — файловый режим этого не обеспечит полноценно

Подготовка: что проверить до выгрузки

Первый шаг — резервная копия. Скопируйте каталог файловой базы целиком (файл 1Cv8.1CD и сопутствующие файлы) на отдельный носитель. Не полагайтесь только на выгрузку .dt: копия каталога позволяет вернуться к исходному состоянию мгновенно.

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

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

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

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

Время выгрузки зависит от объёма данных и скорости диска: небольшая база выгружается за минуты, база в десятки гигабайт может занять часы. Не прерывайте процесс, даже если индикатор кажется зависшим. После завершения убедитесь, что файл существует и его размер отличен от нуля.

Порядок действий при выгрузке
  1. 1
    Завершите все сеансы пользователей и фоновые задания
  2. 2
    Сделайте копию каталога файловой базы
  3. 3
    Откройте конфигуратор и выполните тестирование и исправление
  4. 4
    Выберите Администрирование → Выгрузить информационную базу
  5. 5
    Укажите локальный путь для файла .dt и дождитесь завершения
  6. 6
    Проверьте наличие и размер созданного файла

Подготовка SQL-сервера и создание пустой базы

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

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

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

Загрузка .dt в базу на SQL-сервере

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

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

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

Проверка результата и подключение пользователей

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

Затем перенастройте подключения пользователей: в списке информационных баз старый путь к файловой базе заменяется на новый, с указанием сервера 1С и имени базы в кластере. Если использовались внешние обработки, обмены через каталоги или COM-соединения по файловому пути — обновите и эти настройки. Старую файловую базу не удаляйте сразу: переведите её в режим «только чтение» и храните как архив до подтверждения стабильной работы новой.

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

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

Остатки в контрольных отчётах
Норма

Совпадают с отчётами файловой базы до копейки

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

Расхождения в суммах или количестве

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

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

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

Ошибки СУБД или конфликты транзакций

Сеансы пользователей
Норма

Все пользователи подключаются к серверной базе

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

Часть пользователей продолжает работать в файловой копии

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

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

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

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

Типичные ошибки при переносе

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

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

Типичные ошибки
01
Выгрузка без завершения сеансов — полученный .dt не загружается или содержит неполные данные
02
Недостаток места на диске SQL — загрузка обрывается на середине, базу приходится пересоздавать
03
Загрузка в непустую базу — конфликт структур и потеря времени на откат
04
Пропуск тестирования и исправления — старые ошибки целостности срывают загрузку
05
Продолжение работы в файловой копии после переноса — расхождение данных между базами
06
Удаление файловой базы сразу после переноса — нет точки отката при обнаружении проблем

Альтернативные способы переноса и их ограничения

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

Также существует вариант публикации файловой базы на веб-сервере как промежуточный шаг, но он не решает проблему масштабирования и не заменяет полноценный клиент-серверный режим. Для полноценного перехода на SQL выгрузка и загрузка .dt остаётся рекомендуемым и наиболее надёжным способом.

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

Выгрузка/загрузка .dt

Штатный и самый надёжный способ; переносит всё целиком; требует монопольного доступа и времени на больших базах

Универсальный обмен XML

Подходит для переноса выборочных данных или объединения баз; не переносит настройки и требует идентичных конфигураций

Конвертация данных

Гибкие правила переноса между разными конфигурациями; сложная настройка, оправдана только в нестандартных сценариях

Итог

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

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

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

Сколько времени занимает перенос базы в SQL?

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

Можно ли перенести базу без остановки работы пользователей?

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

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

Сначала проверьте свободное место на дисках SQL-сервера и журнал ошибок. Целевую базу проще удалить и создать заново пустой, чем пытаться продолжить прерванную загрузку. Если ошибка повторяется, выполните тестирование и исправление исходной файловой базы и сделайте новую выгрузку.

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

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

Можно ли вернуться к файловому режиму после перехода?

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

Переносятся ли пользователи и их права вместе с базой?

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