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






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

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

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

 

 

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

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

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

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

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

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

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

13 Comments

  1. spe1c

    В правиле конвертации объекта используйте обработчик «Поля поиска»

    Reply
  2. wowik

    (1) не понял, что не так?

    Reply
  3. spe1c

    (2)Все так, я просто не заметил сначала ссылку на публикацию, думал это вопрос такой.

    Reply
  4. fancy

    1) А само значение перечисления вид договора нельзя передать и анализировать без XMLСтрока?

    2) Нельзя ли обойтись без создания доп.параметра, в Исходящие данные ПКС контрагента добавить ВидДоговора, в ПКО Контрагенты в обработчике Поля поиска анализировать Входящие данные или там Входящие данные недоступны?

    Reply
  5. wowik

    (4) 1 — не пробовал. 2 — в обработчике Поля поиска недоступны входящие данные, поэтому такой сложный подход. Возможно есть другие пути решения, искал, не нашел.

    Reply
  6. fancy

    (5)понял, спс

    Reply
  7. anchovy

    (16) 1. Можно, если в базе-приемнике есть аналогичный тип (в данном примере перечисление или справочник ВидДоговора) и создано ПКО, которое можно указать в ПКС выгружаемого параметра.

    Reply
  8. herfis

    А выгрузка/загрузка по этим правилам тестировалась через обмен данными БСП или внешними обработками КД?

    Просто помню у меня не получалось заставить БСП передавать данные в параметр (просто не писалась эта информация в файл выгрузки).

    Reply
  9. wowik

    (8) правила тестировались внешними обработками КД.

    Reply
  10. e-9

    А что помешало сразу в ПКС ДоговорКонтрагентаВидДоговора, в обработчике «Перед выгрузкой», сделать «Значение = XMLСтрока(Источник.ДоговорКонтрагента.ВидДоговора)»;

    ?)

    Reply
  11. wowik

    (10) не понял) здесь источником является Контрагент. Откуда «ДоговорКонтрагента» в контрагенте?

    Reply
  12. e-9

    а, да, сорри, невнимательно вчитался в задачу — не увидел, что надо по договору в РТУ определять

    подумал, что условие на вид договора относится к основному договору контрагента

    Reply
  13. veritasuna12

    (2) Запрещено писать ЛС. Свяжись пожалуйста со мной veritas.una.12(sobaka)gmail(dot)com

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *