Имя: Пароль:
1C
1С v8
Отбор в форме списка с условием ИЛИ
, , ,
0 AvtorVoprosa
 
11.09.17
16:09
Есть обыкновенная форма списка, допустим номенклатуры, там основаная таблица с типом данных СправочникСписок.Номенклатура.
По вводе в свое поле какой-то строки я осуществляю отбор по этой таблицы таким кодом

Процедура ПолеВводаСтрокаДляПоискаПриИзменении(Элемент)
    Список.Отбор.Наименование.Использование = Истина;
    Список.Отбор["Наименование"].Значение = ПолеВводаСтрокаДляПоиска;
    Список.Отбор["Наименование"].ВидСравнения = ВидСравнения.Содержит;
    
КонецПроцедуры

Такой код отбирает номенклатуру по наименованию, но есть ли какой-то способ сделать отбор одновременно и по наименованию и по коду.
P.S (Не и в коде и в наименовании есть моя строка, а или там или там, (или и там и там:D))
1 Lexey_
 
11.09.17
16:11
(0) только по списку ссылок, которые получишь запросом
2 AvtorVoprosa
 
11.09.17
16:13
(1) Вы имеете ввиду потом сделать так?: Список.Отбор["Наименование"].ВидСравнения = ВидСравнения.ВСписке;
3 Lexey_
 
11.09.17
16:14
(2) да
4 AvtorVoprosa
 
11.09.17
16:14
(3) поонятно, спасибо
5 Lexey_
 
11.09.17
16:14
(2) нет, Список.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
6 AvtorVoprosa
 
11.09.17
16:27
насколько я понял не важно какой реквизит
7 AvtorVoprosa
 
11.09.17
16:30
То есть у меня получается что-то вроде этого
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("СтрокаДляПоиска", СтрокаДляПоиска);
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.Наименование
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.Код ПОДОБНО &СтрокаДляПоиска
                   |    ИЛИ Номенклатура.Артикул ПОДОБНО &СтрокаДляПоиска
                   |    ИЛИ Номенклатура.Наименование ПОДОБНО &СтрокаДляПоиска
                   |    ИЛИ Номенклатура.НаименованиеПолное ПОДОБНО &СтрокаДляПоиска";
    Результат = Запрос.Выполнить().Выгрузить();
    
    //Если Результат.Количество() > 0 Тогда
    СписокНоменклатур = Новый СписокЗначений;
    СписокНоменклатур.ЗагрузитьЗначения(Результат.ВыгрузитьКолонку("Наименование"));
    
    Список.Отбор.Наименование.Использование = Истина;
    Список.Отбор["Наименование"].Значение = СписокНоменклатур;
    Список.Отбор["Наименование"].ВидСравнения = ВидСравнения.ВСписке;
8 AvtorVoprosa
 
11.09.17
16:32
Не) тут ошибка вот здесь вот:
    Список.Отбор["Наименование"].Значение = СписокНоменклатур;
9 Lexey_
 
11.09.17
16:38
(8) надо прочитать текст ошибки и исправить
10 AvtorVoprosa
 
11.09.17
16:47
(9) Ошибка при установке значения атрибута контекста (Значение)
    Список.Отбор["Наименование"].Значение = СписокНоменклатур;
по причине:
Неверный тип значения
11 AvtorVoprosa
 
11.09.17
16:47
Посмотрел в отладке - и там и там тип данных "СписокЗначений"
12 AvtorVoprosa
 
11.09.17
16:48
Но присваивать не хочет
13 AvtorVoprosa
 
11.09.17
16:50
А нет, все работает в последнем приведенном коде
14 Lexey_
 
11.09.17
16:50
(10) сначала ВидСравнения меняй, потом остальное