Имя: Пароль:
1C
 
Расширение универсального формата обмена данными.
0 kabv
 
16.05.25
15:52
Здравствуйте!
Обмен Бух-Erp 1.16.
В основной конфе в справочник номенклатуры добавлен новый реквизит "МойРеквизит".
В расширение конфы добавлены пакеты XDTO: EnterpriseData_1_16_2, ExchangeMessage.
Создан новый XDTO пакет EnterpriseData_1_16_2_ext с пространствои имен http://v8.1c.ru/edi/edi_stnd/EnterpriseDataExt/1.16.
В EnterpriseData_1_16_2_ext
    Директивы импорта:
        http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.16
        http://www.1c.ru/SSL/Exchange/Message
    Типы объектов:
        КлючевыеСвойстваНоменклатура
            МойРеквизит (с типом
                         string              
                        ( http://www.w3.org/2001/XMLSchema) )

В расширении в моделе МенеджерОбменаЧерезУниверсальныйФормат13
&ИзменениеИКонтроль("ДобавитьПКО_Справочник_Номенклатура_Отправка")
#Вставка    
ПространствоИмен = "http://v8.1c.ru/edi/edi_stnd/EnterpriseDataExt/1.16";
    ОбменДаннымиXDTOСервер.ИнициализироватьРасширениеПравилаКонвертацииОбъекта(ПравилоКонвертации, ПространствоИмен);
    ДобавитьПКС(СвойстваШапки, "МойРеквизит", "МойРеквизит",,, ПространствоИмен);
#КонецВставки

и &После("ПКО_Справочник_Номенклатура_Отправка_ПриОтправкеДанных")
Процедура Расш1_ПКО_Справочник_Номенклатура_Отправка_ПриОтправкеДанных(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки)
    ДанныеXDTO.КлючевыеСвойства.Вставить("МойРеквизит", ДанныеИБ.МойРеквизит);
КонецПроцедуры
В ОбменДаннымиПереопределяемый
&После("ПриПолученииДоступныхРасширенийФормата")
Процедура Расш1_ПриПолученииДоступныхРасширенийФормата(РасширенияФормата)
    РасширенияФормата.Вставить("http://v8.1c.ru/edi/edi_stnd/EnterpriseDataExt/1.16" , "1.16");
КонецПроцедуры

Отладчик по коду проходит.
МойРеквизит нет в файле выгрузки.

Вроде по статьям все правильно.

Почему не МойРеквизит в файле нет?
Заранее благодарен!
1 Гипервизор
 
16.05.25
15:59
В настройках поменялась версия формата обмена.
Например, при обмене из другой базы прилетает 1.17 и перезаписывает настройку.
2 kabv
 
16.05.25
16:05
Я только отправку проверяю. В настройках обмена версия формата 1.16 - та же. Но если добавить МойРеквизит в EnterpriseData_1_16_2 основной конфы, то выгружется.
А вот через расширение нет.
3 craxx
 
16.05.25
19:03
(2) ПакетXDTO в этом плане очень плохо с расширениями работает (аналогично Макету), поэтому надо его туда копировать с другим наименованием, и переопределять его вызов фабрикой.
4 kabv
 
17.05.25
15:32
Наверно, новые реквизиты лучше через аддишиналинфо пересылать?
5 Мультук
 
гуру
19.05.25
08:07
(4)
Я бы пересылал через additionalInfo. "Быстро/дешево/сердито"
Но ваш реквизит выгрузится только при непосредственной выгрузке "Номенклатура".

А если вы выгружаете "РеализацияТваровУслуг", то ключевые реквизиты номенклатуры выгрузятся, а ваш реквизит - нет.

А вот насколько он нужен в целевой базе
(может вы используете его  при проведении этой РТУ) -- известно только вам.


P.S.
Темы "Расширение универсального формата" периодически возникают на мисте,
но остаются без ответа.
6 Trucker
 
19.05.25
09:01
(0) А сам объект Справочник.Номенклатура добавлен в EnterpriseData_1_16_2_ext? И базовый тип у него должен быть Справочник.Номенклатура ( http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.16 )
7 kabv
 
19.05.25
10:05
Заработало. Спасибо.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс