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

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


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

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

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

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