Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Выбор Элемента из Справочника по нескольким условиям

Выбор Элемента из Справочника по нескольким условиям
Я
   Pyryrym
 
16.08.20 - 17:29
Можно ли в 1С производить поиск в справочнике по нескольким условиям? Например, зная группу, искать элемент только в этой группе.
   МихаилМ
 
1 - 16.08.20 - 17:31
да. можно.
   Pyryrym
 
2 - 16.08.20 - 17:32
А каким образом можно? Просто я не уверен, будет ли это лучше по производительности?
   osa1C
 
3 - 16.08.20 - 17:39
(0)

 СсылкаНаРодителя = Справочники.Вкусы.НайтиПоНаименованию("Любимые");
 
 
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Наименование
        |ИЗ
        |   Справочник.Вкусы КАК Вкусы
        |ГДЕ
        |   Вкусы.Родитель = &Родитель";
 
    Запрос.УстановитьПараметр("Родитель", СсылкаНаРодителя);
 
    РезультатЗапроса = Запрос.Выполнить();
 
    ВыборкаВкусов = РезультатЗапроса.Выбрать();
 
    Пока ВыборкаВкусов.Следующий() Цикл
        Сообщить(ВыборкаВкусов.Наименование);
    КонецЦикла;
   Pyryrym
 
4 - 16.08.20 - 17:43
Спасибо огромное
   Pyryrym
 
5 - 16.08.20 - 18:29
(3) А не подскажешь, в чем может быть проблема? Строка.Группа содержит название группы
    Запрос = Новый Запрос;
    Запрос.Текст =  "ВЫБРАТЬ
                    |    Номенклатура.Наименование КАК Наименование
                    |ИЗ
                    |    Справочник.Номенклатура КАК Номенклатура
                    |ГДЕ
                    |    Номенклатура.Родитель = &Родитель";
    
    Запрос.УстановитьПараметр("Родитель", Строка.Группа);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл                          //на этой строчке отладчик пишет, что Выборка.Наименование - "Ошибка чтения запроса" 

    Сообщить(Выборка.Наименование);    
    КонецЦикла;
   osa1C
 
6 - 16.08.20 - 18:47
(5) Думаю что  Строка.Группа содержит текстовое значение, а нужна ссылка на группу. Попробуй:

СсылкаНаРодителя = Справочники.Вкусы.НайтиПоНаименованию(Строка.Группа");

Запрос.УстановитьПараметр("Родитель", СсылкаНаРодителя);
   osa1C
 
7 - 16.08.20 - 18:48
+ (6) Кавычку только в конце не надо )))
   Pyryrym
 
8 - 16.08.20 - 18:55
(6) Не помогло(
   youalex
 
9 - 16.08.20 - 18:57
(5) >>Пока Выборка.Следующий() Цикл 

До первого выполнения метода Следующий() и должно так писать.
Внутри цикла же этой ошибки нет? И при втором проходе?
   osa1C
 
10 - 16.08.20 - 18:59
(8) покажи откуда ты эту Строку берешь
   Pyryrym
 
11 - 16.08.20 - 19:03
(10) (9) Работает, просто у меня там еще одна ошибка была, которая выскакивала сразу после цикла. Сейчас все нормально, спасибо, всех обниммаю (9) (9)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.