Имя: Пароль:
1C
1С v8
Возможно ли сделать такой запрос?
0 pochemu
 
08.08.12
10:33
Следующий запрос получает набор строк с подразделениями:

Выбрать
Представление(ТабЧастьДока.Подразделение) Как Подразделение
Из
Документ.Документ1.ТабЧастьДока Как ТабЧастьДока
Где
ТабЧастьДока.Ссылка = &Ссылка

Я хочу составить запрос, в результате которого можно получить все подразделения одной строкой. Как запросом объединить в одну строку подразделения?
1 AlStorm
 
08.08.12
10:34
по-моему никак
2 DrShad
 
08.08.12
10:34
нельзя
3 Maxus43
 
08.08.12
10:42
токмо в СКД, в запросах это врятли будет реализовано в ближайшее время
4 pochemu
 
08.08.12
11:09
(1)(2)(3) Можно, хоть и криво:

Выбрать
СтрокиПодразделений.Подразделение1 + СтрокиПодразделений.Подразделение2 Как ОднаОбщаяСтрока
Из
(ВЫБРАТЬ
   ПРЕДСТАВЛЕНИЕ(Строка1.Подразделение) Как Подразделение1,
   ПРЕДСТАВЛЕНИЕ(Строка2.Подразделение) Как Подразделение2
ИЗ
   Документ.сталАктПриемкиГотовойПродукции_ОперационныйНарядНаПеределку.УчасткиДопустившиеДефект КАК Строка1
   Левое Соединение
       Документ.сталАктПриемкиГотовойПродукции_ОперационныйНарядНаПеределку.УчасткиДопустившиеДефект КАК Строка2
   По
       Строка2.Ссылка = &Ссылка
       И Строка2.НомерСтроки = 2
ГДЕ
   Строка1.Ссылка = &Ссылка
   И Строка1.НомерСтроки = 1) Как СтрокиПодразделений


Вот только  запрос этот не рабочий, не знаю как строки подразделений сложить... Складывать в запросе строки реквизитов как надо?
5 Kashemir
 
08.08.12
11:14
Делай через скд и не парься.
6 pochemu
 
08.08.12
11:15
Вот работает:


ВЫБРАТЬ
   Строка1.Подразделение.Наименование + Строка2.Подразделение.Наименование КАК ОднаОбщаяСтрока
ИЗ
   Документ.сталАктПриемкиГотовойПродукции_ОперационныйНарядНаПеределку.УчасткиДопустившиеДефект КАК Строка1
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.сталАктПриемкиГотовойПродукции_ОперационныйНарядНаПеределку.УчасткиДопустившиеДефект КАК Строка2
       ПО (Строка2.Ссылка = &Ссылка)
           И (Строка2.НомерСтроки = 2)
ГДЕ
   Строка1.Ссылка = &Ссылка
   И Строка1.НомерСтроки = 1
7 Maxus43
 
08.08.12
11:15
(4) так нельзя, можно члодить только изначально строковые типы, ПРЕДСТАВЛЕНИЕ(Строка1.Подразделение) - не взлетит
8 Kashemir
 
08.08.12
11:15
(4) Это ерунда. Складывать неизвестное количество строк не получится.
9 Maxus43
 
08.08.12
11:16
(6) с этим никто не спорит, строки складывай скока душе угодно
10 pochemu
 
08.08.12
11:16
(5) Не, надо было именно в запросе. Вопрос решен.
11 Нуф-Нуф
 
08.08.12
11:16
делай через скд и через ресурс Массив
12 Maxus43
 
08.08.12
11:18
(10) на результат посмотри, "Подразделение1 (куева туча пробелов) Подразделение2 (....)"
13 pochemu
 
08.08.12
11:18
(8) У меня мало строк, поэтому эдак 5 левых соединений - и нормально.
14 pochemu
 
08.08.12
11:18
(12) Нет пробелов
15 Kashemir
 
08.08.12
11:18
(13) Только не показывай никому это код - засмеют.
16 pochemu
 
08.08.12
11:20
(15) Пусть смеются, на ресурсы наплевать и на красоту кода тоже в моём случае. Поэтому пойдет.
17 Kashemir
 
08.08.12
11:27
(16) Быдлокодить надо исключительно под звуки классической музыки. Надеюсь условие выполнено ? :)
18 Прохожий
 
08.08.12
11:28
(16) Тебе не проще написать что-то типа:
ОднаОбщаяСтрока = "Головной офис, Цех1, Цех 2, Гараж";
Запрос.УстановитьПараметр(ОднаОбщаяСтрока, "ОднаОбщаяСтрока");
Звпрос.Текст = "...
&ОднаОбщаяСтрока КАК ОднаОбщаяСтрока;
..."
Просто когда появится ещё одно подразделение так добавить будет реально проще чем ещё раз левосодинять... В принципе .можо и константу завести.
19 Прохожий
 
08.08.12
11:29
Желательно внести изменение в структуру БД...
20 pochemu
 
08.08.12
11:33
(18) Не, мне надо было именно запросом. Не обсуждается. Надо было набыдлокодить.
21 pochemu
 
08.08.12
11:36
(17) Отныне буду делать только так.
22 DrShad
 
08.08.12
11:37
сразу в сабже пиши что нужен именно быдлокод
23 pochemu
 
08.08.12
11:49
(22) Когда создавал тему - не знал, что только быдлокодом можно. Только в процессе узнал, что нужен мне был именно он родимый.
24 Прохожий
 
09.08.12
12:00
(24) Значить ты не настоящий одноэснег, не экстрасенс нифига. И нечего тут оправдываться.