Имя: Пароль:
1C
1C 7.7
v7: Как запросом выбрать Наименования с лидирующими пробелами?
0 Umka2008
 
21.02.14
21:13
Торговля 77. Есть справочник Номенклатуры - в ней некоторые товары с пробелами - нужно их выбрать.
Перебор справочника не дает результата - он не видит пробелы впереди
Как бы выбрать через Запрос?
1 Torquader
 
21.02.14
21:19
Не понял - как не даёт результата ?
2 2S
 
21.02.14
21:21
код в студию
3 Рэйв
 
21.02.14
21:21
(0)Стандартный вопрос.
Нафейхуа?
4 Umka2008
 
21.02.14
21:25
Пример: Есть " Валенки".
Ищу перебором:
     Спр.ВыбратьЭлементы();
     Пока Спр.ПолучитьЭлемент()=1 Цикл
               Поиск = Спр.Наименование;
               Если Лев(Поиск,1)=" " Тогда
                             //вот тут не выводит, не попадает
5 2S
 
21.02.14
21:26
что хотите получить в результате?
6 Мимохожий Однако
 
21.02.14
21:26
А не проще один раз пройтись по справочнику и убрать пробелы впереди?
7 Torquader
 
21.02.14
21:27
Он, видимо, хочет найти пустые элементы.
8 Мимохожий Однако
 
21.02.14
21:31
Он не расколется
9 Umka2008
 
21.02.14
21:31
их убирать не надо. их просто нужно найти
10 Torquader
 
21.02.14
21:32
(9) Если они есть, то, скорей всего, там символ с кодом 160.
Потому как, просто пробел - это не интересно.
11 Umka2008
 
21.02.14
21:41
Нет - там код 110 - то есть первой буквы за пробелом
вот так проверил - Сообщить(КодСимв(Лев(Поиск,1)));
вывел 110 = "n"
12 Torquader
 
21.02.14
21:42
(11) Что-то здесь не так.
13 Umka2008
 
21.02.14
21:43
попробуй сделать у себя " Товар" и "Товар" и найти только 1ый
14 Torquader
 
21.02.14
21:52
(13) Тебе и говорят, хочешь использовать пробелы - пиши их как 160, иначе "умная" 1С делает СокрЛП при выводе наименования.
15 Umka2008
 
21.02.14
22:01
14 - интересная мысль, пасиб
16 Torquader
 
21.02.14
22:02
(15) Просто, если они уже у тебя есть - прогони обработку, которая перезапишет наименования - тогда пробелы исчезнут.
Ну, или "прямой доступ к dbf-у"
17 Мимохожий Однако
 
21.02.14
22:45
(16)см (9). )))
18 Torquader
 
21.02.14
22:49
(17) Ну если там Симв(32), то не найдёт он их ни как - так 1С устроена.
19 Мимохожий Однако
 
21.02.14
23:00
Если перебором, то можно сравнить строковую длину наименования со строковой длиной после метода СОКРЛ().
20 Torquader
 
21.02.14
23:12
Больший прикол вот в чём - если структуру справочника поменять, то при реструктуризации справочника 1с потеряет все пробелы в начале.
Так что нужно использовать пробелы с кодом 160.
21 Torquader
 
21.02.14
23:24
А, запросом, кстати - выбирается.
    зпр=СоздатьОбъект("Запрос");
    зпр.Выполнить("
        |ИмяНаше=Справочник.Наш.Наименование;
        |СсылкаНаша=Справочник.Наш.ТекущийЭлемент;
        |Группировка ИмяНаше;");
    Пока зпр.Группировка(1)=1 Цикл
        Сообщить(зпр.ИмяНаше+":"+зпр.СсылкаНаша);
    КонецЦикла;
Так что - тема отражает суть ответа.
22 Torquader
 
21.02.14
23:25
Точнее:
    зпр=СоздатьОбъект("Запрос");
    зпр.Выполнить("
        |ИмяНаше=Справочник.Наш.Наименование;
        |СсылкаНаша=Справочник.Наш.ТекущийЭлемент;
        |Группировка ИмяНаше;
        |Условие(Лев(ИмяНаше,1)="" "");");
    Пока зпр.Группировка(1)=1 Цикл
        Сообщить(зпр.ИмяНаше+":"+зпр.СсылкаНаша);
    КонецЦикла;
23 Torquader
 
21.02.14
23:25
Так что, прекрасный мир чёрных запросов иногда оказывается очень нужен.
24 Ёпрст
 
22.02.14
00:17
(23) конечно нужен, иногда полезен, для иерархии , к примеру.
25 Torquader
 
22.02.14
15:38
(24) Не, он нужен только для тех, кто не посетил ещё более чудесный мир прямых запросов.