Имя: Пароль:
1C
1C 7.7
v7: Вывод списка номенклатуры с определенным префиксом в коде через запрос
0 brenli
 
26.11.17
08:13
Доброго времени.
Подскажите как составить запрос для вывода номенклатуры с префиксом который передан в качестве параметра.

Функция ПоискМаксимальногоНомераПоПрефиксуГруппы(Префикс)
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |БезИтогов;
    |КодНом = Справочник.Номенклатура.Код;
    |Группировка КодНом Без Групп;
    |Условие();
    |;";
        

КонецФункции

Или через запрос так не удастся?  Проще простым перебором?
1 SleepyHead
 
гуру
26.11.17
08:26
Условие(Найти(КодНом,"Префикс")>0);
2 VladZ
 
26.11.17
08:29
|Условие (Лев(КодНоменклатуры,2) = НужныйПрефикс);
3 SleepyHead
 
гуру
26.11.17
08:38
Функция ПоискМаксимальногоНомераПоПрефиксуГруппы(Знач Префикс)
    
    Префикс = СокрЛП(Префиск);
    ДлинаПрефикса = СтрДлина(Префикс);


    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = "
    |БезИтогов;
    |КодНом = Справочник.Номенклатура.Код;
    |Группировка КодНом Без Групп;
    |Условие("Лев(КодНом,"+ДлинаПрефикса+")=Префикс);
    |;";
4 brenli
 
26.11.17
11:04
Спасибо.
Но проблема такая:
Например передается префикс "ХР", а в отбор попадают элементы с номерами
ХРИн0531
ХРИн0532
ХРИн0533
ХРИн0534
ХРИн0535
ХРИн0536
ХРИн0537
ХРИн0538
ХРИн0539
ХРИн0540
ХРПМ0002
ХРПМ0003
ХРПМ0004
ХРПМ0007
ХРПМ0008
ХРПМ0012

а нужно получить именно все номера с префиксом ХР  например ХР00001, ХР00002 если  есть таковые либо не получить ничего.
Но условие Условие("Лев(КодНом,"+ДлинаПрефикса+")=Префикс);
возвращает набор представленный выше.
5 Ёпрст
 
26.11.17
11:20
(4)
Условие((Лев(КодНоменклатуры,2) = НужныйПрефикс))И (Число(Сред("КодНоменклатуры",2))>0);
6 SleepyHead
 
гуру
26.11.17
11:24
(4) В 11с77 не всегда такие вещи можно сделать запросом. Но можно отобрать запросом те, которые начинаются на нужный префикс, потом обойти группировки запроса и уже в обходе проанализировать код так, как нужно.
7 Ёпрст
 
26.11.17
11:27
(6) да всё там можно делать, вплоть до использования регулярки
8 SleepyHead
 
гуру
26.11.17
12:03
(7) Прямые запросы имеешь ввиду?
9 Ёпрст
 
27.11.17
09:59
(8) нет, чорные