Работа с тестовой копией базы 1С:Зарплата и Управление Персоналом (ЗУП) — обязательный этап перед обновлениями, доработками или миграцией. Ошибка в рабочей базе может парализовать расчёт зарплаты, нарушить отчётность или привести к потере данных. Но как правильно скопировать базу, чтобы тестовая версия была актуальной, а рабочая — защищённой?
Многие администраторы допускают критическую ошибку: просто копируют файлы базы без учёта транзакций, блокировок или особенностей SQL-сервера. В результате тестовая копия содержит неполные данные, а рабочая база после восстановления «ломается». Эта статья поможет избежать таких проблем — здесь разобраны 5 способов копирования (от ручного до автоматизированного), нюансы для разных версий 1С:Предприятие 8.3 и SQL/файлового вариантов, а также типичные ошибки с решениями.
Если вы никогда не копировали базу 1С ЗУП раньше, начните с первого раздела — там объяснено, почему нельзя просто скопировать папку с базой. Опытным администраторам будет полезен раздел про автоматизацию через powershell или 1cv8 с ключами.
Почему нельзя просто скопировать папку с базой 1С ЗУП?
Самая распространённая ошибка — копирование папки базы (например, C:\1C_Bases\ZUP) через Проводник Windows. Это работает только для файлового варианта 1С, но и там чревато проблемами:
Во-первых, при копировании «на лету» (когда база открыта пользователями) файлы могут быть заблокированы или содержать несохранённые транзакции. В результате тестовая копия будет неконсистентной: например, документы «Зарплата к выплате» окажутся без проводок, а регистры накопления — с разбитыми итогами.
Во-вторых, даже в файловом варианте 1С использует временные файлы (.cdx, .lgp), которые не всегда корректно копируются. При открытии такой копии вы можете увидеть ошибку:
«Файл базы данных повреждён или имеет неверный формат»
В случае клиент-серверного варианта (с Microsoft SQL Server или PostgreSQL) копирование папки с файлами базы (.mdf, .ldf) вообще бессмысленно — нужны специализированные инструменты вроде SQL Server Management Studio или утилиты pg_dump.
Если вам срочно нужна копия файловой базы, а пользователи работают — используйте утилиту chdbfl.exe (входит в дистрибутив 1С) для создания резервной копии «горячей» базы. Команда:
chdbfl.exe C:\1C_Bases\ZUP /DumpIB C:\Backup\ZUP.dtСпособ 1: Резервное копирование через Конфигуратор (для файлового варианта)
Самый надёжный метод для файловой базы — использование встроенного механизма резервного копирования в Конфигураторе 1С. Он гарантирует целостность данных и блокирует пользователей на время создания копии.
Пошаговая инструкция:
- Закройте все сеансы пользователей в базе ЗУП (через
Администрирование → Активные пользователи). - Откройте Конфигуратор от имени администратора.
- Перейдите в
Администрирование → Выгрузить информационную базу. - Укажите путь для сохранения файла (
.dt) и дождитесь завершения.
Готовый файл .dt можно:
- 📁 Сохранить на внешний диск для архива.
- 🔄 Загрузить в новую базу через
Администрирование → Загрузить информационную базу. - 🧪 Использовать для тестов: создайте пустую базу и загрузите в неё
.dt.
Закрыты все сеансы пользователей|
Свободно не менее 20% места на диске|
Путь для сохранения — на другом физическом диске (не на системном)|
Имя файла содержит дату (например, ZUP_20260515.dt)-->
⚠️ Внимание: Если база весит более 10 ГБ, выгрузка может занять несколько часов. В этом случае лучше использовать побитовое копирование (способ 3) или скрипты powershell.
Способ 2: Копирование через SQL-сервер (для клиент-серверного варианта)
Для баз 1С ЗУП на Microsoft SQL Server или PostgreSQL копирование осуществляется на уровне СУБД. Здесь нельзя просто скопировать файлы .mdf/.ldf — нужно создать бэкап базы данных и восстановить его под другим именем.
Инструкция для Microsoft SQL Server:
- Откройте SQL Server Management Studio (SSMS).
- Правой кнопкой по базе 1С →
Tasks → Back Up. - Выберите тип бэкапа
Full, укажите путь (например,D:\Backups\ZUP_20260515.bak). - После завершения создайте новую базу через
Restore Database, указав другое имя (например,ZUP_Test).
Для PostgreSQL используйте команду:
pg_dump -U postgres -F c -b -v -f "D:\Backups\ZUP_20260515.backup" ZUP_DB
где:
-U postgres— пользователь СУБД;-F c— формат сжатого дампа;-b— включить BLOB-объекты (важно для 1С!).
⚠️ Внимание: При восстановлении бэкапа в PostgreSQL не забудьте создать пользователя 1С с теми же правами, что и в оригинальной базе. Иначе тестовая копия не откроется!
Используйте сжатие на уровне СУБД: - В SQL Server: включите опцию - В PostgreSQL: добавьте ключ Также можно разделить бэкап на части (например, отдельно данные и индексы) или исключить старые документы через параметр Что делать, если бэкап SQL занимает слишком много места?
Compress backup в настройках бэкапа.--compress=9 к команде pg_dump.--exclude-table-data.
Способ 3: Побитовое копирование (для больших баз)
Если база 1С ЗУП занимает десятки или сотни гигабайт, выгрузка через Конфигуратор или SQL-бэкап может занять недопустимо много времени. В этом случае используют побитовое копирование с помощью утилит вроде Robocopy (Windows) или rsync (Linux).
Команда для Robocopy (Windows):
robocopy "C:\1C_Bases\ZUP" "D:\Backup\ZUP_Copy" /MIR /ZB /R:1 /W:1 /LOG:"C:\Logs\copy_ZUP.log"
где:
/MIR— зеркальное копирование (удалит в целевой папке файлы, отсутствующие в источнике);/ZB— режим перезапуска (важно для больших файлов);/LOG— ведение лога (поможет отследить ошибки).
Преимущества метода:
- ⚡ Быстрее, чем выгрузка через 1С (особенно для баз >50 ГБ).
- 🔄 Можно копировать «на лету» (но риск неконсистентности остаётся!).
- 💾 Подходит для инкрементального бэкапа (копируются только изменённые файлы).
⚠️ Внимание: Побитовое копирование не гарантирует целостность данных, если база открыта пользователями. Используйте этот метод только для файлового варианта 1С и обязательно проверяйте тестовую копию на ошибки через Тестирование и исправление в Конфигураторе.
Способ 4: Автоматизация через Powershell или 1cv8
Для регулярного копирования (например, еженедельного) удобно использовать скрипты. Ниже пример для Powershell, который создаёт бэкап файловой базы и отправляет лог на почту:
$Source = "C:\1C_Bases\ZUP"
$Destination = "D:\Backups\ZUP_$(Get-Date -Format 'yyyyMMdd')"
$LogFile = "C:\Logs\Backup_ZUP.log"
Копирование
robocopy $Source $Destination /MIR /ZB /R:1 /W:1 /LOG:$LogFile /TEE
Проверка результата
if ($LASTEXITCODE -lt 8) {
Send-MailMessage -To "admin@company.ru" -Subject "Бэкап 1С ЗУП успешен" -Body "Лог прикреплён" -Attachments $LogFile -SmtpServer "smtp.company.ru"
} else {
Send-MailMessage -To "admin@company.ru" -Subject "ОШИБКА бэкапа 1С ЗУП!" -Body "Код ошибки: $LASTEXITCODE" -SmtpServer "smtp.company.ru"
}
Для клиент-серверного варианта можно автоматизировать SQL-бэкап через 1cv8 с ключом /DumpIB:
"C:\Program Files\1cv8\8.3.26.102\bin\1cv8.exe" CONFIG /S "server\ZUP" /N "Admin" /P "password" /DumpIB "D:\Backups\ZUP.dt" /Out "C:\Logs\Dump.log"
Плюсы автоматизации:
- ⏰ Экономит время (настройка один раз — работа на годы).
- 📧 Уведомления об ошибках (не пропустите сбой бэкапа).
- 🔄 Можно интегрировать с облачными хранилищами (например, загружать
.dtв Yandex Disk).
Автоматизация бэкапов снижает риск человеческой ошибки на 90%. Даже простой скрипт на 10 строк избавит от рутинных действий и гарантирует регулярность копий.
Способ 5: Использование сторонних утилит (1C:Fresh, Infostart Backup)
Если вам нужны расширенные возможности (инкрементальные бэкапы, облачное хранилище, проверка целостности), рассмотрите специализированные инструменты:
| Утилита | Поддержка | Особенности | Стоимость |
|---|---|---|---|
| 1C:Fresh | Файловый и SQL | Облачный бэкап, версия для тестирования изменений | От 1 500 ₽/мес |
| Infostart Backup | Файловый и SQL | Автоматическое резервирование, уведомления, шифрование | От 3 000 ₽ |
| V8Backup | Файловый | Бесплатная, простой интерфейс, поддержка .dt |
Бесплатно |
| SQLBackupAndFTP | SQL Server | Автоматическая загрузка бэкапов в облако (Google Drive, Dropbox) | От 500 ₽/мес |
⚠️ Внимание: Перед использованием сторонних утилит проверьте совместимость с вашей версией 1С ЗУП и СУБД. Например, 1C:Fresh не поддерживает PostgreSQL в базовой комплектации.
Типичные ошибки и как их избежать
Даже опытные администраторы сталкиваются с проблемами при копировании базы 1С ЗУП. Вот TOP-5 ошибок и способы их решения:
- Ошибка «Файл повреждён» при открытии тестовой копии
Причина: Копирование «на лету» или прерванная выгрузка.
Решение: Используйте
Тестирование и исправлениев Конфигураторе или восстановите бэкап заново. - Тестовая база «не видит» пользователей
Причина: При восстановлении SQL-бэкапа не перенесены логины СУБД.
Решение: Создайте пользователей вручную через SSMS или скрипт:
CREATE LOGIN [1C_User] WITH PASSWORD='password';USE [ZUP_Test];
CREATE USER [1C_User] FOR LOGIN [1C_User];
EXEC sp_addrolemember 'db_owner', '1C_User';
- Размер тестовой базы в 2 раза больше оригинала
Причина: В SQL-бэкапе включены неиспользуемые индексы или старые данные.
Решение: Очистите базу перед копированием (удалите помеченные объекты через
Администрирование → Очистка базы).
🔹 Другие распространённые проблемы:
- 🔴 Ошибка лицензии — тестовая база требует отдельной лицензии 1С. Решение: используйте учебную лицензию или ключ для тестирования.
- 🔴 Медленная работа тестовой копии — проверьте настройки SQL-сервера (например, ограничение памяти для тестового экземпляра).
- 🔴 Не совпадают итоги в отчётах — возможно, в тестовой базе не пересчитаны регистры. Запустите
Пересчёт итоговв Конфигураторе.
Как ускорить работу тестовой базы?
1. Отключите фоновые задачи (например, регламентные задания).
2. Уменьшите период хранения данных в настройках ЗУП (например, оставьте только текущий год).
3. Для SQL-варианта создайте тестовую базу на SSD-диске и выделите ей не менее 4 ГБ оперативной памяти в настройках SQL Server.
FAQ: Частые вопросы по копированию базы 1С ЗУП
Можно ли скопировать базу 1С ЗУП без Конфигуратора?
Да, но с оговорками:
- Для файлового варианта — через побитовое копирование (
robocopy) или утилитуchdbfl.exe. - Для SQL-варианта — только через бэкап СУБД (SSMS,
pg_dump).
⚠️ Без Конфигуратора нет гарантии целостности данных, если база открыта пользователями.
Сколько места нужно для копии базы 1С ЗУП?
Зависит от размера оригинальной базы:
- Файловый вариант: копия займёт столько же места (+10% на временные файлы).
- SQL-вариант: бэкап (
.bak) обычно на 20–30% меньше оригинала за счёт сжатия.
💡 Совет: Перед копированием очистите базу от ненужных данных (архивные документы, логи).
Как перенести тестовую копию на другой компьютер?
Для файловой базы:
- Скопируйте файл
.dtили папку с базой на новый ПК. - Установите платформу 1С той же версии, что и оригинальная база.
- Создайте новую информационную базу и загрузите в неё
.dt.
Для SQL-варианта:
- Восстановите бэкап (
.bak) на целевом SQL-сервере. - Настройте подключение в 1С через
Администрирование → Информационные базы.
Что будет, если прервать копирование базы?
Последствия зависят от метода:
- Выгрузка через Конфигуратор: файл
.dtбудет повреждён. Удалите его и начните заново. - SQL-бэкап: файл
.bakможет быть неполным. Проверьте его целостность черезRESTORE VERIFYONLY. - Побитовое копирование: целевая папка будет в неконсистентном состоянии. Удалите её полностью перед повторной попыткой.
Нужно ли обновлять тестовую копию 1С ЗУП?
Да, если вы тестируете:
- Обновления конфигурации (например, переход на новую версию ЗУП).
- Изменения в расчётах зарплаты или кадровом учёте.
- Интеграцию с другими системами (например, 1С:Бухгалтерия или ЗГУ).
🔄 Обновляйте тестовую базу не реже 1 раза в квартал, чтобы данные оставались релевантными.