В процессе работы с программами на платформе 1С:Предприятие 8 пользователи и администраторы часто сталкиваются с ситуацией, когда документ был ошибочно удален из информационной базы, а его восстановление вручную требует огромных трудозатрат. В типовых конфигурациях, таких как Управление производственным предприятием (УПП) или Управление торговлей, в формах документов часто можно встретить кнопки выгрузки в XML. Однако попытка использовать эти кнопки для восстановления данных часто заводит в тупик.
В этой статье мы разберем, почему штатные кнопки в формах документов не всегда подходят для восстановления данных, и подробно изучим работу с универсальными инструментами, которые позволяют переносить объекты между базами с сохранением их уникальных идентификаторов.
Рассмотрим ситуацию, с которой сталкиваются многие: в форме документа (например, РеализацияТоваровУслуг или ЗаказПокупателя) есть функция «Выгрузить в XML» или «Отправить по электронной почте». Многие полагают, что это универсальный формат обмена, но это не так. Проанализируем, для чего предназначены эти кнопки.
Чаще всего этот функционал реализует стандарт CommerceML 2. Это международный стандарт обмена коммерческой информацией. Он предназначен для взаимодействия между разными учетными системами или между базой 1С и интернет-магазином. Основные особенности этого метода:
ТребованиеНакладная или ПеремещениеТоваров, обычно не поддерживаются этим механизмом, так как они не предназначены для передачи контрагентам.Именно поэтому, если мы выгрузим документ таким способом, мы не найдем в типовой конфигурации простой кнопки «Загрузить XML», которая бы мгновенно восстановила этот документ в исходном виде.
Для решения задачи восстановления удаленного документа из копии базы в оригинал (при условии, что конфигурации идентичны) следует использовать специализированный инструмент — обработку ВыгрузкаЗагрузкаДанныхXML.epf. Эту обработку можно найти на диске ИТС (Информационно-Технологическое Сопровождение).
Рассмотрим подробнее механизм ее работы. В отличие от CommerceML, эта обработка использует XDTO-сериализацию. Она буквально копирует состояние объекта из базы данных «как есть», включая скрытые технические поля и ссылки.
Разберем по шагам, как перенести документ из копии базы в рабочую базу:
ВыгрузкаЗагрузкаДанныхXML.epf.ТребованиеНакладная).Главное преимущество использования ВыгрузкаЗагрузкаДанныхXML.epf заключается в сохранении GUID (UUID) — уникального идентификатора объекта в базе данных. Проанализируем ситуацию: когда вы удаляете документ в 1С, во всех связанных регистрах и других документах, где на него была ссылка, появляется надпись <Объект не найден> (80:...).
Если вы создадите документ вручную заново, система присвоит ему новый GUID, и связи не восстановятся. Однако при использовании универсальной загрузки через XML:
GUID.Несмотря на мощь этого инструмента, выясним причины возможных неудач:
1. Идентичность конфигураций. Метод работает корректно только в том случае, если структура метаданных (имена реквизитов, типы данных в табличных частях) в обеих базах совпадает. Если вы пытаетесь перенести данные из УПП 1.3.100 в УПП 1.3.150, и за это время в документе добавились новые обязательные реквизиты, загрузка может пройти с ошибками или потерей данных.
2. Проведение документа. Выясним важный технический момент: XML-файл переносит данные самого документа, но не его движения по регистрам. После загрузки документ в базе будет числиться как «проведенный» (если он был таким при выгрузке), но записей в регистрах накопления или бухгалтерии может не быть. Поэтому после загрузки настоятельно рекомендуется:
Если вы работаете на современных версиях платформы 1С v8.3 с использованием Библиотеки стандартных подсистем (БСП), стоит рассмотреть формат EnterpriseData. Это современный стандарт обмена, который более гибок, чем жесткая сериализация. Он позволяет передавать данные даже между существенно различающимися конфигурациями (например, из ERP в Бухгалтерию предприятия).
Для разового переноса в современных интерфейсах «Такси» часто используются встроенные помощники «Загрузка данных из файла», которые позволяют загружать данные из Excel или XML, сопоставляя поля вручную. Однако для программиста и системного администратора старая добрая обработка ВыгрузкаЗагрузкаДанныхXML остается «золотым стандартом» при аварийном восстановлении объектов.
Таким образом, мы выяснили, что стандартная кнопка в форме документа — это инструмент бизнес-коммуникации (CommerceML), а для технических задач по миграции данных следует применять специализированные обработки, работающие на уровне сериализации объектов.