|   |   | 
| 
 | КД 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) ПрекратитьПоиск пробуй     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |