Вопрос знатокам Конвертации данных 2.1

1. UtSpar 134 14.10.18 18:29 Сейчас в теме
Добрый день, подскажите каким образом выгрузить контактную информацию из табличной части справочника в регистр сведений??


1 ) Выгрузить по правилу - вариант разбивается об БСП.

2) Выгрузить регистр - не нашел нормально схемы, вариант не получается добить.


Если есть возможность скиньте пожалуйста ссылку.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Dream_kz 129 15.10.18 07:06 Сейчас в теме
(1) Делал перенос из УНФ в КА1 примерно следующим образом:
1. Делаешь ПВД с произвольным алгоритмом, в событии "перед обработкой" пишешь:
Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|    КонтрагентыКонтактнаяИнформация.Ссылка КАК Объект,
|    КонтрагентыКонтактнаяИнформация.Тип КАК Тип,
|    КонтрагентыКонтактнаяИнформация.Вид КАК Вид,
|    КонтрагентыКонтактнаяИнформация.Представление КАК Представление
|ИЗ
|    Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация";

ВыборкаДанных = Запрос.Выполнить();
Показать

2. Создаешь новое ПКО, которое потом указываешь в ПВД. В нем вручную создаешь ПКС и указываешь приемник, но источник оставляешь пустой. В самом ПКО приемник указываешь свой регистр РегистрСведенийЗапись.КонтактнаяИнформация, а источник пустой. И надо поставить галку Не запоминать выгруженные объекты.
5. UtSpar 134 15.10.18 07:16 Сейчас в теме
(4) А Как быть если переносить нужно контактную информацию не всех контрагентов а только тех которые выгружаются?
6. Dream_kz 129 15.10.18 07:33 Сейчас в теме
(5) Так это перенос или обмен?
Если перенос, то фильтр в запросе, если обмен то дергать из плана обмена контрагентов, которые там зарегистрированы, с ходу только такие мысли. У меня был перенос, и надо было переносить все, так что я не заморачивался
7. UtSpar 134 15.10.18 07:35 Сейчас в теме
(6) Это обмен. То есть в ПВД перед обработкой получать из плана обмена зарегестрированных контрагентов и по ним выгружать контактную информацию?
8. Dream_kz 129 15.10.18 07:41 Сейчас в теме
(7) Да, согласен что это костыль.
Можно еще делать в самом ПКО Контрагенты, запросом выбирать все данные, помещать в доп. параметры, а после загрузки уже помещать в регистр, но схема тоже не совсем "правильная"
А вообще, посмотри обмен УНФ-БП, там должно быть что-то такое
9. UtSpar 134 15.10.18 07:44 Сейчас в теме
(8) Спасибо сейчас посмотрю! В случае с доп параметрами, ПКО для вида и типа контактной информации станут бесполезными, и нужно будет в коде вручную обрабатывать
13. UtSpar 134 15.10.18 08:38 Сейчас в теме
(8) А подскажите в ПВД какой нужно выбирать объект выборки? Просто если не выбирать то ошибка, если выбирать "контрагенты" то пустой файл
14. Dream_kz 129 15.10.18 09:11 Сейчас в теме
(13) Вообще пустой, там способ выборки ставить "произвольный алгоритм"
16. UtSpar 134 15.10.18 11:12 Сейчас в теме
(14) Ага, вообщем для обработки Универсальный обмен данными, такой способ подходит. а вт для обмена через планы обмена нет(
11. user603532_fan_club_chelsea 15.10.18 07:55 Сейчас в теме
(1) почему из ТЧ справочника выгружается контактная информация? она же хранится в регистре. в справочнике лишь считывается/записывается с/в него. Почему обмен РегистрКИ ->РегистрКИ не делаете?

А вообще как вариант. Используйте "параметры" для обмена... записываете данные в параметры. Потом после записи объекта заполняете пустые реквизиты обходом по параметрам... как то раз делал такое-чудо-юдо... когда нужно было два разных документа обменять... помогало...
12. UtSpar 134 15.10.18 08:17 Сейчас в теме
(11) Нетиповая конфигурация. в ней только ТЧ.
15. user623969_dusa 15.10.18 10:22 Сейчас в теме
(1) вот здесь еще можно почитать https://infostart.ru/public/402469/
о ВыгрузитьПоПравилу

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

передаешь объект, указываешь ПКО, а на стороне ПКО в обработчике ПослеЗагрузки
НовУсл.Цена = ПараметрыОбъекта.Получить("ТоварыСуммаВсего");
НовУсл.Сумма = ПараметрыОбъекта.Получить("ТоварыСуммаВсего");

можно через структуру всю ТЧ передать и как надо ее сохранить
17. UtSpar 134 15.10.18 11:28 Сейчас в теме
(15) Такой способ пробовал он для универсального обмена хорошо, но обмен через планы обмена реализован в БСП, и там ошибки идут.
18. triviumfan 93 15.10.18 15:40 Сейчас в теме
(1)
1. Сначала создаём ПКО "КонтактнаяИнформация".
2. Затем редактируем ПВД "Контрагенты", ПередВыгрузкой():
Запрос = Новый Запрос("Выбрать * Из Справочник.Контрагенты.КонтактнаяИнформация Где Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
	ВыгрузитьПоПравилу(Выборка, , , , "КонтактнаяИнформация");
КонецЕсли;

Тем самым только для тех контрагентов, попавших в выгрузку будет выгружаться КИ.
Если делать это не в ПВД, а в ПКО "Контагенты" в ПослеВыгрузкиВФайл(), то КИ выгрузится для всех контрагентов, которые участвуют в правилах.
19. UtSpar 134 16.10.18 05:51 Сейчас в теме
(18)Спасибо, сейчас попробую
2. Stref75 15.10.18 05:56 Сейчас в теме
по первому вопросу - есть книга бояркин, Филатов "Конвертация данных". У них в 10 главе на 141 странице есть пример переноса периодического реквизита в регистр сведений. Посмотрите, может это Вам поможет.
3. UtSpar 134 15.10.18 06:00 Сейчас в теме
(2)Спасибо сейчас посмотрю!
10. UtSpar 134 15.10.18 07:44 Сейчас в теме
(2) Посмотрел, не совсем то что нужно, но спасибо!
Оставьте свое сообщение

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