Вход | Регистрация
 

КД 2.1 почему конвертация отказывается искать по полям поиска ?

КД 2.1 почему конвертация отказывается искать по полям поиска ?
Я
   Бешеный заяц
 
03.06.21 - 13:28
Имеем правила выгрузки справочника из ЕРП в УПП
В ерп заведен реквизит КодУпп куда заносят код аналогичного справочника упп те получается КодУпп-> Код
по этим же полям стоит поиск.
В правилах стоит поиск по ссылке и поиск по полям поиска.
Почему то если по ссылке не нашел он создает новый, котя "код" подобный есть уде в справочнике.
Вопрос как лечить?
 
 Партнерская программа EFSOL Oblako
   mikecool
 
1 - 03.06.21 - 13:37
продолжать поиск по полям поиска?
   Бешеный заяц
 
2 - 03.06.21 - 13:39
(1) стоит
   mikecool
 
3 - 03.06.21 - 13:40
событие Поля поиска - может в нем косой
   Бешеный заяц
 
4 - 03.06.21 - 13:56
(3) нет там все пусто было, только сейчас стал добавлять ручной поиск
   Бешеный заяц
 
5 - 03.06.21 - 13:58
пытался копировать код и сравнивать между собой, все совпадает, может "левые" соимолы какие?
хотя делаю СОКРЛП при выгрузке
   Бешеный заяц
 
6 - 03.06.21 - 14:14
Вопрос: если отключу поиск по ссылке, а оставлю только поиск по реквизиту, в базе приемника новый элемент с каким Гуид создастся? со своим или от источника придет? насколько помню есть особенности.
   welwel
 
7 - 03.06.21 - 14:47
>отключу поиск по ссылке
Гуид источника тогда выгружаться не будет
   Бешеный заяц
 
8 - 03.06.21 - 16:53
по какой причине может не обрабатывать модуль "Поля поиска"?
Попытался в нем "в ручную" искать вот код
Код = ПараметрыОбъекта.Получить("КодДляПоиска");
УИД = ПараметрыОбъекта.Получить("УИДДляПоиска");

РезультатПоСсылке = Справочники.Контрагенты.ПолучитьСсылку(Новый УникальныйИдентификатор(УИД));


Если РезультатПоСсылке.ПолучитьОбъект() = Неопределено   Тогда
        Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    Контрагенты.Ссылка
    |ИЗ
    |    Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    Контрагенты.Код ПОДОБНО &Код";
    Запрос.УстановитьПараметр("Код","%"+Код+"%");
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        СсылкаНаОбъект = Выборка.Ссылка.Ссылка;
    КонецЕсли;
    
Иначе
    
    СсылкаНаОбъект = РезультатПоСсылке;
КонецЕсли;
   mistеr
 
9 - 03.06.21 - 17:19
(0) В файле-то код правильный?
   RomanYS
 
10 - 03.06.21 - 17:23
(8) А ты точно как параметры передаешь? Признак поиска у них включен?

"СвойстваПоиска – соответствие, в котором хранятся текущие значения реквизитов поиска. Эти значения можно использовать в произвольных алгоритмах для идентификации объектов ИБ при загрузке данных. Следует иметь в виду, что при создании нового объекта, значения из соответствия СвойстваПоиска используются для заполнения свойств нового объекта.

ПараметрыОбъекта - либо Неопределено либо Соответствие, в котором хранятся дополнительные параметры, переданные для данного объекта из источника в приемник. Если параметров передано не было, то ПараметрыОбъекта = Неопределено. В данном обработчике соответствие содержит только те параметры, для которых установлен признак поиска."
   Бешеный заяц
 
11 - 03.06.21 - 17:29
(10) я их как параметры выгружаю и обращаюсь
https://ibb.co/z2x4XJ6
   Бешеный заяц
 
12 - 03.06.21 - 17:42
(10) на всякий случай даже поставил поиск по ним, хотя это не обязательно так как параметры и так должны присутствовать
   RomanYS
 
13 - 03.06.21 - 17:58
(12) Без флага не должны
<В данном обработчике соответствие содержит только те параметры, для которых установлен признак поиска>
   Pro-tone
 
14 - 03.06.21 - 18:36
(0) дело может быть в том, что ты не поставил СокрЛП() на поле с кодами, по идее надо там и там.

В ПКС "КодУпп": Значение = СокрЛП(Источник.КодУпп);
   Pro-tone
 
15 - 03.06.21 - 18:37
или проблема с лидирующими нулями может быть еще
   Pro-tone
 
16 - 03.06.21 - 18:38
короче, формат кода должен быть полностью одинаков, убраны лишние пробелы
   Бешеный заяц
 
17 - 03.06.21 - 18:39
Модуль "Поля поиска" не отрабатывает, поместил туда запись в журнал регистрации дабы понять что происходит, записи нет, может есть возможность принудительно толкнуть его? или нужны обязательные параметры чтобы он принялся отрабатывать?
Код = ПараметрыОбъекта.Получить("КодДляПоиска");
УИД = ПараметрыОбъекта.Получить("УИДДляПоиска");
РезультатПоСсылке = Справочники.Контрагенты.ПолучитьСсылку(Новый УникальныйИдентификатор(УИД));
Если РезультатПоСсылке.ПолучитьОбъект() = Неопределено   Тогда
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    Контрагенты.Ссылка
    |ИЗ
    |    Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    Контрагенты.Код ПОДОБНО &Код";
    Запрос.УстановитьПараметр("Код","%"+Код+"%");
    Выборка = Запрос.Выполнить().Выбрать();
    //ЗаписьЖурналаРегистрации("Поиск по коду: "+Код, УровеньЖурналаРегистрации.Информация,,,"Выполнено", РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);

    
    
    ТипЗаписи = "Ошибка";
    
    Узел = ПланыОбмена.ОбменУправлениеПредприятиемУПП13.НайтиПоКоду("УПП13"); 
    ЗаписьЖурналаРегистрации("Обмен данными.ОбменУправлениеПредприятиемУПП13.Отправка данных"
    ,УровеньЖурналаРегистрации[ТипЗаписи]
    ,Узел.Метаданные()
    ,Узел
    ,"Поиск по коду: "+Код);
    
    Если Выборка.Следующий() Тогда
        СсылкаНаОбъект = Выборка.Ссылка.Ссылка;
        ПрекратитьПоиск = Истина;
    КонецЕсли;
Иначе
    //ЗаписьЖурналаРегистрации("Поиск по гуид: "+Код, УровеньЖурналаРегистрации.Информация,,,"Выполнено", РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);

    
    Узел = ПланыОбмена.ОбменУправлениеПредприятиемУПП13.НайтиПоКоду("УПП13"); 
    ЗаписьЖурналаРегистрации("Обмен данными.ОбменУправлениеПредприятиемУПП13.Отправка данных"
    ,УровеньЖурналаРегистрации[ТипЗаписи]
    ,Узел.Метаданные()
    ,Узел
    ,"Поиск по гуид: "+Код);
    
    СсылкаНаОбъект = РезультатПоСсылке;
    ПрекратитьПоиск = Истина;
КонецЕсли;
   Бешеный заяц
 
18 - 03.06.21 - 18:41
(16) сокрЛП при выгрузке делаю, в консоли "код" в приемнике проверял, даже коды символов сверял все сходится.
   Pro-tone
 
19 - 03.06.21 - 18:43
(17) должны стоять галки "продолжить искать по полям поиска", галки "Поиск" на самих полях включены должны быть
   Бешеный заяц
 
20 - 03.06.21 - 18:45
(19) стоит галка продолжить по полям поиска, и у полей галка стоит
   Бешеный заяц
 
21 - 03.06.21 - 18:51
у меня онлайн обмен может тут особенности есть?
   Pro-tone
 
22 - 03.06.21 - 19:10
(21) да есть, он другую обработку использует, ОбменXML либо КонвертацияОбъектовИБ
   Pro-tone
 
23 - 03.06.21 - 19:11
ОбменXML работает кошерно, КонвертацияОбъектовИБ - нет
   Бешеный заяц
 
24 - 03.06.21 - 19:15
(22) а куда мне тогда алгоритм поиска поместить при онлайн обмене? или в той обработке данный модуль должен отрабатывать?
В каком модуле мне можно еще ссылку подменить? например произвести поиск и если нашел подменить на другой, а у текущего поставить "Отказ = Истина;"
или больше негде пере определиться нельзя?
   Pro-tone
 
25 - 03.06.21 - 19:17
(24) надо лезть в код обработки смотреть параметры какие в процедуре или функции поиска "найтиОбъект" как-то так
   Pro-tone
 
26 - 03.06.21 - 19:17
ставить отладку туда
   hhhh
 
27 - 03.06.21 - 20:27
(24) ПрекратитьПоиск пробуй


Список тем форума
 
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.