При подготовке файловой базы 1С:Предприятия 7.7 к переносу данных в 1С 8 многие специалисты сталкиваются с критической ошибкой: при запуске штатной процедуры через пункт меню «Администрирование — Выгрузить данные» процесс зависает, а результирующий текстовый файл 1Cv77.dat начинает стремительно раздуваться. База, занимающая в исходном состоянии около 2 ГБ, способна заполнить свободное пространство жесткого диска до сотен гигабайт (например, до 300–350 ГБ), пока операция не завершится аварией из-за нехватки свободного места.
Разберем детально, почему происходит такой сбой, какие ограничения платформы 1С 7.7 его вызывают и как правильно скопировать информационную базу для последующего переноса остатков и справочников в 1С:Предприятие 8.
Штатная выгрузка конфигуратора 1С 7.7 представляет собой процесс последовательного сканирования таблиц базы данных и записи информации в единый неструктурированный поток 1Cv77.dat, который на финальной стадии сжимается встроенным архиватором в файл .zip. Аномальный рост файла выгрузки до сотен гигабайт вызван следующими факторами:
0x1A), либо нарушена целостность цепочек записей, штатный механизм обхода таблицы попадает в бесконечный цикл. Платформа начинает бесконечно считывать одни и те же блоки или циклический мусор и записывать их в файл 1Cv77.dat, пока на накопителе не закончится место..dbf не может превышать 2 147 483 647 байт (2 ГБ). Если таблицы бухгалтерских итогов (1SBKTTL.DBF), итогов регистров (RG*.DBF) или общего журнала (_1SJOURN.DBF) приближаются к 1.8–2.0 ГБ, платформа начинает сбоить, искажать данные при чтении и вызывать ошибки ввода-вывода.1Cv77.dat превысит этот рубеж, создание выгрузки в любом случае завершится сбоем.Проанализируем назначение штатных средств платформы. Пункт «Администрирование — Выгрузить данные» (с созданием 1Cv77.dat) создавался исключительно для одной задачи: конвертации информационной базы между различными СУБД — из формата DBF в формат Microsoft SQL Server и обратно.
Для создания обычной резервной копии или для переноса базы на другой компьютер данная процедура не просто избыточна, но и опасна при больших объемах информации. Более того, для переноса остатков и справочников в программы 1С:Предприятие 8 файл выгрузки конфигуратора 7.7 вообще не применяется.
Рассмотрим, как правильно скопировать рабочую базу 1С 7.7 для переноса остатков, полностью исключив зависания и нехватку дискового пространства.
*.cdx. Это решает сразу две задачи: освобождает гигабайты дискового пространства для передачи базы по сети и сбрасывает потенциально поврежденные индексы, устраняя зацикливание при последующей работе.*.dbf (содержат сами данные).1Cv7.MD (структура конфигурации).1Cv7.DD (описание структуры файлов DBF). Если этот файл отсутствует, платформа способна воссоздать его при сохранении конфигурации, однако крайне желательно скопировать его вместе с 1Cv7.MD.SYSLOG, папки пользователей UsrDef и внутренние каталоги с внешними формами), если они не требуются напрямую. Часто именно во вложенных папках накапливаются гигабайты временных файлов.*.cdx.После того как папка с базой 1С 7.7 скопирована на компьютер, где будет выполняться перенос, выберем один из штатных вариантов интеграции:
.dbf и 1Cv7.MD. Подключение выполняется через OLE/COM-объект V1CEnterprise.Application в фоновом режиме без промежуточных файлов выгрузки.V77Exp.ert) по правилам конвертации данных.Разберем правила безопасной выгрузки через обработку, если база работает нестабильно:
Попытка спасти ситуацию путем формирования отчета по остаткам (например, остатков ТМЦ) и его экспорта в XLS часто приводит к зависанию. Проанализируем, почему это происходит:
.xls), который имеет фундаментальное ограничение: ровно 65 536 строк. Если отчет по номенклатуре с детализацией по складам и партиям превышает это количество строк, конвертер платформы «намертво» зависает или аварийно закрывает программу.Для корректного получения данных через отчеты разделим выборку: сформируем отчеты не по всей базе целиком, а отдельными порциями — по конкретным складам, счетам или группам справочника номенклатуры.