Имя: Пароль:
1C
 
Получение последних N символов в конце строки в запросе
0 webber
 
24.03.11
12:28
как можно получить определенное количество последних символов из строки (например, из наименования товара)?
1 Wobland
 
24.03.11
12:30
ПОДСТРОКА(НекоеПоле, ДЛИНАСТРОКИ(НекоеПоле)-СколькоТамНужно, СколькоТамНужно)
2 butterbean
 
24.03.11
12:32
(1) ДЛИНАСТРОКИ() - реально есть такая функция??
3 Wobland
 
24.03.11
12:33
(2) так СП говорит, ни разу не юзал
4 dimoff
 
24.03.11
12:33
Только километровым выбором. При условии что слова в наименовании не будут разделены более чем 4-символьным пробелом, а длина наименования 80 символов выглядеть будет так

КОГДА ПОДСТРОКА(Наименование, 4, 4) = "    " Тогда
ПОДСТРОКА(Наименование, 1, 3)
КОГДА ПОДСТРОКА(Наименование, 5, 4) = "    " Тогда
ПОДСТРОКА(Наименование, 2, 3)

и т.д.

Впроччем подобную строку можно сотавить программно
5 dimoff
 
24.03.11
12:34
Если есть реально такая функция ДлинаСтроки то (4) не читать
6 PetrVV
 
24.03.11
12:35
Тебе надо добавить реквизит в справочник "Номенклатура", назвать его можно длина "Длина наименования".

Тогда в запросе ты можешь написать так:
ПОДСТРОКА(Номенклатура.Наименование,Номенклатура.ДлинаНаименование-5,5)
7 butterbean
 
24.03.11
12:35
(3) платформу не подскажешь, где СП такое говорит
8 dimoff
 
24.03.11
12:35
(6) Не проще тогда сразу в реквизит последние 3 символа записывать?
9 webber
 
24.03.11
12:36
(1) ДЛИНАСТРОКИ - такого нет, иначе было бы элементарно все)
(4) да, вариант рассматривал, но не стал извращаться (длина наименования 200 символов), проще кодом пройтись по табличке потом
10 PetrVV
 
24.03.11
12:36
Функции ДлинаСтроки() никогда не встречал, если и правда есть, то (6) не читать.
11 Wobland
 
24.03.11
12:37
(7) 1С:Предприятие 8.1 (8.1.15.14)
12 PetrVV
 
24.03.11
12:38
(8) По условию задачи у него может быть разное количество символов, почему 3 ?
13 Wobland
 
24.03.11
12:38
Подстрока
Данная функция предназначена для выделения подстроки из строки.

Параметры:

Строка. Тип Строка. Строка, из которой выделяют подстроку;
Позиция. Тип Число. Позиция символа, с которого начинается выделяемая из строки подстрока;
Длина. Тип Число. Длина выделяемой подстроки.
Пример:

ПОДСТРОКА(Контрагенты.Адрес, 1, 4)

ДлинаСтроки
Функция предназначена для определения длины строки.

Параметр:

Строка. Тип Строка. Строка, длину которой определяют.
Пример:

ДлинаСтроки(Контрагенты.Адрес)
14 webber
 
24.03.11
12:38
(6) тогда правильнее сделать реквизит под это значение, а не под количество символов :)
15 Wobland
 
24.03.11
12:40
чорт, не работает! а в СП написано
16 dimoff
 
24.03.11
12:40
(12) Сорри, торможу.
17 webber
 
24.03.11
12:41
(12) ну на самом деле количество символов статично в данном случае. конкретно, нужно 7. но важнее сам подход.
я так понимаю, что проще кодом обработать таблицу после формирования
18 Wobland
 
24.03.11
12:44
кто-нибудь СП смотрел? у меня у одного такой интересный?
(17) действительно, кодом после лучше
19 hhhh
 
24.03.11
12:45
(15) это функция выражений СКД.
20 Wobland
 
24.03.11
12:45
(19) точно! в заголовок не посмотрел
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.