Имя: Пароль:
1C
 
(КД) ПКО использует "чужой" алгоритм поиска. Как объяснить чтобы не использовал?
,
0 DIvanmgn
 
26.06.15
08:42
Есть два ПКО справочника номенклатуры. В первом использую алгоритм поиска. (обработчик "Поля поиска").
Во втором не использую.
В ПКС документа указываю второй ПКО номенклатуры (без алгоритма поиска). Но при поиске отрабатывает алгоритм первого ПКО.

Отладчиком удалось нарыть следующее:
Функция НайтиОбъектПоСсылке

    Если Не ПустаяСтрока(ИмяПКО) Тогда
        
        ПКО = Правила[ИмяПКО];
        
    КонецЕсли;
    
    Если ПКО = Неопределено Тогда
        
        ПКО = ОпределитьПоТипуОбъектаПриемникаПравилоКонвертацииКотороеСодержитАлгоритмПоиска(СтруктураСвойств.ТипСсылкиСтрокой);
        
    КонецЕсли;
    
    Если ПКО <> Неопределено Тогда
        
        АлгоритмПоиска = ПКО.ПоследовательностьПолейПоиска;
        
    КонецЕсли;

Получается в нее не передается ИмяПКО.
Оно получается из атрибута объекта
ИмяПКО = одАтрибут(ФайлОбмена, одТипСтрока, "ИмяПКО");
Глянул файл обмена - там про ИмяПКО ничего:
<Свойство Имя="Номенклатура" Тип="СправочникСсылка.Номенклатура"><Ссылка Нпп="32" НеСоздаватьЕслиНеНайден="true">
    <Свойство Имя="КодУТ11" Тип="Строка">
        <Значение>00-00000567</Значение>
    </Свойство>
</Ссылка>
</Свойство>

Т.е. атрибут не заполняется при выгрузке. Хотя в ПКС указал нужное ПКО. Более того даже ИмяПКО явно прописал.

Помогите, пожалуйста, разобраться.
1 DIvanmgn
 
26.06.15
09:36
Кажется разобрался. Если хотя бы раз заполнен обработчик "Поля поиска", то для корректной обработки его нужно заполнять для всех ПКО этого типа.
2 DIvanmgn
 
26.06.15
11:39
Ну вот теперь теперь точно разобрался. Если приходится использовать обработчик "Поля поиска", то в нем необходимо предусмотреть обработку для всех ПКО с таким же типом загружаемых данных.

Другими словами на один тип работает один алгоритм поиска.

Хотя из интерфейса может показаться (как мне и показалось) что алгоритм поиска связан с ПКО.
3 Гёдза
 
26.06.15
11:44
правило поля поиска должно быть одно на искомый тип. если их несколько то будет браться случайное
4 Гёдза
 
26.06.15
11:44
Это ограничение КД
5 Cyberhawk
 
26.06.15
14:15
(2) и что делать - размножать код на все обработчики ПКО с одинаковыми типами приемников?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший