В практике работы с платформой 1С периодически возникает ситуация, когда файл правил конвертации или обмена данными (в формате XML) оказывается случайно удален или утерян с диска. При этом в самой информационной базе или в загруженной внешней обработке V8Exchan82.epf обмен продолжает успешно функционировать. Рассмотрим подробнее, какими способами можно извлечь и восстановить исходный XML-файл правил обмена.
Разберем первоочередные места в самой конфигурации 1С, где могут храниться загруженные ранее правила конвертации:
ПравилаДляОбменаДанными). Из этого регистра двоичные данные правил можно сохранить на диск.Общие -> Планы обмена -> [Наименование обмена] -> Макеты. Найдем макет с именем ПравилаОбмена или ПравилаОбменаКорреспондента, скопируем его содержимое и сохраним в текстовый файл с расширением XML.Проанализируем структуру XML-файла выгрузки данных, если обмен уже выполнялся ранее. Если при настройке выгрузки через обработку V8Exchan82.epf был установлен флаг включения правил обмена в итоговый файл, то полный текст правил конвертации интегрируется непосредственно в сформированный файл обмена.
Для восстановления выполним следующие шаги:
.xml.При чтении и распаковке правил обработка выгрузки может создавать временные копии на локальном диске пользователя. Выясним, где именно их искать:
Перейдем в каталог временных файлов операционной системы (папка %TEMP%). Если сеанс 1С еще не закрывался или ПК не перезагружался, в этой папке можно обнаружить временные файлы с расширениями .tmp или .xml, содержащие структуру правил обмена.
Если внешняя обработка V8Exchan82.epf открыта в текущем сеансе, дерево правил и структура обмена находятся в оперативной памяти объекта обработки. В таком случае выгрузить их можно несколькими техническими способами:
V8Exchan82.epf в Конфигураторе и найдем программный код обработчика кнопки выгрузки или загрузки правил. Установим точку останова в месте, где правила считываются в оперативную память. Запустив сеанс в режиме отладки, поймаем момент, когда XML-структура находится в переменной, и сохраним её на диск.ЗаписьXML, выгрузим дерево правил обратно в файл:
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\Rules.xml", "UTF-8");
// Программно записываем структуру правил из реквизита обработки
// ...
ЗаписьXML.Закрыть();
Обратим внимание на следующие важные особенности работы внешней обработки обмена:
Внешняя обработка V8Exchan82.epf работает с правилами в оперативной памяти текущего сеанса. Если правила не сохранялись в справочниках базы данных или встроенных макетах, то после закрытия формы обработки и завершения сеанса 1С восстановить их из оперативной памяти будет невозможно. Поэтому извлечение данных необходимо выполнять до закрытия обработки.