ТиС -> БП3.0 Установить организацию в договоре контрагента
Доброго.
Делаю в КД 2 правила обмена между ТиС 9.2 (ОРК 7.70.975, платформа 7.70.025) и БП 3.0 (3.0.43.187, платформа 8.3.9.1818).
У ДоговораКонтрагента (ДК) в ТиС нет реквизита Организация (и привязки тоже нет), в отличии от ДК в БП.
Наиболее рациональным мне показалась передача организации из документа.
Например "Реализация товаров и услуг" (РТиУ).
В ПКС ДК (ПКО РТИУ) "Перед выгрузкой" пишу:
Соответственно в ПКО ДК есть реквизиты приемника "Организация" и "ВидДоговора" с галочкой "получить из входящих данных", но результат нулевой, на загрузке поля пустые.
В чем моя ошибка?
Делаю в КД 2 правила обмена между ТиС 9.2 (ОРК 7.70.975, платформа 7.70.025) и БП 3.0 (3.0.43.187, платформа 8.3.9.1818).
У ДоговораКонтрагента (ДК) в ТиС нет реквизита Организация (и привязки тоже нет), в отличии от ДК в БП.
Наиболее рациональным мне показалась передача организации из документа.
Например "Реализация товаров и услуг" (РТиУ).
В ПКС ДК (ПКО РТИУ) "Перед выгрузкой" пишу:
ВходящиеДанные=СоздатьОбъект("СписокЗначений");
ВходящиеДанные.ДобавитьЗначение("Организация",Источник.ЮрЛицо);
ВходящиеДанные.ДобавитьЗначение("ВидДоговора","СПокупателем");
ВыгрузитьПоПравилу(Источник.Договор,,,ВходящиеДанные,"ДоговорыКонтрагентов");
Соответственно в ПКО ДК есть реквизиты приемника "Организация" и "ВидДоговора" с галочкой "получить из входящих данных", но результат нулевой, на загрузке поля пустые.
В чем моя ошибка?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Не смог найти решение, в итоге решил идти с другой стороны, а именно "После выгрузки" "После загрузки" (опечатка) ПКО РТиУ:
Гигантский минус этого решения - отсутствие универсальности.
А по поводу выгрузить по правилу, я попытался найти точку выхода, вставил Сообщить в обработчиках и увидел что СписокЗначений не доходит до свойств Договора (см. скрин). Для тестов были использованы и Входящие и Исходящие, порядок на скриншоте соответствует выводу сообщений
Код в обработчике |
---|
ДоговорКонтрагента=Объект.ДоговорКонтрагента;
ВидДоговора=Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
Если (ЗначениеЗаполнено(ДоговорКонтрагента.Организация) И НЕ ДоговорКонтрагента.Организация=Объект.Организация) ИЛИ
(ЗначениеЗаполнено(ДоговорКонтрагента.ВидДоговора) И НЕ ДоговорКонтрагента.ВидДоговора=ВидДоговора) Тогда
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ДоговорыКонтрагентов.Ссылка
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Владелец =&Контрагент
| И ДоговорыКонтрагентов.Организация =&Организация
| И ДоговорыКонтрагентов.ВидДоговора =&ВидДоговора";
Запрос.УстановитьПараметр("Контрагент",Объект.Контрагент);
Запрос.УстановитьПараметр("Организация",Объект.Организация);
Запрос.УстановитьПараметр("ВидДоговора",ВидДоговора);
Результат=Запрос.Выполнить().Выгрузить();
Если Результат.Количество()>0 Тогда
НовыйДоговор=Результат[0].Ссылка;
Иначе
НовыйДоговор=Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
ПараметрыСоздания = Новый Структура;
ПараметрыСоздания.Вставить("Организация", Объект.Организация);
ПараметрыСоздания.Вставить("Владелец", Объект.Контрагент);
ПараметрыСоздания.Вставить("ВидДоговора", ВидДоговора);
ПараметрыСоздания.Вставить("Наименование", "Основной договор");
ПараметрыДоговора = Новый Структура;
ПараметрыДоговора.Вставить("ЗначенияЗаполнения", ПараметрыСоздания);
НовыйДоговор.Заполнить(ПараметрыДоговора.ЗначенияЗаполнения);
Попытка
НовыйДоговор.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Объект.ДоговорКонтрагента=НовыйДоговор.Ссылка;
ИначеЕсли НЕ ЗначениеЗаполнено(ДоговорКонтрагента.Организация) ИЛИ НЕ ЗначениеЗаполнено(ДоговорКонтрагента.ВидДоговора) Тогда
ДоговорКонтрагентаОбъект=ДоговорКонтрагента.ПолучитьОбъект();
Если НЕ ЗначениеЗаполнено(ДоговорКонтрагента.Организация) Тогда
ДоговорКонтрагентаОбъект.Организация=Объект.Организация;
ИначеЕсли НЕ ЗначениеЗаполнено(ДоговорКонтрагента.ВидДоговора) Тогда
ДоговорКонтрагентаОбъект.ВидДоговора=ВидДоговора;
КонецЕсли;
Попытка
ДоговорКонтрагентаОбъект.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецЕсли;
Показать |
Гигантский минус этого решения - отсутствие универсальности.
А по поводу выгрузить по правилу, я попытался найти точку выхода, вставил Сообщить в обработчиках и увидел что СписокЗначений не доходит до свойств Договора (см. скрин). Для тестов были использованы и Входящие и Исходящие, порядок на скриншоте соответствует выводу сообщений
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот