Конвертация данных 2.0 предопределеные значения

1. Nastya-chajkovskaya 19.10.18 13:03 Сейчас в теме
Здравствуйте! Скажите, есть готовый обмен с БП 2.0 и КА 2.4 , необходимо только сделать, чтобы как на картинках переносилась контактная информация "нужно подкорректировать перенос контактной информации по Полям предопределенных значений.". Правила обмена делались на КД 2.0 . Каким образом это сделать, может кто подскажет?
Прикрепленные файлы:
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dandykry 9 19.10.18 13:12 Сейчас в теме
(1) при выгрузке смотреть заполнен или нет, и подменять. Тут без кода не поможешь
+
3. Nastya-chajkovskaya 19.10.18 13:32 Сейчас в теме
(2) ну понятно, что не поможешь, могу показать сам обмен. Но я хочу понять как это делать , т.к. не сильна в КД , но есть желание научиться.
+
4. vadim1011985 99 19.10.18 13:36 Сейчас в теме
(3) Если элементы предопределенные и там и там , то надо смотреть ПКЗ Для справочника виды контактной информации
+
5. dandykry 9 19.10.18 13:40 Сейчас в теме
(4) Не поможет. Соответствие настроит, а проверку на то, что не заполнен факт. адрес там не сделать.
Как правило контактная информация выгружается кодом из-за разных структур хранения 2.0 и 3.0. Над искать где выгружается КИ и смотреть код, а там и подменять если не заполнено
+
6. Nastya-chajkovskaya 19.10.18 13:45 Сейчас в теме
(5)
Не поможет. Соответствие настроит, а проверку на то, что не заполнен факт. адрес там не сделать.


так как поступить? Как можно это реализовать?
+
7. dandykry 9 19.10.18 14:01 Сейчас в теме
(6)
Над искать где выгружается КИ и смотреть код, а там и подменять если не заполнено


Выложите правила сюда.
+
9. Nastya-chajkovskaya 19.10.18 14:14 Сейчас в теме
(7) вот правила
Прикрепленные файлы:
ПравилаОбменаДанными_33 (2).xml
+
8. rollker 19.10.18 14:07 Сейчас в теме
Можно сделать так: в обработчике ПриВыгрузке сделать проверку:

Если у выгружаемой в данный момент записи РС КонтактнаяИнформация задан Вид контактной информации "Фактический" и он не пустой, то
ничего не менять. Пусть выгружается стандартной обработкой.
ИначеЕсли Вид контактной информации "Юридический", то
Если по этому же объекту-владельцу контактной информации есть не пустой "Фактический" адрес то
Отказ = Истина, пусть вообще строка с юридическим адресом не выгружается
Иначе
Строчка выгружается, только вместо значения "Юридический" для этой записи в Приемнике записать "Фактический" в поле ВидКонтактнойИнформации
+
10. rollker 19.10.18 14:54 Сейчас в теме
<Правило>
<Код>Контрагенты</Код>
<Наименование>Справочник: Контрагенты</Наименование>
<Порядок>200</Порядок>
<ПередВыгрузкой>Если (НЕ Источник.ЭтоГруппа) И (НЕ Источник.НеИспользуется) Тогда

............. тут запрос, выбирающий данные из РС КонтактнаяИнформация по контрагенту, который выгружается

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

// Добавленный код +++
ЮридическийАдрес = "";
ФизическийАдрес = "";
НомерСтрокиЮр = Неопределено;
НомерСтрокиФиз = Неопределено;
// Добавленный код ---

Пока Выборка.Следующий() Цикл
НовСтрока = ВходящиеДанные.КонтактнаяИнформация.Добавить();
ЗаполнитьЗначенияСвойств(НовСтрока, Выборка);

// Добавленный код +++
Если Выборка.Вид.Наименование = "Юридический адрес контрагента" Тогда
ЮридическийАдрес = СокрЛП(Выборка.Представление);
НомерСтрокиЮр = ВходящиеДанные.КонтактнаяИнформация.Количество()-1;
ИначеЕсли Выборка.Вид.Наименование = "Физический адрес контрагента" Тогда
ФизическийАдрес = СокрЛП(Выборка.Представление);
НомерСтрокиФиз = ВходящиеДанные.КонтактнаяИнформация.Количество()-1;
КонецЕсли;
// Добавленный код ---
КонецЦикла;

// Добавленный код +++
Если ФизическийАдрес = "" И НЕ ЮридическийАдрес = "" Тогда
Если ЗначениеЗаполнено(НомерСтрокиФиз) Тогда
ВходящиеДанные.КонтактнаяИнформация[НомерСтрокиФиз].Представление = ЮридическийАдрес;
Иначе
ВходящиеДанные.КонтактнаяИнформация[НомерСтрокиЮр].Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес контрагента");
КонецЕсли;
КонецЕсли;
// Добавленный код ---

ВходящиеДанные.ДополнительнаяИнформация = "" + ?(Найти(Нрег(Источник.Родитель.Наименование), "поставщик")>0, "поставщик","");
Иначе
Отказ = Истина;
КонецЕсли;</ПередВыгрузкой>
+
11. rollker 19.10.18 15:00 Сейчас в теме
Так, наверное, не оч. удобно увидеть разницу. Вот исправленные правила. Если сравнить два файла, то сразу будет видна разница.
Прикрепленные файлы:
ПравилаОбменаДанными_33 (2)_исправленные.xml
+
12. Nastya-chajkovskaya 19.10.18 15:05 Сейчас в теме
(11) не вижу прекрепленного(
+
13. rollker 19.10.18 15:09 Сейчас в теме
Появилась ссылка?
Я сначала тоже не видел - была только надпись "Прикрепленные файлы:". Сейчас вижу и ссылку.
+
14. Nastya-chajkovskaya 19.10.18 15:10 Сейчас в теме
(13) да, получается, это для контрагента, а теперь также я смогу сделать и для партнера. Верно?
+
15. rollker 19.10.18 15:12 Сейчас в теме
(14) Ну вобщем да. Там код один в один почти что. И для партнеров в КА источником в БП также выступает справочник Контрагенты
+
16. Nastya-chajkovskaya 19.10.18 15:55 Сейчас в теме
(15)
Ну вобщем да. Там код один в один почти что. И для партнеров в КА источником в БП также выступает справочник Контрагенты


ну да, просто я думала, реквизиты которые в КА они Адрес,телефон - они другие. А по сути мне надо только прописать условия как на картинке, верно?
+
17. rollker 19.10.18 16:13 Сейчас в теме
(16) Да, если сами правила рабочие и нужно только лишь добавить логику (как на картинке) при работе с адресами, то больше ничего делать не надо. Только прописать свою логику.

В правилах же уже все написано, как будет конвертироваться каждая запись контактной информации контрагента, как будут конвертироваться каждый из ее реквизитов.

При этом в ПКО Контрагенты данные для ТЧ справочника контрагенты в Приемнике берутся не из табличной части элемента справочника в Источнике, а собираются в обработчике ПередВыгрузкой, поэтому в них можно хоть что записать. Соответственно свою логику проще всего в этом обработчике и прописать при формировании таблицы значений.
+
19. Nastya-chajkovskaya 22.10.18 09:58 Сейчас в теме
(17) вот вроде сделала, но в контрагенте перенеслись адреса, а вот в партнере нет, не адреса, не электронная почта. Не могу понять. Подскажите пожалуйста, в чем ошибка?
+
21. rollker 22.10.18 10:46 Сейчас в теме
(19) Может быть они все же перенеслись? Может быть из-за каких-то настроек их просто не видно? Если попробовать консолью запросов посмотреть тч КонтактнаяИнформация по какому-нибудь Партнеру? В правилах вроде бы все одинаково. Единственное различие - для партнеров вид КИ по другому правилу конвертируется (там добавлено заполнение полей Обязательное = Ложь и ЗапретитьРедактированиеПользователем = Ложь) - вряд ли это влияет.

Ну и как правильно написали, посмотреть выгрузку-загрузку в отладке очень сильно бы помогло.

Также можно попробовать выгрузить через ВыгрузкаЗагрузкаДанныхXML с помощью этих правил одного-двух контрагентов и посмотреть в XML, что там в действительности выгрузилось.
+
23. Nastya-chajkovskaya 22.10.18 11:50 Сейчас в теме
(21) получаеться, что он в партнеры добавляет значения юридический адрес. Хотя там в справочнике есть просто адрес и необходимо, чтобы он туда его записал
Прикрепленные файлы:
+
25. rollker 22.10.18 12:44 Сейчас в теме
(23) Тут не очень понятно по картинке, что выгрузилось, что нет ) Чтобы понять, как выгрузились адреса Партнера, можно как я писал выше выгрузить в XML несколько контрагентов по правилу Партнеры и посмотреть, что в действительности будет в файле.
+
20. Nastya-chajkovskaya 22.10.18 09:58 Сейчас в теме
18. mao_san 22.10.18 09:57 Сейчас в теме
И если вы новичек в КД, то многие проблемы начинают решаться при использовании инструмента отладки. Имело место знакомство с ним?
rollker; +1
22. mao_san 22.10.18 11:36 Сейчас в теме
(18)Это я не про отладку 1С в целом, а отладчик загрузки данных, отдельный инструмент прилагающийся как к конфигурации КД так и к обработке универсальной загрузки/выгрузки XML
+
24. Nastya-chajkovskaya 22.10.18 12:00 Сейчас в теме
(22) не видела, а вы можете скинуть мне эту обработку?
+
26. rollker 22.10.18 12:48 Сейчас в теме
(24) Вместе с конфигурацией конвертация поставляется обработка ВыгрузкаЗагрузкаДанныхXML82 и ВыгрузкаЗагрузкаДанныхXML83. На форме, где настраивается, что и куда выгружать, есть галочка "Включить отладку" (или "Использовать отладку") и кнопочка, по которой открывается форма для настроек отладки. В общих чертах отлаживается так: в форме настроек можно сформировать код (туда попадут все процедуры обработчики событий правил), который нужно вставить в модуль новой внешней обработки, сохранить ее. В настройках отладки указать путь к этой созданной обработке. И потом стандартная отладка этой внешней обработки в конфигураторе. В ее модуль ВыгрузкаЗагрузкаДанныхXML82 будет заходить при выполнении обработчиков правил.
+
27. Nastya-chajkovskaya 22.10.18 13:01 Сейчас в теме
(26) Я создала внешнюю обработку , в модуль объекта добавила скопированное из "Сформировать модуль отладки загрузки", сохранила , прикрепила и он мне выводит "Внешняя обработка отладки , загружаемая из файла на диске не поддерживаеться. Ошибка создания внешней обработки из файла с процедурами обработчиков событий". А ещё куча ошибок . Что не так?
+
28. Nastya-chajkovskaya 22.10.18 14:35 Сейчас в теме
(27) с этим разобралась
+
Внимание! Тема сдана в архив

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