Конвертация данных 2.0 предопределеные значения
Здравствуйте! Скажите, есть готовый обмен с БП 2.0 и КА 2.4 , необходимо только сделать, чтобы как на картинках переносилась контактная информация "нужно подкорректировать перенос контактной информации по Полям предопределенных значений.". Правила обмена делались на КД 2.0 . Каким образом это сделать, может кто подскажет?
Прикрепленные файлы:
По теме из базы знаний
- RabbitMQ + Конвертация Данных 3.0
- 1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена)
- EnterpriseData - пример доработки правил конвертации без использования КД 3.0 в расширении конфигурации
- EnterpriseData – часть 2. Процесс выгрузки данных
- Конвертация данных из 1С 8.3 в 7.7 (версия КД 2.1). Перенос данных из 8.3 в 7.7. Создание в современной 1С 8.3 XML в формате КД2. Инструкции и примеры переноса данных из любой современной 1С 8.3 в устаревшую конфигурацию 1С 7.7, через Конвертацию данных 2
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) Не поможет. Соответствие настроит, а проверку на то, что не заполнен факт. адрес там не сделать.
Как правило контактная информация выгружается кодом из-за разных структур хранения 2.0 и 3.0. Над искать где выгружается КИ и смотреть код, а там и подменять если не заполнено
Как правило контактная информация выгружается кодом из-за разных структур хранения 2.0 и 3.0. Над искать где выгружается КИ и смотреть код, а там и подменять если не заполнено
Можно сделать так: в обработчике ПриВыгрузке сделать проверку:
Если у выгружаемой в данный момент записи РС КонтактнаяИнформация задан Вид контактной информации "Фактический" и он не пустой, то
ничего не менять. Пусть выгружается стандартной обработкой.
ИначеЕсли Вид контактной информации "Юридический", то
Если по этому же объекту-владельцу контактной информации есть не пустой "Фактический" адрес то
Отказ = Истина, пусть вообще строка с юридическим адресом не выгружается
Иначе
Строчка выгружается, только вместо значения "Юридический" для этой записи в Приемнике записать "Фактический" в поле ВидКонтактнойИнформации
Если у выгружаемой в данный момент записи РС КонтактнаяИнформация задан Вид контактной информации "Фактический" и он не пустой, то
ничего не менять. Пусть выгружается стандартной обработкой.
ИначеЕсли Вид контактной информации "Юридический", то
Если по этому же объекту-владельцу контактной информации есть не пустой "Фактический" адрес то
Отказ = Истина, пусть вообще строка с юридическим адресом не выгружается
Иначе
Строчка выгружается, только вместо значения "Юридический" для этой записи в Приемнике записать "Фактический" в поле ВидКонтактнойИнформации
<Правило>
<Код>Контрагенты</Код>
<Наименование>Справочник: Контрагенты</Наименование>
<Порядок>200</Порядок>
<ПередВыгрузкой>Если (НЕ Источник.ЭтоГруппа) И (НЕ Источник.НеИспользуется) Тогда
............. тут запрос, выбирающий данные из РС КонтактнаяИнформация по контрагенту, который выгружается
Выборка = Запрос.Выполнить().Выбрать();
// Добавленный код +++
ЮридическийАдрес = "";
ФизическийАдрес = "";
НомерСтрокиЮр = Неопределено;
НомерСтрокиФиз = Неопределено;
// Добавленный код ---
Пока Выборка.Следующий() Цикл
НовСтрока = ВходящиеДанные.КонтактнаяИнформация.Добавить();
ЗаполнитьЗначенияСвойств(НовСтрока, Выборка);
// Добавленный код +++
Если Выборка.Вид.Наименование = "Юридический адрес контрагента" Тогда
ЮридическийАдрес = СокрЛП(Выборка.Представление);
НомерСтрокиЮр = ВходящиеДанные.КонтактнаяИнформация.Количество()-1;
ИначеЕсли Выборка.Вид.Наименование = "Физический адрес контрагента" Тогда
ФизическийАдрес = СокрЛП(Выборка.Представление);
НомерСтрокиФиз = ВходящиеДанные.КонтактнаяИнформация.Количество()-1;
КонецЕсли;
// Добавленный код ---
КонецЦикла;
// Добавленный код +++
Если ФизическийАдрес = "" И НЕ ЮридическийАдрес = "" Тогда
Если ЗначениеЗаполнено(НомерСтрокиФиз) Тогда
ВходящиеДанные.КонтактнаяИнформация[НомерСтрокиФиз].Представление = ЮридическийАдрес;
Иначе
ВходящиеДанные.КонтактнаяИнформация[НомерСтрокиЮр].Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес контрагента");
КонецЕсли;
КонецЕсли;
// Добавленный код ---
ВходящиеДанные.ДополнительнаяИнформация = "" + ?(Найти(Нрег(Источник.Родитель.Наименование), "поставщик")>0, "поставщик","");
Иначе
Отказ = Истина;
КонецЕсли;</ПередВыгрузкой>
<Код>Контрагенты</Код>
<Наименование>Справочник: Контрагенты</Наименование>
<Порядок>200</Порядок>
<ПередВыгрузкой>Если (НЕ Источник.ЭтоГруппа) И (НЕ Источник.НеИспользуется) Тогда
............. тут запрос, выбирающий данные из РС КонтактнаяИнформация по контрагенту, который выгружается
Выборка = Запрос.Выполнить().Выбрать();
// Добавленный код +++
ЮридическийАдрес = "";
ФизическийАдрес = "";
НомерСтрокиЮр = Неопределено;
НомерСтрокиФиз = Неопределено;
// Добавленный код ---
Пока Выборка.Следующий() Цикл
НовСтрока = ВходящиеДанные.КонтактнаяИнформация.Добавить();
ЗаполнитьЗначенияСвойств(НовСтрока, Выборка);
// Добавленный код +++
Если Выборка.Вид.Наименование = "Юридический адрес контрагента" Тогда
ЮридическийАдрес = СокрЛП(Выборка.Представление);
НомерСтрокиЮр = ВходящиеДанные.КонтактнаяИнформация.Количество()-1;
ИначеЕсли Выборка.Вид.Наименование = "Физический адрес контрагента" Тогда
ФизическийАдрес = СокрЛП(Выборка.Представление);
НомерСтрокиФиз = ВходящиеДанные.КонтактнаяИнформация.Количество()-1;
КонецЕсли;
// Добавленный код ---
КонецЦикла;
// Добавленный код +++
Если ФизическийАдрес = "" И НЕ ЮридическийАдрес = "" Тогда
Если ЗначениеЗаполнено(НомерСтрокиФиз) Тогда
ВходящиеДанные.КонтактнаяИнформация[НомерСтрокиФиз].Представление = ЮридическийАдрес;
Иначе
ВходящиеДанные.КонтактнаяИнформация[НомерСтрокиЮр].Вид = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес контрагента");
КонецЕсли;
КонецЕсли;
// Добавленный код ---
ВходящиеДанные.ДополнительнаяИнформация = "" + ?(Найти(Нрег(Источник.Родитель.Наименование), "поставщик")>0, "поставщик","");
Иначе
Отказ = Истина;
КонецЕсли;</ПередВыгрузкой>
Так, наверное, не оч. удобно увидеть разницу. Вот исправленные правила. Если сравнить два файла, то сразу будет видна разница.
Прикрепленные файлы:
ПравилаОбменаДанными_33 (2)_исправленные.xml
Появилась ссылка?
Я сначала тоже не видел - была только надпись "Прикрепленные файлы:". Сейчас вижу и ссылку.
Я сначала тоже не видел - была только надпись "Прикрепленные файлы:". Сейчас вижу и ссылку.
(15)
ну да, просто я думала, реквизиты которые в КА они Адрес,телефон - они другие. А по сути мне надо только прописать условия как на картинке, верно?
Ну вобщем да. Там код один в один почти что. И для партнеров в КА источником в БП также выступает справочник Контрагенты
ну да, просто я думала, реквизиты которые в КА они Адрес,телефон - они другие. А по сути мне надо только прописать условия как на картинке, верно?
(16) Да, если сами правила рабочие и нужно только лишь добавить логику (как на картинке) при работе с адресами, то больше ничего делать не надо. Только прописать свою логику.
В правилах же уже все написано, как будет конвертироваться каждая запись контактной информации контрагента, как будут конвертироваться каждый из ее реквизитов.
При этом в ПКО Контрагенты данные для ТЧ справочника контрагенты в Приемнике берутся не из табличной части элемента справочника в Источнике, а собираются в обработчике ПередВыгрузкой, поэтому в них можно хоть что записать. Соответственно свою логику проще всего в этом обработчике и прописать при формировании таблицы значений.
В правилах же уже все написано, как будет конвертироваться каждая запись контактной информации контрагента, как будут конвертироваться каждый из ее реквизитов.
При этом в ПКО Контрагенты данные для ТЧ справочника контрагенты в Приемнике берутся не из табличной части элемента справочника в Источнике, а собираются в обработчике ПередВыгрузкой, поэтому в них можно хоть что записать. Соответственно свою логику проще всего в этом обработчике и прописать при формировании таблицы значений.
(19) Может быть они все же перенеслись? Может быть из-за каких-то настроек их просто не видно? Если попробовать консолью запросов посмотреть тч КонтактнаяИнформация по какому-нибудь Партнеру? В правилах вроде бы все одинаково. Единственное различие - для партнеров вид КИ по другому правилу конвертируется (там добавлено заполнение полей Обязательное = Ложь и ЗапретитьРедактированиеПользователем = Ложь) - вряд ли это влияет.
Ну и как правильно написали, посмотреть выгрузку-загрузку в отладке очень сильно бы помогло.
Также можно попробовать выгрузить через ВыгрузкаЗагрузкаДанныхXML с помощью этих правил одного-двух контрагентов и посмотреть в XML, что там в действительности выгрузилось.
Ну и как правильно написали, посмотреть выгрузку-загрузку в отладке очень сильно бы помогло.
Также можно попробовать выгрузить через ВыгрузкаЗагрузкаДанныхXML с помощью этих правил одного-двух контрагентов и посмотреть в XML, что там в действительности выгрузилось.
(23) Тут не очень понятно по картинке, что выгрузилось, что нет ) Чтобы понять, как выгрузились адреса Партнера, можно как я писал выше выгрузить в XML несколько контрагентов по правилу Партнеры и посмотреть, что в действительности будет в файле.
И если вы новичек в КД, то многие проблемы начинают решаться при использовании инструмента отладки. Имело место знакомство с ним?
(24) Вместе с конфигурацией конвертация поставляется обработка ВыгрузкаЗагрузкаДанныхXML82 и ВыгрузкаЗагрузкаДанныхXML83. На форме, где настраивается, что и куда выгружать, есть галочка "Включить отладку" (или "Использовать отладку") и кнопочка, по которой открывается форма для настроек отладки. В общих чертах отлаживается так: в форме настроек можно сформировать код (туда попадут все процедуры обработчики событий правил), который нужно вставить в модуль новой внешней обработки, сохранить ее. В настройках отладки указать путь к этой созданной обработке. И потом стандартная отладка этой внешней обработки в конфигураторе. В ее модуль ВыгрузкаЗагрузкаДанныхXML82 будет заходить при выполнении обработчиков правил.
(26) Я создала внешнюю обработку , в модуль объекта добавила скопированное из "Сформировать модуль отладки загрузки", сохранила , прикрепила и он мне выводит "Внешняя обработка отладки , загружаемая из файла на диске не поддерживаеться. Ошибка создания внешней обработки из файла с процедурами обработчиков событий". А ещё куча ошибок . Что не так?
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот