Переезд баз 1С: файловый вариант, .dt-выгрузка и SQL-бэкап без потерь
Содержание
Перенести архив 1С можно тремя способами: скопировать каталог файловой базы целиком, выгрузить базу
в файл .dt через Конфигуратор (Администрирование → Выгрузить информационную базу) и загрузить его на новом месте, либо для клиент-серверной базы сделать бэкап средствами СУБД и восстановить его на новом сервере. Для переезда на тот же тип базы самый быстрый путь — копия каталога или бэкап SQL. Для смены типа (файловая → серверная и обратно) — только .dt.
Типичная ситуация: старый сервер в бухгалтерии доживает последние месяцы, диск заполнен, а в каталоге баз лежат пять рабочих баз и десяток архивных за прошлые годы. Переносить их нужно так, чтобы в понедельник все зашли в 1С как обычно. Ниже порядок, который работает для админа, у которого есть одно окно обслуживания.
Какой способ миграции выбрать
Сначала определите, что вы переносите. «Архив» в 1С бывает трёх видов: каталог файловой базы с файлом 1Cv8.1CD, файл выгрузки .dt или база данных на SQL-сервере.
| Способ | Когда подходит | Плюсы | Ограничения |
|---|---|---|---|
| Копия каталога файловой базы | Файловая → файловая, другой диск или ПК | Быстро, ничего не пересобирается | Переносит и скрытые повреждения файла |
Выгрузка .dt | Смена типа базы, смена СУБД, «чистая» пересборка | Универсально, файл компактный | Долго на больших базах, нужен монопольный доступ |
| Бэкап средствами СУБД | Серверная → серверная на той же СУБД | Быстро даже для 100+ ГБ | Нужна та же СУБД и совместимая версия |
Для баз от 30–50 ГБ выгрузка и загрузка .dt может занять часы. Если СУБД остаётся той же, бэкап SQL почти всегда быстрее.
Подготовка инфраструктуры к переносу
Перед переездом соберите сведения о старом месте и подготовьте новое.
Что проверить на старом сервере
- 📌 Версия платформы. Посмотрите в
Справка → О программе. На новом сервере ставьте платформу с номером не ниже текущего. Иначе база, обновлённая под новую платформу, не откроется. - 📌 Список баз и пути к ним. Для файловых — каталоги. Для серверных — имена баз в кластере и имена баз данных на SQL-сервере (они могут не совпадать).
- 📌 Файлы вне базы. Присоединённые файлы, которые хранятся в томах на диске, внешние обработки на диске, каталоги обмена. Их надо переносить отдельно.
- 📌 Регламентные задания и обмены. Запишите, какие базы обмениваются данными по расписанию: после переезда пути обмена придётся поправить.
- 📌 Лицензии. Программная лицензия привязана к оборудованию и копированием не переносится. На новом компьютере её активируют заново пин-кодом. Файлы лицензий лежат в
C:\ProgramData\1C\licenses.
Что подготовить на новом месте
- Установите ту же или более новую версию платформы 1С.
- Для серверного варианта установите сервер 1С и СУБД. Для MS SQL проверьте сортировку экземпляра: для баз 1С обычно используется
Cyrillic_General_CI_AS. - Создайте каталог для баз на отдельном диске, а не на системном.
- Договоритесь об окне: время, когда никто не работает в базе.
Перед любым переносом сделайте свежую выгрузку .dt каждой рабочей базы и сохраните её отдельно от старого и нового сервера. Это страховка на случай, если при копировании что-то пойдёт не так.
Перенос файловой базы 1С на другой диск или компьютер
Файловая база — это каталог. Главное в нём — файл 1Cv8.1CD, там все данные. Рядом лежат служебные папки: журнал регистрации 1Cv8Log, индексы полнотекстового поиска 1Cv8FTxt.
Шаг 1. Закройте все сеансы
Попросите пользователей выйти из базы. Проверить, что база свободна, можно двумя способами:
- в Конфигураторе:
Администрирование → Активные пользователи— список должен быть пустым; - по файлам: если в каталоге базы есть файл
1Cv8tmp.1CDили файлы блокировки, значит, кто-то ещё в базе.
Если копировать 1Cv8.1CD, пока с базой работают, копия может оказаться повреждённой. Ошибка проявится не сразу, а при открытии конкретного документа.
Шаг 2. Скопируйте каталог целиком
Копируйте весь каталог, а не только 1Cv8.1CD. Без 1Cv8Log вы потеряете журнал регистрации, а он нужен при разборе «кто и когда удалил документ».
Для больших каталогов удобнее robocopy, чем копирование мышью: он продолжит после обрыва и запишет лог.
robocopy "D:\Bases\Buh" "E:\1C_Bases\Buh" /E /COPY:DAT /R:2 /W:5 /LOG:E:\copy_buh.log
Шаг 3. Подключите базу на новом месте
- Запустите 1С, в окне выбора баз нажмите
Добавить. - Выберите
Добавление в список существующей информационной базы. - Укажите новый каталог (папку, в которой лежит
1Cv8.1CD). - Старую запись в списке удалите, чтобы никто случайно не открыл прежнюю копию.
Если баз много и пользователей тоже много, правьте список централизованно. Список баз хранится в файле ibases.v8i в профиле пользователя (%APPDATA%\1C\1CEStart\ibases.v8i). В нём у каждой базы есть строка Connect=File="D:\Bases\Buh"; — меняете путь и раздаёте файл.
Перенос через выгрузку .dt
Если база переезжает на компьютер с другой версией платформы или вы хотите заодно «пересобрать» файл, используйте .dt:
- Откройте базу в Конфигураторе.
Администрирование → Выгрузить информационную базу, сохраните файл.- На новом месте создайте пустую базу:
Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации. - Откройте её в Конфигураторе и выполните
Администрирование → Загрузить информационную базу.
Ту же операцию можно запускать без интерфейса, например ночью по расписанию:
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /DumpIB "E:\Archive\buh.dt" /Out "E:\Archive\dump.log"
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" CREATEINFOBASE File="E:\1C_Bases\Buh"
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F "E:\1C_Bases\Buh" /RestoreIB "E:\Archive\buh.dt" /Out "E:\Archive\restore.log"
Номер версии в пути замените на свой. Пароль в bat-файле храните только на защищённом сервере.
Миграция клиент-серверной базы на новый SQL-сервер
Для серверной базы есть два пути: через .dt (как выше, только новую базу создают в кластере) или через бэкап СУБД. Второй быстрее, разберём его.
Шаг 1. Остановите работу с базой
В консоли администрирования серверов 1С откройте свойства базы и включите Блокировка начала сеансов включена и Блокировка регламентных заданий включена. Затем завершите оставшиеся сеансы.
Завершение сеансов обрывает работу пользователей без сохранения. Делайте это только в согласованное окно и после предупреждения.
Шаг 2. Сделайте бэкап базы данных
MS SQL Server — через SQL Server Management Studio или запросом:
BACKUP DATABASE [buh]
TO DISK = N'E:\Backup\buh.bak'
WITH COPY_ONLY, COMPRESSION, CHECKSUM, STATS = 10;
COPY_ONLY не ломает цепочку регулярных бэкапов на старом сервере. CHECKSUM проверяет страницы при чтении.
PostgreSQL — дамп в сжатом формате:
pg_dump -U postgres -Fc -f E:\Backup\buh.backup buh
Шаг 3. Восстановите базу на новом сервере
MS SQL, с переносом файлов на новые диски:
RESTORE DATABASE [buh]
FROM DISK = N'E:\Backup\buh.bak'
WITH MOVE N'buh' TO N'F:\SQLData\buh.mdf',
MOVE N'buh_log' TO N'G:\SQLLog\buh_log.ldf',
CHECKSUM, STATS = 10;
Логические имена файлов (buh, buh_log) у вас могут быть другими. Посмотрите их командой RESTORE FILELISTONLY FROM DISK = N'E:\Backup\buh.bak'.
PostgreSQL — восстановление с созданием базы:
pg_restore -U postgres -C -d postgres E:\Backup\buh.backup
Используйте сборку PostgreSQL, совместимую с 1С, той же или более новой версии, что и на старом сервере.
Шаг 4. Зарегистрируйте базу в кластере 1С
- Откройте консоль администрирования серверов на новом сервере.
- В разделе
Информационные базысоздайте новую базу. - Укажите сервер СУБД, тип СУБД, имя существующей базы данных и пользователя СУБД.
- На время проверки включите
Блокировка регламентных заданий включена. Снимите её после переключения пользователей.
Пока обе базы — старая и новая — живые, регламентные задания должны работать только в одной из них. Иначе обмены и загрузки выполнятся дважды.
Права доступа и сетевые настройки после переноса
Половина звонков после переезда — не про данные, а про доступ.
Файловая база в общей папке
- 🔐 Пользователям нужны права на изменение каталога базы: и на уровне общего ресурса, и в NTFS. Только чтение не подойдёт — 1С пишет в каталог блокировки и журнал.
- 🔐 Подключайте базу по UNC-пути (
\\SRV-FILES\1C_Bases\Buh), а не по букве сетевого диска. Буквы на разных компьютерах расходятся. - 🔐 Антивирус: добавьте каталог баз в исключения проверки при доступе. Иначе работа замедлится в разы.
Серверная база
- 🔌 Откройте порты на брандмауэре нового сервера:
1540(агент сервера),1541(менеджер кластера), диапазон рабочих процессов (по умолчанию1560:1591, задаётся в свойствах рабочего сервера). Для СУБД — порт MS SQL (обычно1433) или PostgreSQL (5432), если СУБД на отдельной машине. - 🔌 Учётная запись службы сервера 1С (по умолчанию
USR1CV8) должна иметь полные права на каталог данных кластера. - 🔌 Пользователь СУБД. При восстановлении бэкапа MS SQL на другой сервер пользователь внутри базы «отрывается» от логина сервера. Если 1С подключается не под
sa, а под отдельным логином, создайте логин и свяжите его:
USE [buh];
ALTER USER [user1c] WITH LOGIN = [user1c];
В строке подключения у клиентов поменяйте имя сервера: Srvr="SRV-1C-NEW";Ref="buh";. Если имя базы в кластере осталось прежним, больше ничего менять не нужно.
Проверка целостности перенесённой базы
Не переключайте пользователей, пока не убедились, что база открывается и данные на месте.
Технические проверки
- Файловая база — утилита
chdbfl.exeиз каталогаbinплатформы. Она проверяет физическую целостность1Cv8.1CD. Запускается при закрытой базе. - Любая база — Конфигуратор,
Администрирование → Тестирование и исправление. Для первой проверки отметьте толькоПроверка логической целостности информационной базыи режим «не изменять», чтобы ничего не исправлять вслепую. - MS SQL —
DBCC CHECKDB ('buh') WITH NO_INFOMSGS;покажет повреждения на уровне СУБД.
Тестирование и исправление требует монопольного доступа, а на больших базах идёт часами. Запускайте его в окне обслуживания и после свежей выгрузки .dt.
Проверки бухгалтера
Техническая проверка не скажет, что данные совпадают. Попросите бухгалтера сравнить в старой и новой базе:
Если ОСВ совпала, а файлы не открываются, значит, тома с файлами не перенесли или в настройках томов остался старый путь.
Ошибки при переносе и как их устранить
Здесь — ошибки, которые возникают именно на новом месте.
Srvr и Ref и посмотрите список баз в консоли кластера.ALTER USER ... WITH LOGIN) и проверьте пароль в свойствах базы в консоли кластера.