Вход | Регистрация

1С:Предприятие ::

Метки: 

КД3. Событие ПриКонвертацииДанныхXDTO. Заполнение через ДополнительныеСвойства.

Я
   Rema Dan
 
19.06.18 - 14:08
В типовых правилах часто встречается, когда в событии ПриКонвертацииДанныхXDTO часть реквизитов документов заполняется напрямую:
    
    ВидСчетаФактуры = Неопределено;
    ДанныеXDTO.Свойство("ВидСчетаФактуры", ВидСчетаФактуры);
    ПолученныеДанные.Корректировочный = (ВидСчетаФактуры = "Корректировочный");
    
    СпособВыставления = Неопределено;
    ДанныеXDTO.Свойство("СпособВыставления", СпособВыставления);
    ПолученныеДанные.ВыставленВЭлектронномВиде = (СпособВыставления = "ВЭлектронномВиде");

Однако часть реквизитов заполняется в структуру ДополнительныеСвойства:
    
    Если МассивСтрокДокументы.Количество() > 0 Тогда
        ПолученныеДанные.ДополнительныеСвойства.Вставить("ДокументыОснования", МассивСтрокДокументы);
        Если МассивСтрокДокументы.Количество() = 1 Тогда
            ПолученныеДанные.ДополнительныеСвойства.Вставить("ДокументОснование", МассивСтрокДокументы[0].ДокументОснование);
        КонецЕсли;
    КонецЕсли;

В чём, собственно говоря, разница?
 
  Рекламное место пустует
   Rema Dan
 
1 - 19.06.18 - 15:51
UP
   HomoAlbus
 
2 - 19.06.18 - 15:56
Читаем матчасть (которой кот наплакал)

https://its.1c.ru/db/metod8dev/content/5846/hdoc

Полученное значение свойства помещается:
в структуру  ДанныеXDTO, если правило конвертации используется для отправки
в структуру ПолученныеДанные.ДополнительныеСвойства, если правило  конвертации используется для получения
   Rema Dan
 
3 - 19.06.18 - 16:23
Получается, что согласно документации получение данных работает следующим образом:
1. Если ПКО не указано явно в ПКС, то этот реквизит нужно помещать в ДополнительныеСвойства в виде Структура("Значение, ИмяПКО").
2. Получение т.ч. до КД 3.0.5 всегда работало через ДополнительныеСвойства.
3. При наличие КД 3.0.5+ и БСП 2.4.1+ появилась возможность заполнять реквизиты т.ч. без применения ДополнительныеСвойства.
4. Если в т.ч. есть реквизиты без ПКС, то их по прежнему нужно передавать через ДополнительныеСвойства.
Порядок заполнения:
1. Заполнение ПолученныеДанные из ДанныеXDTO (реквизиты + т.ч.) с применением ПКО явно указанных в ПКС.
2. Событие ПриКонвертацииДанныхXDTO с возможностью дозаполнить реквизиты ручками и заполнить ДополнительныеСвойства.
3. Перенос информации из ДополнительныеСвойства в ПолученныеДанные по динамически определённым ПКО.
   HomoAlbus
 
4 - 19.06.18 - 17:28
Да, вроде все верно описал


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует