Имя: Пароль:
1C
 
Длина строки в запросе.
0 Zombi
 
08.06.15
12:06
Есть документ, в документе есть текстовое поле. Как запросом отобрать только документы, у которых длинна значения в этом поле = 10?
1 Chikko
 
08.06.15
12:08
ПОДОБНО "__________"
2 Zombi
 
08.06.15
12:11
(1) Что то ничего не выбирает.
3 Zombi
 
08.06.15
12:11
ВЫБРАТЬ
    ЗаказСервисОргтехника.Серийник,
    ЗаказСервисОргтехника.Y
ИЗ
    Документ.ЗаказСервисОргтехника КАК ЗаказСервисОргтехника
ГДЕ
    ЗаказСервисОргтехника.Серийник ПОДОБНО "          "
4 Lexey_
 
08.06.15
12:13
(3) тут копипастера звать надо
5 Heckfy
 
08.06.15
12:13
6 Jonny_Khomich
 
08.06.15
12:13
Думаю можно взять подстрока(строка,1,10) сравнить с полной строкой. Те которые равны, сравнить ещё с подстрока(строка,1,9). Те которые не равны тебе нужны.
7 DirecTwiX
 
08.06.15
12:13
ГДЕ Серийник = ПОДСТРОКА(Серийник ,1,10)
8 vicof
 
08.06.15
12:14
(3) Там подчеркивания нужны, а не пробелы
9 Fragster
 
гуру
08.06.15
12:20
ПОДСТРОКА(Серийник ,11,1) = ""
10 Fragster
 
гуру
08.06.15
12:21
и ПОДСТРОКА(Серийник ,10,1) <> ""
11 Jonny_Khomich
 
08.06.15
12:30
А можно узнать количество символов в строке?
12 DirecTwiX
 
08.06.15
12:31
(11) нет
13 Zombi
 
08.06.15
12:41
(9) (10) Вроде работает. Спасибо.
14 Ildarovich
 
08.06.15
13:17
Если строка содержит правые пробелы, то (9) и (10) работать не будет.
Правильнее
ПОДСТРОКА(Серийник, 10, 1) + "!" <> "!" И ПОДСТРОКА(Серийник, 11, 1) + "!"= "!"  

Общий метод определения длины строки приведен в статье http://catalog.mista.ru/public/306536/ , а конкретно в решении 21. Его улучшение - в комментариях (61) (62) к той же статье.
15 Fragster
 
гуру
08.06.15
13:42
(14) правые пробелы при приведении к варчар отсекаются, а вот для строки 0123456789!1234556 вариант с ПОДСТРОКА(Серийник + "!", 10, 1) даст ошибку
16 Ildarovich
 
08.06.15
13:57
(15) ну и что, что отсекаются? А для строки 0123456789!1234556 вариант с ПОДСТРОКА(Серийник + "!", 10, 1) дает не ошибку (какую?) а 9.
17 ЧеловекДуши
 
08.06.15
14:10
(0) Забить, реально забить на этот момент.

Нарисуй Регистр сведений, где будет держать "нужные" отборы и по ним уже отбирать и предоставлять информацию пользователю.

Разницы он, Пользователь, не увидит. Ну разве что только Системный администратор с вопросом "Чет БД распухла, пора Винты заказывать!!!" :)
18 ЧеловекДуши
 
08.06.15
14:11
+(17) При записи Объекта "Документ" или "Справочник" заполнять регистр нужными значениями :)
19 Бубка Гоп
 
08.06.15
14:12
(17) (18) шта?
20 ЧеловекДуши
 
08.06.15
14:14
(19) Чи-т-О!1,  Создать заблаговременный массив отбора для тупого фильтра на подоию в (0).    Ундерстенд?
21 Fragster
 
гуру
08.06.15
14:15
(16) ошибка в определении длины строки будет, если в строке будет встречаться тот самый символ, которым мы "закрываем" строку. ну не с 0 начинай, а с 1.

а то, что отсекаются - значит сравнение с пустой строкой будет правильно работать. и при сохранении эти пробелы также обрежутся для типа варчар.
22 Ildarovich
 
08.06.15
14:45
Ошибки НЕ БУДЕТ! - Там же два сравнения. Я не только с закрывашкой сравниваю.

По второму вопросу: Что, из базы нельзя взять строку из 10-ти пробелов? - Проверю.
23 Бубка Гоп
 
08.06.15
14:54
(20) я думал это шутка такая. Ну и методы у вас, коллега
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший