Имя: Пароль:
1C
1С v8
Разделить один столбец на несколько (СКД).
0 AndrewM
 
03.05.13
08:36
Возможно ли в СКД такое разделение?

Пример, результат запроса:

Хеллоу1 | Хай1
Хеллоу1 | Хай2
Хеллоу2 | Хай1
Хеллоу2 | Хай2
Хеллоу3 | Хай1
Хеллоу3 | Хай2

Нужно получить следующее:

Хеллоу1 Хеллоу2 Хеллоу3
------- ------- -------
 Хай1    Хай1    Хай1
 Хай2    Хай2    Хай2

Умеет ли СКД такое? Если да, то подскажите, как.
1 Wobland
 
03.05.13
08:41
подстрокой можно поделить любую строку
2 AndrewM
 
03.05.13
08:46
(1) а можно поподробнее )
3 Wobland
 
03.05.13
08:50
да пжалста

Данная функция предназначена для выделения подстроки из строки. В функцию передается три параметра.

Первый параметр – строка, из которой необходимо выделить подстроку. Выражение, имеющее тип СТРОКА.

Второй параметр – позиция символа, с которого начинается выделяемая из строки подстрока. Значение типа ЧИСЛО.

Третий параметр – длина выделяемой подстроки. Значение типа ЧИСЛО.

Если в качестве первого параметра фигурирует строка, то результатом функции будет строка (возможно нулевой длины). Если в качестве первого параметра будет использовано значение NULL, то результатом функции также будет значение NULL. Другие значения считаются недопустимыми и вызывают состояние ошибки.
4 AndrewM
 
03.05.13
08:58
(3) Ну, просвети, как с помощью этой функции из одной колонки сделать несколько колонок. Я не врубаюсь.

Вообще правильно я понимаю, что ты предлагаешь делить колонку на несколько ещё на этапе запроса, а не средствами СКД? Это мне было бы тоже интересно, но я не понял, как это сделать с помощью функции выделения подстроки.
5 Wobland
 
03.05.13
09:01
(4) подстрока(поле1, 1, 2) как раз, подстрока(поле1, 3, 4) как два
вот тебе два поля из одного
6 AndrewM
 
03.05.13
09:09
(5) Наверное, я не удачно выразился. В моём примере:
Хеллоу1 | Хай1
Хеллоу1 | Хай2
Хеллоу2 | Хай1
Хеллоу2 | Хай2
Хеллоу3 | Хай1
Хеллоу3 | Хай2
это два столбца, не один. Т.е. имеется уже два столбца, из которых:
- правый нужно разделить на отдельные колонки;
- а левый является ориентиром для этого разделения (группировкой).

Проблема в том, что если я пытаюсь ставить группировку в колонки таблицы (в настройках СКД), получается что-то типа такого:
Хеллоу1 Хеллоу1 Хеллоу2 Хеллоу2 Хеллоу3 Хеллоу3
------- ------- ------- ------- ------- -------
 Хай1    Хай2
                 Хай1    Хай2
                                 Хай1    Хай2
7 Wobland
 
03.05.13
09:13
(6) ну и зачем ты тогда мне мозг любил всё это время?

по всей видимости ты хочешь группировку по первому полю, имея ресурсом второе и только
8 AndrewM
 
03.05.13
09:17
(7) да, но второе поле, даже будучи ресурсом, никак не хочет вставать в столбец, оно располагается в строку, и получается длиннющая таблица.
9 Wobland
 
03.05.13
09:18
(8) таблица тут зачем?
10 AndrewM
 
03.05.13
09:21
(9) если делать списком с помощью группировки, то получается так:

Хеллоу1
         Хай1
         Хай2
Хеллоу2
         Хай1
         Хай2
Хеллоу3
         Хай1
         Хай2

так ведь?

Но мне нужно, чтобы выглядело именно так, как я нарисовал:
Хеллоу1 Хеллоу2 Хеллоу3
------- ------- -------
 Хай1    Хай1    Хай1
 Хай2    Хай2    Хай2
11 AndrewM
 
03.05.13
09:38
Нашёл решение. Нужно добавить ещё одну колонку в запросе, чтобы получились примерно такие три колонки:

1 | Хеллоу1 | Хай1
2 | Хеллоу1 | Хай2
1 | Хеллоу2 | Хай1
2 | Хеллоу2 | Хай2
1 | Хеллоу3 | Хай1
2 | Хеллоу3 | Хай2

Теперь если в настройках СКД выбрать таблицу, в строках указать первый столбец запроса, в колонках - второй столбец запроса, а третий столбец сделать ресурсом, тогда получается то, что я и хотел. :)
12 mistеr
 
03.05.13
11:01
(11) Хорошо что сам дошел
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс