Имя: Пароль:
1C
1С v8
Поля поиска, затык
0 zak555
 
28.02.14
15:03
есть пко контрагенты (из 7 в 8)
вызывается из пкс некого дока пко (но у него нет источника)

пишу в полях поиска, но по наименованию не ищет
почему?

ИНН = СвойстваПоиска.Получить("ИНН");
КПП = СвойстваПоиска.Получить("КПП");

Если ЗначениеЗаполнено(ИНН) и ЗначениеЗаполнено(КПП) и НомерВариантаПоиска = 1 Тогда
    ПоляПоиска = "ЭтоГруппа, ИНН, КПП";
ИначеЕсли ЗначениеЗаполнено(ИНН) и НомерВариантаПоиска = 2 Тогда
    ПоляПоиска = "ИНН, ЭтоГруппа";
Иначе
    ПоляПоиска = "ЭтоГруппа, Наименование";    
КонецЕсли;
1 zak555
 
28.02.14
15:27
отладчик подсказывает, что запрос на поиск выполняется следующий


ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты ГДЕ ИНН = &ИНН И Наименование = &Наименование И КПП = &КПП
2 МойКодУныл
 
28.02.14
15:30
Странно, хотя из 7.7 никогда не писал обменов.
Галочка "поиск" у наименования стоит? И вообще у каких элементов они стоят?
Таких сочетаний полей как в запросе у тебя вообще нет?
3 МойКодУныл
 
28.02.14
15:31
у каких реквизитов, всмысле
4 zak555
 
28.02.14
15:31
(2) стоят у
ИНН
КПП
Наименование
ЭтоГруппа
5 zak555
 
28.02.14
15:32
6 МойКодУныл
 
28.02.14
15:37
Вот пример

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

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


Если СвойстваПоиска["ЭтоГруппа"] = Истина Тогда
    СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
Иначе
    Если НомерВариантаПоиска = 1 Тогда
        СтрокаИменСвойствПоиска = "КодСинхронизации";
    ИначеЕсли НомерВариантаПоиска = 2 Тогда    
        СтрокаИменСвойствПоиска = "ИНН, КПП";
    ИначеЕсли НомерВариантаПоиска = 3 Тогда
        СтрокаИменСвойствПоиска = "Наименование";
    Иначе
        СтрокаИменСвойствПоиска = "Код";
    КонецЕсли;
КонецЕсли;
7 МойКодУныл
 
28.02.14
15:37
В информации по обработчикам все есть)
8 zak555
 
28.02.14
15:40
(6) переделал, сработало

(7) тогда почему раньше работало ?
см. в 5
9 Йохохо
 
28.02.14
15:42
только логику еще поправь, если КПП не заполнен, сразу свалится в наименование, хотя логично попробовать ИНН
10 zak555
 
28.02.14
15:43
(9) если кпп не заполнен, то свалится в 2
11 zak555
 
28.02.14
15:44
+ (10)

если заполнен, только инн, а кпп нет (то логика 2)
в
против случае оп наименованию
12 Йохохо
 
28.02.14
15:44
на первом проходе в три
13 МойКодУныл
 
28.02.14
15:46
(8) ХЗ. я предпочитаю не разбираться с КД если получилось написать работающий вариант. Это все от лукавого.
(12) ага.
14 zak555
 
28.02.14
15:50
(12) переведи
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший