Имя: Пароль:
1C
 
Расширение xdto-пакета и смена версии обмена
0 salvator
 
15.06.26
21:55
Приветствую!
Возник такой вопрос. Есть расширение xdto-пакета для обмена через универсальный формат. Типовая конфигурация обновилась и номер версии актуального xdto изменился. Нужно ли делать расширение xdto-пакета для новой версии? В настройках плана обмена автоматом версия самая новая устанавливается при обмене.
1 Garykom
 
гуру
15.06.26
22:23
Когда вмешиваются на таком уровне обычно делают копию нужного типового xdto-пакета со своим префиксом
И перекрыв расширением нужные общие модуля фиксируют обмен на этом своем пакете
Чтобы типовые обновления конфы не ломали
2 salvator
 
15.06.26
22:46
(1) Не совсем понял. Общий модуль "МенеджерОбменаЧерезУниверсальныйФормат" один для всех версий.
3 Garykom
 
гуру
15.06.26
23:29
(2) Если БП то ОбменДаннымиПереопределяемый.ПриПолученииДоступныхВерсийФормата
перекрываешь в расширении
И оставляешь только свою копию xdto-пакета

Если ЕРП/КА/УТ11 то ОбменДаннымиЛокализация.ПриПолученииДоступныхВерсийФормата

Как свой пакет указать там разберешься, там на основе синонима к номеру версии можно свой постфикс приписать
И указать свой префикс_МенеджерОбменаЧерезУниверсальныйФормат

По сути "шаг 10" тут
https://infostart.ru/1c/articles/2055297/
4 salvator
 
15.06.26
23:41
(4) Это понятно все, так уже сделано. Вопрос-то в другом. На примере статьи этой. Расширение первоначально сделано для XDTO "EnterpriseData_1_8_6". Через какое-то время типовым обновлением в конфу добавляется XDTO "EnterpriseData_1_9_0", условно. Версия формата выгрузки меняется на 1.9 (там максимально возможная всегда устанавливается). Так вот делать еще одно расширение для пакета 1.9.0 по аналогии с ранее созданным 1.8.6 или нет?
5 Garykom
 
гуру
15.06.26
23:53
(4) Уже написал
Когда был "EnterpriseData_1_8_6" ты же его скопировал в конфе со своим префиксом же да?

Сделал "sal_EnterpriseData_1_8_6" и номер версии в синониме сделал же "1.8.6.sal" да?
Который и указал
&Вместо("ПриПолученииДоступныхВерсийФормата")
Процедура sal_ПриПолученииДоступныхВерсийФормата(ВерсииФормата)
	 ВерсииФормата.Вставить("1.8.6.sal", sal_МенеджерОбменаЧерезУниверсальныйФормат); 
КонецПроцедуры
6 Garykom
 
гуру
15.06.26
23:54
(5)+ И теперя тебе же глубоко пофиг что "типовым обновлением в конфу добавляется XDTO "EnterpriseData_1_9_0", условно"

Можно конечно взять новый "1.9.0" и аналогично его с перфиксом, добавить внутря свое снова и указать его использование
Но зачем?

Ты же тупо можешь сравнить новый "1.9.0" со своим "1.8.6.sal"
Экспорт пакета сделай в файлы, и сравни внешним
Добавь/измени что надо и обратно в свой "1.8.6.sal"

В итоге у тебя старый твой пакет но есть все от нового
7 salvator
 
16.06.26
00:03
(5) Не совсем так. Основной пакет заимствован в расширение, модуль менеджера обмена типовой, от него заимствованы нужные обработчики и прописаны правила для новых полей. По аналогии со статьей https://its.1c.ru/db/metod8dev/content/6013/hdoc
8 Garykom
 
гуру
16.06.26
00:07
(7) Лучше целиком пакет копировать - нет привязки к изменениям/обновлениям типового
Один хрен ты МенеджерОбменаЧерезУниверсальныйФормат сильно начнешь лопатить, так что с типовым пакетом оно не будет работать

Ну или не трогать xdto-пакеты и все делать через AdditionalInfo
Жаль такое не всегда можно, бывает надо новые сущности добавлять
Но когда через AdditionalInfo то тебе пофиг на версии пакетов, лишь бы сама сущность была
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший