Конвертация данных 2. Структура в ХранилищеЗначения.
Ситуация:
КД 2.
У объекта метаданных есть реквизит типа ХранилищеЗначения.
В ХЗ лежит структура.
В значениях структуры - ссылки на элементы разных справочников.
Источник и приемник - конфигурации одинаковые.
Задача:
Передать реквизит из источника в приемник таким образом, чтобы
- в приёмнике в реквизите была ХЗ со структурой с теми же свойствами
- ссылки в значениях свойств были сконвертированы по ПКО для соответствующих справочников
Как такое сделать?
КД 2.
У объекта метаданных есть реквизит типа ХранилищеЗначения.
В ХЗ лежит структура.
В значениях структуры - ссылки на элементы разных справочников.
Источник и приемник - конфигурации одинаковые.
Задача:
Передать реквизит из источника в приемник таким образом, чтобы
- в приёмнике в реквизите была ХЗ со структурой с теми же свойствами
- ссылки в значениях свойств были сконвертированы по ПКО для соответствующих справочников
Как такое сделать?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Первый вариант, можно попробовать следующее: сериализовать данные ссылочных типов с помощью сериализатора XDTO, выгрузить всё в параметр, а при загрузке уже описывать логику поиска, замены для каждого поля и элемента из параметра. Такое будет работать, если полей немного, но если их более 10, то будет очень проблематично.
Второй вариант (более подходит для логики КД):
Создать ПКО с типом данных ХранилищеЗначений, с его помощью выгружать данные по команде ВыгрузитьПоПравилу()
Получать все его поля из входящих данных и выгружать в параметр, указывая ИмяПКО, по которому они будут конвертироваться, а в событиях при загрузке прописывать логику загрузки в какой-либо объект. См. рисунок.
Второй вариант (более подходит для логики КД):
Создать ПКО с типом данных ХранилищеЗначений, с его помощью выгружать данные по команде ВыгрузитьПоПравилу()
Получать все его поля из входящих данных и выгружать в параметр, указывая ИмяПКО, по которому они будут конвертироваться, а в событиях при загрузке прописывать логику загрузки в какой-либо объект. См. рисунок.
Прикрепленные файлы:

Нашел в сети ещё такой вариант:
Используется ПКО (правило конвертации объекта) самого справочника и два обработчика событий: "ПередВыгрузкой" и "ПослеЗагрузки". В обработчике "ПередВыгрузкой" в параметры записывается структура с использованием функции "ЗначениеВСтрокуВнутр", предварительно просматриваются все значения в структуре, и если какое то из них имеет сложный тип (не строка, или число и т.д.), то вызывается функция "ВыгрузитьПоПравилу", куда и передается это значение.
В обработчике "ПослеЗагрузки" из параметра достается структура путем вызова "ЗначениеИзСтрокиВнутр", и записывается в реквизит, используся создание нового хранилища значений.
В обработчике "ПослеЗагрузки" из параметра достается структура путем вызова "ЗначениеИзСтрокиВнутр", и записывается в реквизит, используся создание нового хранилища значений.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот