Реквизит в дополнительный реквизит

1. applesound 1 08.01.19 20:48 Сейчас в теме
Добрый день.
Выгружаю данные из дописанной ТиС 7.7 в 1сРозница.Магазин одежды.
Использую: Конвертация данных 2.1.8.2
Необходимо выгрузить некоторые реквизиты номенклатуры в дополнительные реквизиты номенклатуры.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. maks_20 164 09.01.19 08:59 Сейчас в теме
Вопрос в том, как это сделать? доп реквизиты хранятся в таб части объекта. Соответственно, перед выгрузкой формируйте таблицу значений с нужным реквизитом. далее передаете ее во входящие данные, а уже в ПКО берете тч из входящих данных.

Вот для примера:

Если ТипЗнч(ВходящиеДанные)<> Тип("Структура") Тогда
	ВходящиеДанные = Новый Структура;
КонецЕсли;
ДополнительныеРеквизиты = Новый ТаблицаЗначений;
ДополнительныеРеквизиты.Колонки.Добавить("Значение");
ДополнительныеРеквизиты.Колонки.Добавить("Свойство");
ДополнительныеРеквизиты.Колонки.Добавить("ТекстоваяСтрока");


//Наименование 1
НоваяСтрока = ДополнительныеРеквизиты.Добавить();
НоваяСтрока.Значение = Источник.ПолеНаименования1;
НоваяСтрока.Свойство = "Наименование1";
НоваяСтрока.ТекстоваяСтрока = "";
ВходящиеДанные.Вставить("ДополнительныеРеквизиты", ДополнительныеРеквизиты);
Показать

Также нужно для плана видов характеристик ДополнительныеРеквизитыИСведения сделать ПКО, поиск по удобному для вас полю, я например делаю по наименованию, беру его из источника. При необходимости могу скрин скинуть для примера.
michaelbag; +1 Ответить
3. applesound 1 09.01.19 11:03 Сейчас в теме
(2)
его из источника.

Скиньте скрин.
4. maks_20 164 09.01.19 11:44 Сейчас в теме
(3) настройка на скрине, в самом ПКС для наименования перед выгрузкой Значение = Источник;
Прикрепленные файлы:
5. applesound 1 09.01.19 12:10 Сейчас в теме
Не так давно начал конвертацию изучать. Возможно некоторые вопросы покажутся странными...
1. Создал ПКО "ДополнительныеРеквизитыИСведения"
Объект-приемник: ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения
Объект-источник: пусто
2. В созданном ПКО создал ПКС
Приемник: Наименование
Источник: пусто
галка Поиск объекта при загрузке по свойтсву
Перед выгрузкой: Значение = Источник;
Далее необходимо перейти в ПКО номенклатура, провалиться в ПКГС Дополнительные реквизиты и в одином из ПКС (Значение, Свойство, Текстовая строка) в правиле указать созданное ПКО ?
6. maks_20 164 09.01.19 14:12 Сейчас в теме
(5) ПКО "ДополнительныеРеквизитыИСведения" указываете в ПКС для Свойство в таб части ДополнительныеРеквизиты, для значения у вас будет свое ПКО, либо не будет правила вообще, если это простые типы данных будут. ну и соответственно нужно корректно сформировать структуру входящих данных (пример писал выше)
8. applesound 1 10.01.19 10:21 Сейчас в теме
(6)
ну и соответственно нужно корректно сформировать структуру входящих данных

структуру формируем в ПКГС ДополнительныеРеквиситы Перед обработкой или в ПКС Свойство Перед выгрузкой?
9. maks_20 164 10.01.19 10:55 Сейчас в теме
(8) вот рабочий пример заполнения входящих данных для доп реквизитов номенклатуры
Прикрепленные файлы:
7. meriferi 09.01.19 18:07 Сейчас в теме
в XML вручную прописать
10. пользователь 14.01.19 14:48
Сообщение было скрыто модератором.
...
11. applesound 1 14.01.19 15:06 Сейчас в теме
Добавил как на скрине - не грузится.

Возможно ошибся где-то. Пытаюсь найти причину - пока безрезультатно. Для более полной информации:
1. 1Cv7.MD
2. МД4сезонаТиС.xml
3. МДРозницаМагазинОдежды.xml
4. ПравилаОбменаДанными.xml
5. Розница 8. Магазин одежды и обуви2.2.9.20.cf
https://drive.google.com/open?id=1zd2lw3oUkox3KYYOh_C7f0Yhpm6RxeKV
12. michaelbag 01.11.19 17:39 Сейчас в теме
(11) Решение полностью рабочее появилось?
13. eViLL 31.07.20 12:56 Сейчас в теме
Так получилось, что по запросу в поисковиках "реквизит в дополнительный реквизит конвертация данных" гуглится только эта тема но метод описанный maks_20 у меня, как и у многих других, не работает. Спустя 2 рабочих дня безуспешных попыток и много потерянных волос спустя рабочий способ переноса был найден. Описываю.

Задача:
Из ЗУП 3.1 перенести реквизит "НомерРеестра" (число) документа "Ведомость в банк" в допреквизит "Номер реестра" (так же число) созданный для документа "Ведомость на выплату зарплаты" в конфигурации БИТ строительство 3.0 КОРП (там же БИТ финанс). Перенос должен осуществляться на основе стандартного настроенного обмена, поэтому я редактирую правила обмена данными, выгруженными из ЗУП 3.1.

Решение:
В ПКО документа "ВедомостьНаВыплатуЗарплатыВБанк" создаю ПКС для переносимого реквизита-источника "НомерРеестра" (прикрепленный файл 1).
Реквизит этот передаю не приемнику а в параметр который обзываю так же "НомерРеестра" (прикрепленный файл 2)
На закладке "Алгоритмы\Запросы" правил обмена создаю алгоритм "ЗаполнитьДопРеквизитНомерРеестра" в котором обрабатываю заполнение допреквизита и запись объекта после загрузки. Обязательно указываю что в нем доступны ПараметрыОбъекта, сам Объект и ставлю галочку "Используется при загрузке". (прикрепленный файл 3)
В ПКО документа "ВедомостьНаВыплатуЗарплатыВБанк" в обработчике "После загрузки" выполняю созданный алгоритм. (прикрепленный файл 4)

Профит. Реквизит документа-источника перенесен в дополнительный реквизит документа-приемника через параметры объекта. Думаю, со справочниками и более сложными типами данных нежели число проблем возникнуть так же не должно.
Прикрепленные файлы:
Anchoret; olga_mir; Xershi; leriko; user1301636; +5 Ответить
14. alekskurochkin 13.10.20 16:58 Сейчас в теме
(13)При настройке правил обмена, где конфигурация-источник - 7.7, передача данных в параметр недоступна. Кто-нибудь может поделиться рабочим способом переноса реквизита справочника из 7.7 в доп реквизиты справочника в 1с 8?
15. user1464234 13.10.20 17:16 Сейчас в теме
(14) на ютубе в курсе Ильи Леонтьева рассматривается вопрос передачи параметрами после выгрузки данных.
16. alekskurochkin 14.10.20 08:27 Сейчас в теме
(15) Если правильно понял, то имеете в виду передачу данных в параметр и последующую обработку этого параметра. Я смотрел курс Ильи Леонтьева и не раз пользовался этой возможностью. Но когда источником выступает конфигурация 7.7, эта возможность недоступна (скриншоты прилагаю). Если я неправильно понял, то не поделитесь ссылкой на видео из курса?
Прикрепленные файлы:
18. VitaliyTokarev 221 20.11.22 09:16 Сейчас в теме
(13)
Почему-то при нажатии на любую из картинок показывается только первая.
Есть возможность или текстом выложить код из 3й и 4й картинки или ещё раз выложить отдельными сообщениями?
19. Xershi 1484 09.10.23 22:21 Сейчас в теме
(13) спасибо!
Если ПараметрыОбъекта <> Неопределено И ПараметрыОбъекта.Получить("кнт_Активная") <> Неопределено Тогда

	НаименованиеСвойства = "кнт_Активная";

	Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", НаименованиеСвойства);

	Если Свойство = Неопределено Тогда
		
		НаименованиеНаборСвойств = "Справочник ""Номенклатура""";
		НаборСвойствНоменклатура = Справочники.НаборыДополнительныхРеквизитовИСведений.НайтиПоНаименованию(НаименованиеНаборСвойств, Истина);
		
		НаименованиеСвойстваИНабор = НаименованиеСвойства + " (" + НаименованиеНаборСвойств + ")";
		
		СвойствоОбъект = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.СоздатьЭлемент();
		СвойствоОбъект.Виден								= Истина;
		СвойствоОбъект.ДополнительныеЗначенияИспользуются	= Истина;
		СвойствоОбъект.Доступен								= Истина;
		СвойствоОбъект.Заголовок							= НаименованиеСвойства;
		СвойствоОбъект.ЗаголовокФормыВыбораЗначения			= НаименованиеСвойстваИНабор;
		СвойствоОбъект.ЗаголовокФормыЗначения				= НаименованиеСвойстваИНабор;
		СвойствоОбъект.Имя									= СтрЗаменить(НаименованиеСвойства, " ", "");
		СвойствоОбъект.Комментарий							= НСтр("ru='Загружено при переносе данных из КА1.1/УПП в ERP2/КА2/УТ11'");
		СвойствоОбъект.НаборСвойств							= НаборСвойствНоменклатура;
		СвойствоОбъект.Наименование							= НаименованиеСвойстваИНабор;
		СвойствоОбъект.Подсказка							= НаименованиеСвойстваИНабор;
		СвойствоОбъект.ТипЗначения							= Новый ОписаниеТипов("Булево");
		
		СвойствоОбъект.Записать();

		Свойство = СвойствоОбъект.Ссылка;
		
	КонецЕсли;

	ПараметрыОтбора = Новый Структура("Свойство", Свойство);

	НайденныеСтроки = Объект.ДополнительныеРеквизиты.НайтиСтроки(ПараметрыОтбора);

	Если НайденныеСтроки.Количеств() > 0 Тогда
		ТекущаяСтрока = НайденныеСтроки[0]; 	
	Иначе
		ТекущаяСтрока = Объект.ДополнительныеРеквизиты.Добавить();
		ТекущаяСтрока.Свойство = Свойство; 
	КонецЕсли;

	ТекущаяСтрока.Значение = ПараметрыОбъекта.Получить(НаименованиеСвойства);

	Если ТипЗнч(ТекущаяСтрока.Значение) = Тип("Строка")
		И СтрДлина(ТекущаяСтрока.Значение) > 1024 Тогда
		ТекущаяСтрока.ТекстоваяСтрока = ТекущаяСтрока.Значение;
	КонецЕсли;

	Объект.Записать();
	
КонецЕсли;
Показать

Добавил еще и создание дополнительного реквизита. Также в типовом коде есть реквизит ТекстоваяСтрока, если значение превышает 1024.
20. Xershi 1484 09.10.23 22:59 Сейчас в теме
(19)
Если ПараметрыОбъекта <> Неопределено И ПараметрыОбъекта.Получить("кнт_Активная") <> Неопределено Тогда

	НаименованиеСвойства = "кнт_Активная";

	Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", НаименованиеСвойства);

	Если Свойство = Неопределено ИЛИ Не ЗначениеЗаполнено(Свойство) Тогда
		
		НаименованиеНаборСвойств = "Справочник ""Номенклатура""";
		НаборСвойствНоменклатура = Справочники.НаборыДополнительныхРеквизитовИСведений.НайтиПоНаименованию(НаименованиеНаборСвойств, Истина);
		
		НаименованиеСвойстваИНабор = НаименованиеСвойства + " (" + НаименованиеНаборСвойств + ")";
		
		СвойствоОбъект = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.СоздатьЭлемент();
		СвойствоОбъект.Виден								= Истина;
		СвойствоОбъект.ДополнительныеЗначенияИспользуются	= Истина;
		СвойствоОбъект.Доступен								= Истина;
		СвойствоОбъект.Заголовок							= НаименованиеСвойства;
		СвойствоОбъект.ЗаголовокФормыВыбораЗначения			= НаименованиеСвойстваИНабор;
		СвойствоОбъект.ЗаголовокФормыЗначения				= НаименованиеСвойстваИНабор;
		СвойствоОбъект.Имя									= СтрЗаменить(НаименованиеСвойства, " ", "");
		СвойствоОбъект.Комментарий							= НСтр("ru='Загружено при переносе данных из КА1.1/УПП в ERP2/КА2/УТ11'");
		СвойствоОбъект.НаборСвойств							= НаборСвойствНоменклатура;
		СвойствоОбъект.Наименование							= НаименованиеСвойстваИНабор;
		СвойствоОбъект.Подсказка							= НаборСвойствНоменклатура;
		СвойствоОбъект.ТипЗначения							= Новый ОписаниеТипов("Булево");
		
		СвойствоОбъект.Записать();

		Свойство = СвойствоОбъект.Ссылка;
		
	КонецЕсли;

	ПараметрыОтбора = Новый Структура("Свойство", Свойство);

	НайденныеСтроки = Объект.ДополнительныеРеквизиты.НайтиСтроки(ПараметрыОтбора);

	Если НайденныеСтроки.Количество() > 0 Тогда
		ТекущаяСтрока = НайденныеСтроки[0]; 	
	Иначе
		ТекущаяСтрока = Объект.ДополнительныеРеквизиты.Добавить();
		ТекущаяСтрока.Свойство = Свойство; 
	КонецЕсли;

	ТекущаяСтрока.Значение = ПараметрыОбъекта.Получить(НаименованиеСвойства);

	Если ТипЗнч(ТекущаяСтрока.Значение) = Тип("Строка")
		И СтрДлина(ТекущаяСтрока.Значение) > 1024 Тогда
		ТекущаяСтрока.ТекстоваяСтрока = ТекущаяСтрока.Значение;
	КонецЕсли;

	Объект.Записать();
	
КонецЕсли;
Показать

Опечатку проглядел... Количество не дописал. А при отладке выяснилось, что поиск по реквизиту, если не нашел вернет пустую ссылку.
17. user1464234 14.10.20 08:36 Сейчас в теме
Вы правы, я с обменом между 7кой и 8 кой не имела счастья работать, но если без параметров....
Пере/после выгрузкой(ки) объявляются переменные типа ТЗ/список значений и заполняется в процессе выгрузки (для устранения лишнего цикла по выборке данных) или отдельным запросом/кодом.
Выгрузка строки данных по произвольном правилу/алгоритму(или эта возможность из 7ки тоже отсутствует?) Если не ошибаюсь, два или три самых последних урока.
Весь типовой обмен с зуп так написан имхо.
Оставьте свое сообщение

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