Перенос реквизитов объектов между базами


Обработка, позволяющая перенести некоторые реквизиты объектов ссылочного типа между базами-потомками

Предыстория

Данную обработку пришлось создать в связи с тем, что в рабочей базе у одного документа был сменен тип реквизита Строка -> Справочник.Контрагенты. В связи с этим, все данные записанные в этом реквизите соответственно были приведены к типу СправочникСсылка.Контрагенты, т.е. информация была потеряна. Решением было или использоваться конфигурацию Конвертация данных 2, или писать свою обработку на скорую руку. Обработка ЗагрузкаДанныхИзТабличногоДокумента с диска ИТС, к сожалению, не умеет загружать данные в Документы, только в их табличные части.

Назначение обработки

Обработка предназначена для переноса некоторых(выбранных), реквизитов объектов ссылочного типа (Справочники, Документы и т.д.) между базами-потомками(копиями одной базы). Обработка будет полезна при восстановлении частично утерянных данных из базы копии. Сопоставление объектов происходит по ссылке.

Обработка написана на обычных формах.

Альтернативы

В качестве альтернативного решения могу предложить использовать конфигурацию Конвертация данных 2. Настроить правила обмена между конфигурациями-потомками не составит труда. Правда, в моем случае выгрузка информации о метаданных из конфигурации-потомка и последующая загрузка их занимала бы много времени (УПП 1.3 с доработками)

Порядок работы

  1. Открываем обработку в базе источнике(откуда будем переносить данные);
  2. С помощью кнопки "Заполнить", вызываем форму написания запроса. В этой форме составляем запрос (можно с помощью конструктора). В выходных полях запроса обязательно должно присутствовать поле Ссылка, остальные выбранные поля должны соответствовать названиям полей в базе приемнике;
  3. Выполняем запрос, кнопкой Выполнить. Смотрим на результат, если все хорошо, жмем — ОК. Таблица будет перенесена в основную форму;
  4. В поле Имя файла указываем xml-файл, в который будут выгружены данные;
  5. Жмем кнопку Выгрузить. При этом таблица сериализуется в xml-файл;
  6. Открываем эту же обработку в базе приемнике (данные объектов которой необходимо обновить);
  7. В поле Имя файла указываем xml-файл, в который только что был создан;
  8. Жмем кнопку Загрузить. Будут загружены данные в таблицу на форме,
  9. Жмем кнопку Записать в БД. По данным из таблицы по полю Ссылка будет получен объект и заполнены все его свойства совпадающие по именам.

При записи в базу данных для каждой строки таблицы выполняется следующий код:

ДокументОбъект = СтрокаТЗ.Ссылка.ПолучитьОбъект();
ЗаполнитьЗначенияСвойств(ДокументОбъект, СтрокаТЗ,, "Ссылка");
ДокументОбъект.ОбменДанными.Загрузка = Истина;
ДокументОбъект.Записать();

Проверял на платформе 8.2.19, 8.3.11

2 Comments

  1. Narina

    Очень помогло! Спасибо!

    Reply
  2. maksimkatula

    Норм так, тоже помогло, спасибо!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *