Предыстория
Данную обработку пришлось создать в связи с тем, что в рабочей базе у одного документа был сменен тип реквизита Строка -> Справочник.Контрагенты. В связи с этим, все данные записанные в этом реквизите соответственно были приведены к типу СправочникСсылка.Контрагенты, т.е. информация была потеряна. Решением было или использоваться конфигурацию Конвертация данных 2, или писать свою обработку на скорую руку. Обработка ЗагрузкаДанныхИзТабличногоДокумента с диска ИТС, к сожалению, не умеет загружать данные в Документы, только в их табличные части.
Назначение обработки
Обработка предназначена для переноса некоторых(выбранных), реквизитов объектов ссылочного типа (Справочники, Документы и т.д.) между базами-потомками(копиями одной базы). Обработка будет полезна при восстановлении частично утерянных данных из базы копии. Сопоставление объектов происходит по ссылке.
Обработка написана на обычных формах.
Альтернативы
В качестве альтернативного решения могу предложить использовать конфигурацию Конвертация данных 2. Настроить правила обмена между конфигурациями-потомками не составит труда. Правда, в моем случае выгрузка информации о метаданных из конфигурации-потомка и последующая загрузка их занимала бы много времени (УПП 1.3 с доработками)
Порядок работы
- Открываем обработку в базе источнике(откуда будем переносить данные);
- С помощью кнопки "Заполнить", вызываем форму написания запроса. В этой форме составляем запрос (можно с помощью конструктора). В выходных полях запроса обязательно должно присутствовать поле Ссылка, остальные выбранные поля должны соответствовать названиям полей в базе приемнике;
- Выполняем запрос, кнопкой Выполнить. Смотрим на результат, если все хорошо, жмем - ОК. Таблица будет перенесена в основную форму;
- В поле Имя файла указываем xml-файл, в который будут выгружены данные;
- Жмем кнопку Выгрузить. При этом таблица сериализуется в xml-файл;
- Открываем эту же обработку в базе приемнике (данные объектов которой необходимо обновить);
- В поле Имя файла указываем xml-файл, в который только что был создан;
- Жмем кнопку Загрузить. Будут загружены данные в таблицу на форме,
- Жмем кнопку Записать в БД. По данным из таблицы по полю Ссылка будет получен объект и заполнены все его свойства совпадающие по именам.
При записи в базу данных для каждой строки таблицы выполняется следующий код:
ДокументОбъект = СтрокаТЗ.Ссылка.ПолучитьОбъект();
ЗаполнитьЗначенияСвойств(ДокументОбъект, СтрокаТЗ,, "Ссылка");
ДокументОбъект.ОбменДанными.Загрузка = Истина;
ДокументОбъект.Записать();
Проверял на платформе 8.2.19, 8.3.11