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

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

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

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

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