Имя: Пароль:
1C
1С v8
КД 2. Поля поиска установить некоторые реквизиты поиска
0 echo77
 
10.08.15
17:01
В обработчике события ПоляПоиска пишу:

Если СвойстваПоиска["ЭтоГруппа"] = Ложь Тогда
    Если НомерВариантаПоиска = 1 тогда
        СтрокаИменСвойствПоиска = "ИНН, КПП";
Если СвойстваПоиска["ЭтоГруппа"] = Ложь Тогда
    Если НомерВариантаПоиска = 1 тогда
        СтрокаИменСвойствПоиска = "ИНН, КПП";
        УстанавливатьУОбъектаВсеСвойстваПоиска = Ложь;
    ИначеЕсли НомерВариантаПоиска = 2 тогда
        СтрокаИменСвойствПоиска = "Код, Наименование, ЭтоГруппа";
    Иначе
        СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
    КонецЕсли;
Иначе
    Если НомерВариантаПоиска = 1 тогда
        СтрокаИменСвойствПоиска = "Код, Наименование, ЭтоГруппа";
    Иначе
        СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
    КонецЕсли;
КонецЕсли;
    ИначеЕсли НомерВариантаПоиска = 2 тогда
        СтрокаИменСвойствПоиска = "Код, Наименование, ЭтоГруппа";
    Иначе
        СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
    КонецЕсли;
Иначе
    Если НомерВариантаПоиска = 1 тогда
        СтрокаИменСвойствПоиска = "Код, Наименование, ЭтоГруппа";
    Иначе
        СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
    КонецЕсли;
КонецЕсли;


Как заставить конвертацию, в случае успешного поиска контрагента по ИНН+КПП не переписывать в найденном объекте поля Код и Наименование?
1 Aleksey
 
10.08.15
17:16
а за что отвечает параметр УстанавливатьУОбъектаВсеСвойстваПоиска ?

УстанавливатьУОбъектаВсеСвойстваПоиска - булево. Определяет нужно ли после удачного завершения поиска установить объекту все реквизиты поиска. Объект может быть найден по части реквизитов. Этот флаг определяет нужно оставшиеся реквизиты, которые не участвовали в поиске (но по которым поиск возможен) установить объекту или нет. Значение по умолчанию: Истина.

(я просто ниразу им не пользовался, но по смыслу очень похоже на то, что нужно)
2 echo77
 
10.08.15
17:20
А я вот пользуюсь и невкурю почему он мне для не найденных объектов все портит
3 echo77
 
11.08.15
06:43
Как мне не устанавливать поле Код, если элемент найден по ИНН/КПП?
4 echo77
 
11.08.15
11:40
ап?
5 echo77
 
11.08.15
13:46
Решил задачу следующим образом:

В полях поиска ищем контрагента разными способами(элементы, группы ищутся по-разному):

// Строка ниже только для отладки
// Сообщить("Поиск «" + СвойстваПоиска["Наименование"] + ". Вариант " + НомерВариантаПоиска);

// Проверим является ли значение в поле ИНН числом
типЧисло = Новый ОписаниеТипов("Число");
ИНН = типЧисло.ПривестиЗначение(СвойстваПоиска["ИНН"]);
ИННЭтоЧисло = ИНН>0;

// Для элементов свои правила
Если СвойстваПоиска["ЭтоГруппа"] = Ложь Тогда
    Если НомерВариантаПоиска = 1 И ИННЭтоЧисло Тогда
        СтрокаИменСвойствПоиска = "ИНН, КПП";
    ИначеЕсли НомерВариантаПоиска = 2 Тогда
        СтрокаИменСвойствПоиска = "Код, Наименование, ЭтоГруппа";
    ИначеЕсли  НомерВариантаПоиска = 3 Тогда
        СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
    КонецЕсли;
// Для групп свои
Иначе
    Если НомерВариантаПоиска = 1 Тогда
        СтрокаИменСвойствПоиска = "Код, Наименование, ЭтоГруппа";
    ИначеЕсли НомерВариантаПоиска = 2 Тогда
        СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
    КонецЕсли;
КонецЕсли;


В обработчике события ПриЗагрузке для существующих объектов устанавливаю код из ссылки:

// Для существующих объектов код всегда будет такой как в базе-приемнике
Если ОбъектНайден И Объект.Код <> Объект.Ссылка.Код Тогда
    Объект.Код = Объект.Ссылка.Код;
КонецЕсли;
6 asder117
 
11.08.15
16:35
(5) Уважаемый! Большое спасибо, всех благ