Выпуск №87. Заметки по конвертации данных в 1С
|
|
В этом выпуске оставил для себя куски кода и скрины по работе с конфигурацией 1С "Конвертация данных", на примере правил выгрузки Отчетов о розничных продаж как реализации и Поступлений ТМЗ, в обмене между базами Аптека и Бухгалтерия для Казахстана
Через Объект конфигурации «Узел обмена», можно получить параметры из базы, которые можно будет потом использовать в правилах

Параметры узла обмена (параметры выгрузки данных, можно сказать Глобальные переменные), добавляются в правила конвертации в раздел «перед выгрузкой данных»
Параметры выгрузки получаем из запроса на вкладке «Алгоритмы/запросы». Сверху алгоритмы, снизу запросы

Перед выгрузкой любого документа или справочника можно выполнить пакет запросов или запрос, передав ему необходимые параметры в разделе «Перед выгрузкой» и полученные данные передать в структуру входящие данные

В разделе «После загрузки», можно выполнять алгоритмы, которые прописаны на вкладке «Алгоритмы/Запросы».
Здесь можно заполнить документ, используя процедуры приемника

После выгрузки можно также выполнять алгоритмы (алгоритмы ложим в папки «Выгрузка данных», «Загрузка данных» для порядка). Например, данные справочника источника («конт.информация») выгружаем в одноименный регистр сведений приемника (на примере контрагента):
В алгоритме описываем таблицу набора записей и отбор, перебираем в цикле справочник из источника:
Отбор = Новый ТаблицаЗначений;
Отбор.Колонки.Добавить("Имя");
Отбор.Колонки.Добавить("Значение");
Отбор.Колонки.Добавить("Использование");
СтрокаОтбора = Отбор.Добавить();
СтрокаОтбора.Имя = "Объект";
СтрокаОтбора.Значение = Объект.Ссылка;
СтрокаОтбора.Использование = Истина;
Строки = Новый ТаблицаЗначений;
Строки.Колонки.Добавить("Ссылка");
Строки.Колонки.Добавить("Объект");
Строки.Колонки.Добавить("Вид");
Строки.Колонки.Добавить("Тип");
Строки.Колонки.Добавить("Поле1");
……..
// Заполняем строки
………..
// Выгрузка набора записей
// создаем виртуальный набор записей
НаборЗаписей = Новый Структура("Отбор, Строки");
НаборЗаписей.Отбор = Отбор;
НаборЗаписей.Строки = Строки;
ВыгрузитьРегистр(НаборЗаписей, , , Истина, "КонтактнаяИнформация");

В Правилах выгрузки данных, добавляем после выгрузки

В самой конвертации в разделе «Перед конвертацией объекта», нужно объявить ВходящиеДанные

Ко всем объектам можно применить разные правила выгрузки. В правилах выгрузки может быть использовано несколько правил конвертации для одного объекта. Чтобы использовать в правилах выгрузки те или иные правила конвертации нужно их предварительно настроить на первой вкладке


Лучше отказываться от автоматического создания правил и аккуратно синхронизировать объекты и свойства вручную
Все выгружаемые свойства объекта источника синхронизируем со свойствами приемника. Также можно передать данные в Параметр

Алгоритмы можно применять в правилах конвертации свойств, например зашивать фиксированные значения и пр.

Если в Приемнике нет таблицы, то описываем правило конвертации группы. В разделе «Перед обработкой» создаем таблицу значений

Затем каждое значение фиксируем по возможности «перед выгрузкой», в правилах конвертации свойств

Оставшиеся не заполненные поля в приемнике, можно заполнить после выгрузки объекта

Если мы хотим избежать дублей при загрузке справочников, то нужно поставить галочку, чтобы искал по наименованию, если не найдет по ГУИД



















Добавить комментарий (через VK):