Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   СКД: группировка по части наименования (http://forums.kuban.ru/f1040/skd_gruppirovka_po_chasti_naimenovaniya-5926514.html)

Sasha 21.07.2014 07:23

СКД: группировка по части наименования
 
Добрый день, возможно ли средствами СКД сделать группировку по части наименования номенклатуры?
Наименование выглядят следующим образом:
F8 900 Плоский
F8 900 Квадратный
F8 800 Плоский
F8 800 Плоский
Группировку необходимо сделать по числу после первого пробела - 800,900 или же только обработкой это выносить в доп.реквизит? Конфигурация УНФ 1.3

Климов Сергей 21.07.2014 08:39

Так не пойдёт?

ВЫБРАТЬ
ПОДСТРОКА(Банки.Наименование, 1, 6) КАК Поле1
ИЗ
Справочник.Банки КАК Банки

Sasha 21.07.2014 10:59

(1)Очень похоже на то что нужно, но есть одна загвоздка, не указанная в топике. Позиция первого пробела может изменяться :(
F8 900 Плоский
D39 900 Плоский
А как выяснить позицию первого пробела в наименовании в запросе и подставить эту позицию в функцию (1) умения у меня не хватает

Климов Сергей 21.07.2014 11:04

2(2) [em]выяснить позицию первого пробела в наименовании в запросе и подставить эту позицию в функцию[/em]
Так не получится, насколько я понимаю.

Sasha 21.07.2014 11:05

(+2)Еще мысль, есть в общих модулях функция РазложитьСтрокуВМассивПодстрок(), передав в качестве разделителя пробелы получим во втором параметре массива нужное значение. Осталось понять можно ли это использовать внутри запроса, что получить по этому значению группировку

Климов Сергей 21.07.2014 11:19

2(4) [em]можно ли это использовать внутри запроса[/em]
Насколько я понимаю - нет.

Sasha 21.07.2014 12:26

Ура, получилось. Пришлось добавить в общие модули функцию дублирующую функцию РазложитьСтрокуВМассивПодстрок, которая возвращает не массив, а конкретное значение массива, данном случае [1]
Выражение в вычисляемом поле выглядит следующим образом
СтроковыеФункцииКлиентСервер.тРазложитьСтрокуВМассивПодстрок(Номенклатура.Наименование, " ")


Текущее время: 04:31. Часовой пояс GMT +3.