Как передать и прочитать значение через AdditionalInfo

1. SLukin 48 20.08.20 12:12 Сейчас в теме
подскажите как правильно конвертировать значение реквизита "Направление деятельности" (Справочник "Направление деятельности") конфигурации ЕРП (В ЕРП это реквизит шапки документа) в реквизит "Номенклатурная группа" (Справочник "Номенклатурная группа") конфигурации Бухгалтерия (В бухгалтерии это значение строки табличной части).
В данный момент пошел путем передачи значения через AdditionalInfo.- ниже код

AdditionalInfoВставить(ДанныеXDTO, "НаправлениеДеятельности", Новый Структура("Значение, ИмяПКО", ДанныеИБ.НаправлениеДеятельности, "ПТД_НаправлениеДеятельностиВГруппуАналитическогоУч"));


Основная проблема с чтением значения на стороне Бухгалтерии. Прочитать значение и найти его по наименованию могу без проблем. Но не получается автоматически создать элемент "номенклатурной группы" если он отсутствует в базе приемнике.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
6. SLukin 48 20.08.20 16:02 Сейчас в теме
(4)
По данному варианту реализовал вот так

На стороне ЕРПИ поместил данные

AdditionalInfoВставить(ДанныеXDTO, "НаправлениеДеятельности", ДанныеИБ.НаправлениеДеятельности.Наименование);


На стороне Бухгалтерии прочитал, выполнил поиск, если не нашёл, то создал программно...

Если ДанныеXDTO.Свойство("AdditionalInfo") И ТипЗнч(ДанныеXDTO.AdditionalInfo)=Тип("Структура") Тогда //ED
		ДопДанные = ДанныеXDTO.AdditionalInfo;
		
		Если ДопДанные.Свойство("НаправлениеДеятельности") Тогда
			НаправлениеДеятельности = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(ДопДанные.НаправлениеДеятельности, Истина);
		    Если НаправлениеДеятельности.Пустая() И ДопДанные.НаправлениеДеятельности <> "" Тогда
				НовыйОбъект = Справочники.НоменклатурныеГруппы.СоздатьЭлемент();
				НовыйОбъект.Наименование = ДопДанные.НаправлениеДеятельности;
				НовыйОбъект.Записать();
				НаправлениеДеятельности = НовыйОбъект.Ссылка;
		    КонецЕсли;
		КонецЕсли;
		Если ДопДанные.Свойство("СкладМатериалов") Тогда
			СкладМатериалов = Справочники.Склады.НайтиПоНаименованию(ДопДанные.СкладМатериалов,Истина);
		КонецЕсли;
	КонецЕсли;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 20.08.20 14:40 Сейчас в теме
(1) Только кодом.
НГ = Справочники.НоменклатурныеГруппы.СоздатьЭлемент();
3. SLukin 48 20.08.20 14:58 Сейчас в теме
(2)
СоздатьЭлемент



Думал уже про это, но в типовых правилах нигде не видел такого метода.
Тем более при конвертации через ПКС если элемент в базе приемнике не найден, то он там появляется автоматически.
4. RustamZz 20.08.20 15:23 Сейчас в теме +1 $m
(3) На курсах так учат
Прикрепленные файлы:
6. SLukin 48 20.08.20 16:02 Сейчас в теме
(4)
По данному варианту реализовал вот так

На стороне ЕРПИ поместил данные

AdditionalInfoВставить(ДанныеXDTO, "НаправлениеДеятельности", ДанныеИБ.НаправлениеДеятельности.Наименование);


На стороне Бухгалтерии прочитал, выполнил поиск, если не нашёл, то создал программно...

Если ДанныеXDTO.Свойство("AdditionalInfo") И ТипЗнч(ДанныеXDTO.AdditionalInfo)=Тип("Структура") Тогда //ED
		ДопДанные = ДанныеXDTO.AdditionalInfo;
		
		Если ДопДанные.Свойство("НаправлениеДеятельности") Тогда
			НаправлениеДеятельности = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(ДопДанные.НаправлениеДеятельности, Истина);
		    Если НаправлениеДеятельности.Пустая() И ДопДанные.НаправлениеДеятельности <> "" Тогда
				НовыйОбъект = Справочники.НоменклатурныеГруппы.СоздатьЭлемент();
				НовыйОбъект.Наименование = ДопДанные.НаправлениеДеятельности;
				НовыйОбъект.Записать();
				НаправлениеДеятельности = НовыйОбъект.Ссылка;
		    КонецЕсли;
		КонецЕсли;
		Если ДопДанные.Свойство("СкладМатериалов") Тогда
			СкладМатериалов = Справочники.Склады.НайтиПоНаименованию(ДопДанные.СкладМатериалов,Истина);
		КонецЕсли;
	КонецЕсли;
Показать
5. Xershi 1535 20.08.20 15:54 Сейчас в теме
(1) проблема значит не в прочитать.
А что с этим делать.
Писать правило конвертации структуры в объект.
Как пример насколько помню договор.
7. SLukin 48 20.08.20 16:04 Сейчас в теме
(5)Есть пример кода откуда копать?
8. Xershi 1535 20.08.20 16:32 Сейчас в теме
(7) у наших локализаций написал пример договор.
в РФ может по другому.
9. RustamZz 20.08.20 16:38 Сейчас в теме
(8) Я думаю у вас для КД2 правила, а тут КД3 через XDTO.
11. Xershi 1535 20.08.20 18:04 Сейчас в теме
(9) в кд2 такие методы не используются.
10. SLukin 48 20.08.20 16:52 Сейчас в теме
Нашёл ПКО "Справочник_ДоговорыКонтрагентов_ИзСтруктуры" на стороне источника, но как его применить непонятно.
Нужен развернутый пример.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот