Конвертация данных 2.1: поиск по условию

Публикация № 978498

Обмен - Перенос данных из 1C8 в 1C8

КД Конвертация данных

16
Задача. При обмене документами "Реализация товаров и услуг", поиск контрагента осуществлять по полям "ИНН", "КПП". Если вид договора с комиссионером, то поиск осуществлять по полям "ИНН", "КПП", "Наименование".

Возможно, есть более простые варианты реализации задачи, сообщите в комментариях, добавлю.

Для поиска элемента в базе приемнике нужно поставить флажки "Поиск объекта при загрузке по свойству", "Продолжить поиск по полям поиска, если по идентификатору объект приемник не найден":

 

 

Также можно принудительно задать поля поиска в обработчике "Поля поиска" в ПКО справочника "Контрагенты":

Далее остается как-то получать вид договора из документа и использовать его в обработчике "Поля поиска".

В обработчик "Перед выгрузкой" ПКС "Контрагенты" правила конвертации документа "Реализация товаров и услуг" пишем следующий код:

Далее добавляем новое ПКС (необходимо поставить флажки "Передавать данные в параметр","Поиск объекта при загрузке по свойству") у ПКО "Контрагенты" и заполняем его входящими данными:

Далее дописываем условие поиска:

Правила тестировались на конфигурации "Управление производственным предприятием, редакция 1.3 (1.3.87.2)".

Удачного внедрения!

16

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. spe1c 15.01.19 15:52 Сейчас в теме
В правиле конвертации объекта используйте обработчик "Поля поиска"
fancy; Andle; gorakh; +3 Ответить
2. wowik 557 15.01.19 16:34 Сейчас в теме
3. spe1c 15.01.19 21:32 Сейчас в теме
(2)Все так, я просто не заметил сначала ссылку на публикацию, думал это вопрос такой.
4. fancy 16.01.19 07:30 Сейчас в теме
1) А само значение перечисления вид договора нельзя передать и анализировать без XMLСтрока?

2) Нельзя ли обойтись без создания доп.параметра, в Исходящие данные ПКС контрагента добавить ВидДоговора, в ПКО Контрагенты в обработчике Поля поиска анализировать Входящие данные или там Входящие данные недоступны?
5. wowik 557 16.01.19 09:14 Сейчас в теме
(4) 1 - не пробовал. 2 - в обработчике Поля поиска недоступны входящие данные, поэтому такой сложный подход. Возможно есть другие пути решения, искал, не нашел.
6. fancy 16.01.19 13:27 Сейчас в теме
7. anchovy 12 21.01.19 13:13 Сейчас в теме
(16) 1. Можно, если в базе-приемнике есть аналогичный тип (в данном примере перечисление или справочник ВидДоговора) и создано ПКО, которое можно указать в ПКС выгружаемого параметра.
8. herfis 277 21.01.19 13:19 Сейчас в теме
А выгрузка/загрузка по этим правилам тестировалась через обмен данными БСП или внешними обработками КД?
Просто помню у меня не получалось заставить БСП передавать данные в параметр (просто не писалась эта информация в файл выгрузки).
9. wowik 557 21.01.19 13:46 Сейчас в теме
(8) правила тестировались внешними обработками КД.
10. e-9 29.01.19 15:28 Сейчас в теме
А что помешало сразу в ПКС ДоговорКонтрагентаВидДоговора, в обработчике "Перед выгрузкой", сделать "Значение = XMLСтрока(Источник.ДоговорКонтрагента.ВидДоговора)";
?)
11. wowik 557 29.01.19 15:45 Сейчас в теме
(10) не понял) здесь источником является Контрагент. Откуда "ДоговорКонтрагента" в контрагенте?
12. e-9 29.01.19 15:55 Сейчас в теме
а, да, сорри, невнимательно вчитался в задачу - не увидел, что надо по договору в РТУ определять
подумал, что условие на вид договора относится к основному договору контрагента
Оставьте свое сообщение