Имя: Пароль:
1C
1C 7.7
v7: Как найти элемент в справочнике по наименованию без учета регистра?
0 toypaul
 
гуру
07.08.13
15:44
выбратьпореквизиту не работает
найтипонаименованию ищет только первый элемент - как в выборе встать на него и продолжить обход не понятно.
1 Banned
 
07.08.13
15:45
Запрос напиши, используя известную компоненту toqsql
2 Banned
 
07.08.13
15:45
*toysql, пардон
3 toypaul
 
гуру
07.08.13
15:47
не. база дбф :)

да и вопрос неправильно написал - надо найти все элементы. полный перебор не хочется делать.
4 Banned
 
07.08.13
15:49
Не хочешь toysql, возьми 1c++

А что, простой запрос ищет с учётом?
5 toypaul
 
гуру
07.08.13
15:52
да запрос ищет с учетом
6 Ёпрст
 
07.08.13
15:53
выбратьэлементыпореквизиту

ну или 1cpp или 1sqlite
7 toypaul
 
гуру
07.08.13
15:55
выбратьэлементыпореквизиту  не работает.
8 exwill
 
07.08.13
16:09
в запросе условие типа:
наименование>=нрег(строкапоиска) и наименование<=врег(строкапоиска)
9 Chum
 
07.08.13
16:15
выбратьэлементыпореквизиту  по штатному Наименование работать не будет. Это для реквизитов с признаком Отбор и Сортировка.

Если в штатный запрос, в условия не получится добавить строковую функцию Найти, то запили свою функцию с блэкждеком и шлюхами. Что-то вроде:

Функция НайтиВНаименовании(п_Наименование)
Возврат Найти(ВРЕГ(ЧтоИщем), ВРЕГ(п_Наименование));
КонецФункции;

...
|Условие(НайтиВНаименовании(Справочник.ТекущийЭлемент.Наименование) <> 0);
|
10 Chum
 
07.08.13
16:15
Ну или прямой запрос с Like
11 Ёпрст
 
07.08.13
16:21
(7) ну и ладно, если не хочешь сторонних вк, лкромя своей,
тупо чорный запрос или ado
12 Ёпрст
 
07.08.13
16:23
Ну или так, найдёт не быстро, а очень быстро (ибо по индексу)

НачатьТранзакцию();
Пока Спр.НайтиПоНаименованию(...)=1 Цикл
  СЗ.ДобавитьЗначение(Спр.ТекущийЭлемент());
  спр.Удалить();
КонецЦикла;
ОтменитьТранзакцию();
СЗ.ВыбратьЗначение(,);
13 Ёпрст
 
07.08.13
16:23
правда, есть одно но - если есть открытая форма элемента у кого либо - "обломсъ"..
14 Ковычки
 
07.08.13
16:25
(13) метод рупора абсурда добавить ?
15 Ёпрст
 
07.08.13
16:32
(14) эээ это который ?
16 Ёпрст
 
07.08.13
16:32
кидай
17 kupec
 
07.08.13
16:33
Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса =
        "//{{ЗАПРОС(Товары)
        |Обрабатывать НеПомеченныеНаУдаление;
        |Товар=Справочник.Товары.ТекущийЭлемент;
        |Название=Справочник.Товары.Наименование;
        |Группировка Товар Без Групп;
        |Условие(Найти(Строка(Нрег(Название)),Нрег(СтрокаПоиска))<>0);
        |"//}}ЗАПРОС
        ;
18 kupec
 
07.08.13
16:33
+(17) или не пойдет?
19 Ковычки
 
07.08.13
16:39
(15)
Попытка
    спр.Удалить();
Исключение
    Прервать;
КонецПопытки;


но облом не изменит
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс