Правила обмена УТ 10.3 - БП 3.0 #751235


#0 by Rollam
Столкнулся с проблемой в правилах обмена УТ 10.3 - БП 3.0. Проблема возникает при загрузке табличной части "Оплата" документа "Отчет о розничных продажах". Версия УТ "10.3.28.1", БП "3.0.40.24". В последующих версиях различий с указанными для этого документа объектов не нашел. Суть в том, что в источнике имеются две табличные части "ОплатаПлатежнымиКартами" и "ОплатаБанковскимиКредитами". ТЧ "ОплатаБанковскимиКредитами" имеет реквизиты "ВидОплаты", "Сумма", "БанкКредитор" (Контрагент) и "ДоговорВзаиморасчетовБанкаКредитора" (Договор контрагента). Следующая ТЧ "ОплатаПлатежнымиКартами" имеет реквизиты "ВидОплаты" и "Сумма". Плюс, имеются два реквизита документа: "Эквайрер" (Контрагент) и "ДоговорВзаиморасчетовЭквайрера" (Договор контрагента). В приемнике имеется одна ТЧ "Оплата" с реквизитами: "ВидОплаты", "СуммаОплаты", "Контрагент" и "ДоговорКонтрагента". Задача состоит в том, что данные этиз двух ТЧ необходимо перегружать в ТЧ Приемника "Оплата". Сразу скажу, что я пытался скопировать правила из типового обмена. Ничего не получилось. Я пытался решить задачу двумя способами: Первый. Создал два правила для каждой ТЧ источника, указав для обоих одну ТЧ приемника. В каждой в модуле "Перед обработкой" добавил "НеОчищать = ИСТИНА;". Далее для правила "ОплатаБанковскимиКредитами - Оплата" указал соответствия реквизитов и правила ПКО. Для правила "ОплатаПлатежнымиКартами - Оплата" указал соответствия и ПКО для реквизитов "ВидОплаты" и "Сумма". Для реквизитов приемника "Контрагент" и "ДоговорКонтрагента" соответствующих данных в ТЧ источника нет, ибо эти данные лежат в реквизитах самого источника. Создаю правила без источника, но с приемником. В обработке "Перед выгрузкой" пишу: "Значение = Источник.Эквайрер;", и "Значение = Источник.ДоговорВзаиморасчетовЭквайрера;". Подставляю соответствующие ПКО. Второй способ: Создаю правило без источника, но с приемником в виде ТЧ "Оплата". В обработке "Перед обработкой" пишу: ///////////////////////////////////////////// Затем внутри группы правила добавляю реквизиты ТЧ приемника, а на самой группе включаю флаг "Получить из входящих данных". В обоих случаях происходит следующее: Выгрузка проходит без проблем. В xml-файле выгрузки можно найти данные из ТЧ источника "ОплатаПлатежнымиКартами", но при загрузке (опять без каких-либо ошибок), в строках ТЧ приемника "Оплата" не заполняются поля "Контрагент" и "ДоговорКонтрагента" тех строк ТЧ, которые имеют отношение к оплатам по карте (оплаты банковскими кредитами заполняются без проблем), хотя сами элементы справочников перегрузились. Я перепробовал уже все, что знал. Мне нужна ваша мудрость) Заранее спасибо.
#1 by Rollam
Надо же. Прочитал свою же тему и пришла в голову мысль. Верно говорят, что правильно заданный вопрос - уже практически готовый ответ. Оказалось, в обработке самого объекта обмена (документа) в модуле "После загрузки" есть такой код: Для каждого СтрокаТЧ Из Объект.Оплата Цикл В данном случае, при вызове "ЗаполнитьЗначенияСвойств", почему-то очищаются "Контрагент" и "ДоговорКонтрагента" в записях ТЧ, связванных с эквайрингом.
#2 by lxndr
ты пропустил скобочку в уме. Ничего там не очищается, наоборот заполняется
#3 by Rollam
По идее, должны заполняться, согласен. Результат вызова этого метода - именно очищение реквизитов строки ТЧ, связанной с эквайрингом. Для строк, связанных с кредитом, все проходит нормально.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С