При администрировании баз данных 1С:Предприятия 7.7 часто возникает задача регулярного создания резервных копий или выгрузки данных для переноса на другой сервер. Ручное выполнение операции через пункт меню Администрирование — Выгрузить данные отнимает много времени, поэтому автоматизация данного процесса через планировщик задач является типовой необходимостью. Разберем основные способы реализации автоматической выгрузки, ограничения штатных механизмов на больших объемах данных и альтернативные решения средствами СУБД.
Платформа 1С 7.7 поддерживает запуск Конфигуратора в пакетном (командном) режиме с передачей управляющего файла сценария. Проанализируем, как настроить данный механизм по шагам.
Создание файла параметров: Создадим текстовый файл с расширением .prm (например, unload_script.prm), в котором укажем секции и параметры выгрузки:
[General]
Output=C:\Backups\Log\unload.log
Quit=1
UnloadData=1
[UnloadData]
UnloadToFile=C:\Backups\Dump_Base.zip
IncludeUserDef=1
Параметр Quit=1 обеспечивает автоматическое завершение работы Конфигуратора после выполнения операции, UnloadData=1 активирует режим выгрузки данных, а IncludeUserDef=1 включает в выгрузку список пользователей и их права.
Формирование командной строки запуска: В планировщике задач Windows (Task Scheduler) или в исполняемом командном файле .bat настроим запуск исполняемого файла 1С:
"C:\Program Files\1Cv77\BIN\1cv7s.exe" config /D"C:\1CBases\Trade" /N"Admin" /P"Password" /@"C:\1CBases\unload_script.prm"
Здесь параметр config указывает на запуск в режиме Конфигуратора, ключ /D задает путь к каталогу информационной базы, /N и /P — имя пользователя и пароль с правами администратора, а ключ /@ указывает путь к файлу сценария.
Важные требования для пакетного режима:
Рассмотрим сложности, возникающие при обработке информационных баз размером свыше нескольких гигабайт (например, 40 ГБ):
zip32.dll в 1С 7.7 имеет ограничение на размер формируемого архива и файла 1Cv7.DAT (до 2–4 ГБ). Превышение этого объема приводит к аварийному завершению процесса выгрузки.1Cv7.DAT содержит исходные таблицы без рассчитанных итогов регистров. При обратной загрузке данных в пустую базу требуется полный пересчет служебных таблиц и итогов, что на больших базах может занимать несколько часов.Если цель выгрузки — регулярный перенос рабочей копии базы с одного SQL-сервера на другой (например, с MS SQL Server 2000 на MS SQL Server 2008), использование механизма Выгрузить данные является наименее оптимальным путем. Намного эффективнее использовать прямое резервное копирование средствами СУБД.
Разберем технические особенности переноса:
.bak), созданных в MS SQL Server 2000 (уровня пакетов обновления SP3a/SP4). База успешно восстанавливается командой RESTORE DATABASE, автоматически повышая внутренний формат таблиц до версии 2008.BkEnd.dll и поместить пустой файл OrdNoChk.prm в каталог базы для отключения проверки порядка сортировки (Collation).