Обработка Сравнение и объединение правил обмена имеет некоторые настройки, используя которые можно существенно расширить ее функционал.
Актуализация правил обмена в КД 2.1
В случае если между базами данных 1с настроен обмен с использованием правил обмена. То в результате доработки конфигураций или обновления на более актуальный релиз возникает задача актуализации правил обмена.
В случае если между базами данных 1с настроен обмен с использованием правил обмена. То в результате доработки конфигураций или обновления на более актуальный релиз возникает задача актуализации правил обмена.
Схематический процесс актуализации правил представлен далее:
Обращаю внимание, что первый пункт в данной схеме не актуален, если у вас в базе конвертация данных уже находятся правила обмена.
1С Конвертация данных
Для актуализации кода обработчиков на данный момент нет средств, для выявления синтаксических ошибок.
Правила обмена нужно сохранить в файл на диске, для этого нажмите «Сохранить правила» в форме настройки правил обмена.
Появится форма сохранения правил, в которой указывается файл сохранения правил обмена.
Теперь в форме элемента справочника настройки обмена данными, загружаем правила обмена в БД. Теперь можно провести обмен.
В файлах размещенных к скачиваю, последовательно рассказано как сохранить новую конфигурацию, заменить её в правилах обмена и доработать их в соответствии с новыми изменениями. Попытался обратить внимание на важные пункты при решении данной задачи.
Обработка Сравнение и объединение правил обмена имеет некоторые настройки, используя которые можно существенно расширить ее функционал.
Доступ к данным контейнеров
Схема 1. Схема взаимодействия компонент внутри конвертора:
, где список правил это IDictionary, в котором ключи string это пути к данным контейтера-назначения, например «Vehicle.Msrp»
Задача конвертера, произвести преобразование указанного объекта источника source в новый объект типа T в соответствии со списком правил.
Во время конвертации “источника” в “назначение”, конвертер выполняет следующие действия.
- Создает экземпляр типа Т (тип контейнера-назначения)
- Рекурсивно пробегает каждое поле и свойство целевого объекта типа T (контейнера-назначения), ищет для его соответствующее правила конвертации и выполняет инициализацию (присвоение значения вычисленные на основе правила). Если правила не найдено, но узел остается не заполненным.
Ниже представлена таблица настройки правила конвертации:
Программист 1C — Обмен данными через универсальный формат EnterpriseData. Настройка с помощью конфигурации Конвертация данных 3.0
Действующий прототип достоинства и проблемы
Для автоматической подгрузки сервисных библиотек-справочников (для обогащения данных, для многократно используемых справочников) мы внедрили IoC Autofac. Таким образом при конвертации большого количества однородных данных мы решили проблему лишней нагрузки на ввод-вывод и ускорили обработку.
Промокоды на Займер на скидки
Конвертация к объекту назначения происходит в один проход без лишних циклов.
Благодаря рекурсивности, есть возможность подстановки значения узла опционально “на выбор”. Данная опция весьма полезна для XML, когда структура одного тега зависит от другого (например от типа товара, заполняются разные теги — мы это активно используем при формировании XML в Amazon API).
Все настройки правил мы вынесли на Web интерфейс, что бы пользователи могли оперативно менять настройки. Настройки конвертаций сначала хранили в XML, но для удобства редактирования решили перенести в базу данных.
При всех достоинствах и недостатках, у нас таки получился желаемый “Универсальный конвертер данных на платформе .Net Framework”. Сейчас он активно работает в модулях публикации товаров на торгове площадки Amazon, Wallmart и другие, именно там требуется постоянный меппинг, конвертация и обогащение данных.
Net Framework есть готовые компоненты выполняющие десериализацию данных XML, с помощью которых получим экземпляр класса автоматично заполненный данными источника.
Конвертация данных 2.1 Из регистра в справочник
Источник пустой, т.к. в ЗУП в справочнике нет такого поля. Нюанс в том, что
1. в запросе Источник- это элемент справочника ЗУП ФизЛица.
2. Данные в Дату Регистрации передаются через переменную Значение.
Теперь адреса в ЗУП они хранятся в регистре КонтактнаяИнформация, а в БП в табличной части элемента справочника.
Добавляем через синхронизацию свойств табличную часть КонтактнаяИнформация. Источник оставляем пустым. На папке КонтактнаяИнформация выставляем флажок Получить из входящих данных.
Переходим на вкладку «Правило выгрузки данных» , открываем правило ФизическиеЛица
В обработчике «Перед обработкой» способ выгрузки выбираем Произвольный запрос. И пишем запрос.
СписокВидов = Новый СписокЗначений;
СписокВидов.Добавить(Справочники.ВидыКонтактнойИнформации.ФактАдресФизЛица);//проживание
СписокВидов.Добавить(Справочники.ВидыКонтактнойИнформации.ЮрАдресФизЛица);//прописка
Запрос.УстановитьПараметр(«Тип»,Перечисления.ТипыКонтактнойИнформации.Адрес);
Запрос.УстановитьПараметр(«СписокВидов»,СписокВидов);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
ФизЛица = РезультатЗапроса.Скопировать();
ФизЛица.Свернуть(«ФизическоеЛицо»);
Для Каждого СтрФз Из ФизЛица Цикл
Отбор = Новый Структура;
Отбор.Вставить(«ФизическоеЛицо»,СтрФз.ФизическоеЛицо);
НайденныеСтроки= РезультатЗапроса.НайтиСтроки(Отбор);
Выборка=Новый ТаблицаЗначений;
Выборка.Колонки.Добавить(«Тип»);
Выборка.Колонки.Добавить(«Вид»);
Выборка.Колонки.Добавить(«Представление»);
НоваяСтрока= Выборка.Добавить();
НоваяСтрока.Тип=СтрРез.Тип;
НоваяСтрока.Вид=СтрРез.Вид;
НоваяСтрока.Представление=СтрРез.Представление;
КонецЦикла;
ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить(«КонтактнаяИнформация», Выборка);
ВыгрузитьПоПравилу(СтрФз.ФизическоеЛицо, , ИсходящиеДанные, , «ФизическиеЛица»);
Заполняем структуру ИсходящиеДанные, где «КонтактнаяИнформация» это название табличной части приемника, т.е. справочника физлица в БП
И выгружаем по правилу.
В обработчике «Перед выгрузкой» пишем, что к группам наша выгрузка не относится.
Еще в ПКО ФизическиеЛица напишем, что уволенных и удаленных выгружать не будем.
Ну и в правиле справочника ВидыКонтактнойИнформации нужно синхронизировать пару свойств.
Обмен данными в 1С
Для упрощения будем рассматривать только следующие отличия — Последовательность полей поиска ПКО Контрагенты , добавленные ПКС Код и Комментарий ПКО ФизическиеЛица и обработчик события Перед выгрузкой объекта ПВД Договоры с контрагентами.
Создание правила для обмена между справочниками
Устанавливаем переключатель в третий пункт списка и нажимаем кнопку «Выполнить».
Мы попали в мастер настроек элемента справочника «Правила конвертации объекта» (Рис.9)
В базе-источнике мы должны выбрать объект, данные которого будут синхронизированы.
В базе приемнике – таблицу, куда эти данные будут попадать.
На следующем этапе нам предстоит определиться с параметрами загрузки:
- По каким реквизитам будет происходить поиск соответствия;
- Что делать с существующими элементами;
- Создавать ли отсутсвующие элементы;
- Как поступать со ссылками;
- Какие правила использовать для нумерации новых элементов.
Если мы решим выполнить автоматическое сопоставление данных, этот пункт мы пропустим.
В конце мы должны выгрузить созданные правила на диск.(Рис.10).
Определение правил
- MD77Exp.ert – позволяет сохранить в файл структуру конфигураци семерочной базы данных;
- MD82EXP.epf – выгуржает структуру баз данных, работающих на платформах версии 8.0-8.2;
- MD83EXP.epf – предназначена для платформы 8.3.
Создание правила для обмена между справочниками
Устанавливаем переключатель в третий пункт списка и нажимаем кнопку «Выполнить».
Мы попали в мастер настроек элемента справочника «Правила конвертации объекта» (Рис.9)
В базе-источнике мы должны выбрать объект, данные которого будут синхронизированы.
В базе приемнике – таблицу, куда эти данные будут попадать.
На следующем этапе нам предстоит определиться с параметрами загрузки:
- По каким реквизитам будет происходить поиск соответствия;
- Что делать с существующими элементами;
- Создавать ли отсутсвующие элементы;
- Как поступать со ссылками;
- Какие правила использовать для нумерации новых элементов.
Если мы решим выполнить автоматическое сопоставление данных, этот пункт мы пропустим.
В конце мы должны выгрузить созданные правила на диск.(Рис.10).
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы