В процессе работы с 1С:Предприятие 8.3, в частности с конфигурацией Управление торговлей 11, случаются ситуации, когда часть данных (например, кассовые или банковские документы) оказывается повреждена или случайно удалена. Восстановление всей базы из резервной копии — не всегда оптимальный вариант, так как за время, прошедшее с момента создания бэкапа, в рабочей базе могли быть введены сотни новых документов в других разделах. В такой ситуации необходимо выполнить выборочный перенос данных. Разберем основные способы решения этой задачи, проанализируем их плюсы и минусы, а также изучим технические тонкости процесса.
Это классический и наиболее надежный метод для восстановления данных между базами с абсолютно идентичной конфигурацией. Рассмотрим подробнее, как работает этот инструмент. Обработка ВыгрузкаИЗагрузкаДанныхXML.epf обычно входит в состав инструментов разработчика или поставляется на диске ИТС.
Основное преимущество этого метода заключается в том, что при работе с идентичными конфигурациями нам не требуется создавать правила обмена в «1С:Конвертация данных». Проанализируем алгоритм действий:
ПриходныйКассовыйОрдер, РасходныйКассовыйОрдер, ПоступлениеБезналичныхДенежныхСредств и СписаниеБезналичныхДенежныхСредств.GUID, что позволит сохранить связи в других документах.Выясним причину, почему иногда после загрузки данные не отображаются в отчетах. Это происходит потому, что обработка просто записывает данные в таблицы, но не всегда корректно восстанавливает движения по регистрам. Поэтому после загрузки документы необходимо выделить в списке и выполнить команду «Провести».
В современных версиях 1С:Управление торговлей 11 встроен мощный механизм обмена через универсальный формат. Мы можем использовать его для переноса объектов, даже не прибегая к внешним обработкам. Рассмотрим этот сценарий совместной работы с механизмами платформы:
В рабочей базе и базе-бэкапе можно настроить синхронизацию данных через «Универсальный формат». Однако, вместо полной настройки обмена, воспользуемся обработкой «Регистрация изменений для обмена». Проанализируем шаги:
Преимущество EnterpriseData перед простым XML в том, что этот механизм более интеллектуально обрабатывает зависимости объектов и лучше интегрирован в логику бизнес-процессов современных конфигураций.
Если нам нужно восстановить большое количество документов с очень сложными фильтрами или выполнить дополнительную проверку данных «на лету», разберем программный метод. Мы можем написать небольшую внешнюю обработку, которая подключится к базе-бэкапу через COMConnector.
Посмотрим на пример кода, который иллюстрирует принцип подключения и поиска документа:
// Создаем соединение с базой-бэкапом
Connector = Новый COMОбъект("V83.COMConnector");
ПутьКБазе = "File=""C:\Backup\UT11_Copy"";Usr=""Admin"";";
БазаКопия = Connector.Connect(ПутьКБазе);
// Ищем документ в копии по номеру и дате
ДокКопия = БазаКопия.Документы.ПриходныйКассовыйОрдер.НайтиПоНомеру("0001", ДатаДокумента);
Если Не ДокКопия.Пустая() Тогда
// Получаем XML-представление объекта из копии
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
БазаКопия.XMLТипЗнч(ДокКопия);
БазаКопия.ЗаписатьXML(ЗаписьXML, ДокКопия);
// Здесь логика загрузки в текущую базу через XMLПоследовательность
КонецЕсли;
Проанализируем ситуацию: использование COM-соединения позволяет нам напрямую обращаться к данным бэкапа как к объектам, что дает максимальную гибкость. Мы можем сравнивать реквизиты документа в рабочей базе и в бэкапе и перезаписывать только те поля, которые были изменены или очищены.
При выборочном восстановлении данных мы должны быть крайне осторожны с зависимыми объектами. Разберем по шагам, на что обратить внимание:
ДенежныеСредстваНаличные, РасчетыСКлиентами). Проанализируем ситуацию: если после загрузки вы видите документ в списке, но сумма не отражается в ведомости по денежным средствам, значит, документ не проведен или движения не перенеслись. Рекомендуется использовать групповое перепроведение.GUID. В результате все старые связи (например, в документах реализации, которые ссылались на этот авансовый платеж) останутся «битыми» (вы увидите надпись <Объект не найден>). Пользуйтесь только инструментами переноса, сохраняющими идентификаторы.Подводя итог нашему разбору, можно сказать, что для большинства случаев в УТ 11.2 идеальным решением является использование обработки Выгрузка и загрузка данных XML. Она проста в освоении и эффективно решает задачу при условии соблюдения идентичности конфигураций.
Рассмотрим финальный чек-лист перед началом работ: 1. Сделайте свежий бэкап рабочей базы. Даже если вы восстанавливаете данные, всегда есть риск сделать что-то не так. 2. Проверьте версии конфигураций. Если рабочая база была обновлена после создания бэкапа, используйте режим сравнения метаданных. 3. Тестируйте на копии. Попробуйте перенести один документ и проверьте его движения и связи. 4. Не забудьте про перепроведение. После массовой загрузки убедитесь, что документы «легли» в учет и отчеты показывают верные остатки.
Совместная работа с инструментами платформы 1С требует внимательности к деталям, но позволяет выйти из сложных ситуаций с потерей данных с минимальными затратами времени.