(1) Делал перенос из УНФ в КА1 примерно следующим образом:
1. Делаешь ПВД с произвольным алгоритмом, в событии "перед обработкой" пишешь:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтрагентыКонтактнаяИнформация.Ссылка КАК Объект,
| КонтрагентыКонтактнаяИнформация.Тип КАК Тип,
| КонтрагентыКонтактнаяИнформация.Вид КАК Вид,
| КонтрагентыКонтактнаяИнформация.Представление КАК Представление
|ИЗ
| Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация";
ВыборкаДанных = Запрос.Выполнить();
Показать
2. Создаешь новое ПКО, которое потом указываешь в ПВД. В нем вручную создаешь ПКС и указываешь приемник, но источник оставляешь пустой. В самом ПКО приемник указываешь свой регистр РегистрСведенийЗапись.КонтактнаяИнформация, а источник пустой. И надо поставить галку Не запоминать выгруженные объекты.
(5) Так это перенос или обмен?
Если перенос, то фильтр в запросе, если обмен то дергать из плана обмена контрагентов, которые там зарегистрированы, с ходу только такие мысли. У меня был перенос, и надо было переносить все, так что я не заморачивался
(7) Да, согласен что это костыль.
Можно еще делать в самом ПКО Контрагенты, запросом выбирать все данные, помещать в доп. параметры, а после загрузки уже помещать в регистр, но схема тоже не совсем "правильная"
А вообще, посмотри обмен УНФ-БП, там должно быть что-то такое
(8) Спасибо сейчас посмотрю! В случае с доп параметрами, ПКО для вида и типа контактной информации станут бесполезными, и нужно будет в коде вручную обрабатывать
11.
user603532_fan_club_chelsea
15.10.18 07:55 Сейчас в теме
(1) почему из ТЧ справочника выгружается контактная информация? она же хранится в регистре. в справочнике лишь считывается/записывается с/в него. Почему обмен РегистрКИ ->РегистрКИ не делаете?
А вообще как вариант. Используйте "параметры" для обмена... записываете данные в параметры. Потом после записи объекта заполняете пустые реквизиты обходом по параметрам... как то раз делал такое-чудо-юдо... когда нужно было два разных документа обменять... помогало...
кратко
ИсходящиеДанные = Новый Структура("РаботыСуммаВсего, ТоварыСуммаВсего", Выборка.РаботыСуммаВсего, Выборка.ТоварыСуммаВсего);
ВыгрузитьПоПравилу(Выборка,,ИсходящиеДанные,,"ПоступлениеТоваровУслуг_ДляЗаказНаряда");
передаешь объект, указываешь ПКО, а на стороне ПКО в обработчике ПослеЗагрузки
НовУсл.Цена = ПараметрыОбъекта.Получить("ТоварыСуммаВсего");
НовУсл.Сумма = ПараметрыОбъекта.Получить("ТоварыСуммаВсего");
можно через структуру всю ТЧ передать и как надо ее сохранить
(1)
1. Сначала создаём ПКО "КонтактнаяИнформация".
2. Затем редактируем ПВД "Контрагенты", ПередВыгрузкой():
Запрос = Новый Запрос("Выбрать * Из Справочник.Контрагенты.КонтактнаяИнформация Где Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ВыгрузитьПоПравилу(Выборка, , , , "КонтактнаяИнформация");
КонецЕсли;
Тем самым только для тех контрагентов, попавших в выгрузку будет выгружаться КИ.
Если делать это не в ПВД, а в ПКО "Контагенты" в ПослеВыгрузкиВФайл(), то КИ выгрузится для всех контрагентов, которые участвуют в правилах.
по первому вопросу - есть книга бояркин, Филатов "Конвертация данных". У них в 10 главе на 141 странице есть пример переноса периодического реквизита в регистр сведений. Посмотрите, может это Вам поможет.