К основному контенту

Конвертация данных 2.1 - Подмена GUID в приемнике

 Вводная: в типовых правилах перехода есть правило конвертации объекта (ПКО) ПервичныйДокументИзСтруктуры. Для типового правила не предусмотрен поиск по GUID и следовательно его установка.

По одному из правил переноса остатков требовалось формировать Первичные документы с GUID исходных документов для возможности использования в будущей интеграции с другими системами.

Решение:

1. Добавить свойство ПКО с признаком "выгружать в параметр" и "использовать при поиске" - допустим имя УникальныйИдентификатор.

2. В обработчике свойства Перед выгрузкой пишем.

// Перед выгрузкой (Источник структура)
Источник.Свойство("УникальныйИдентификатор", Значение);
Значение = XMLСтрока(Значение);

3. Так в некоторых правилах обмена GUID может не требоваться, или в будущем будет принято решение отказаться от реализации. То флаг "Поиск по идентификатору" в свойствах ПКО не включаем (напомню источник у нас структура). И установим следующее правило поиска.

В будущем когда нужно будет отменить выгрузку ГУИД нужно будет передавать пустое значение.

// Обработчик ПКО "Поля поиска".
ГУИД = "";
Если Не ПараметрыОбъекта = Неопределено Тогда
    ГУИД = ПараметрыОбъекта.Получить("УникальныйИдентификатор");
КонецЕсли;

Если Не ПустаяСтрока(ГУИД) Тогда
   
    Если НомерВариантаПоиска = 1 Тогда
   
        СсылкаНаДокумент = Документы.ПервичныйДокумент.ПолучитьСсылку(Новый УникальныйИдентификатор(ГУИД));
        Если ОбщегоНазначения.СсылкаСуществует(СсылкаНаДокумент) Тогда
            СсылкаНаОбъект = СсылкаНаДокумент;
            ПрекратитьПоиск = Истина;
        Иначе
            СтрокаИменСвойствПоиска = "{УникальныйИдентификатор}";
            СвойстваПоиска.Вставить("{УникальныйИдентификатор}", ГУИД); // ГУИД для нового документа.
        КонецЕсли;
       
    Иначе
       
        ПрекратитьПоиск = Истина;
       
    КонецЕсли;  
       
КонецЕсли;

Комментарии

Популярные сообщения из этого блога

Схема компоновки данных. Вычисляемые поля. Разность дат

Как показала практика, вещь не очевидная что в запросе РАЗНОСТЬДАТ(Дата1,Дата2, МИНУТА) то в вычисляемых полях СКД: РАЗНОСТЬДАТ(Дата1,Дата2,"МИНУТА") Да, служебное слово для запроса в вычисляемом поле строковый параметр.

Подготовка к сертификации 1С:Профессионал (Платформа 8.3)

Очень долго избегал этого момента, но в связи со сменой места работы сертификация стала теперь для меня обязательной. Вот отличный сайт по подготовке, с комментариями по каждому из вопросов 1С Экзамен Подготовка к экзамену в 1С

Управляемые формы. Группа формы. Сворачиваемая и свойство Свернута

В конфигураторе в свойствах группы есть свойство "Свернута" не доступное через средства встроенного языка. И честно, уже не в первой вводит в ступор, чтобы не забывать, что и как Начиная с 8.3.12 введены следующие методы для программного управления поведением Версия 8.3.12 | Новые возможности и изменения | Управляемая форма Дальше фрагменты из Синтаксис помошника. Расширение группы формы для обычной группы Скрыть (Hide) Синтаксис: Скрыть() Описание: В зависимости от значения свойства Поведение группы: Обычное - никакие действия не выполняются, Свертываемая - сворачивает группу, Всплывающая - скрывает группу. Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер). Скрыта (Hidden) Расширение группы формы для обычной группы (Form group extension for a usual group) Скрыта (Hidden) Синтаксис: Скрыта() Возвращае...