|
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) Не, он нужен только для тех, кто не посетил ещё более чудесный мир прямых запросов.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |