Имя: Пароль:
1C
1С v8
Преобразование Документа в Строку в запросе
0 newbling
 
18.06.15
20:43
Доброго времени суток.
Задача вывести набор документов в одну строку через запятую, т.е. сконкатенировать (?).

СложитьСтроки() работает ессно только для строковых значений. Так вот, вопрос, как можно перевести представление ссылки на документ в строковое значение. Выразить, как я понимаю, работает только для примитивных типов. А представление не позволяет потом работать с этими строками.

Получается, что единственный вариант это выражать номер документа и дату документа (получится с датой?) и выбором ещё тип значения перебирать? Как-то громоздко.
1 Casey1984
 
18.06.15
20:44
ПРЕДСТАВЛЕНИЕ() ?
2 Casey1984
 
18.06.15
20:45
.Представление ?
3 ДенисЧ
 
18.06.15
20:46
Получаешь в запросе представление, потом обрабатываешь результат запроса и складываешь
4 Casey1984
 
18.06.15
20:48
(0) А ВЫРАЗИТЬ(ПРЕДСТАВЛЕНИЕ или ПОДСТРОКА(ПРЕДСТАВЛЕНИЕ, ?
5 ДенисЧ
 
18.06.15
20:49
(4) Представление работает уже после запроса. Так что внутри него с ним ничего сделать нельзя.
6 Casey1984
 
18.06.15
20:52
(5) да?

а так?

во вложеном запросе или в временной таблице
...
Документ.Представление КАК ПредставлениеДокумента
...

а потом с работать с ПредставлениеДокумента?
7 ДенисЧ
 
18.06.15
21:01
(6) Тебя не Авас, часом, зовут?
Сказано же - ПОСЛЕ ЗАПРОСА. Какая буква не понятна?
8 Casey1984
 
18.06.15
21:06
Не груби, нахал)
9 ДенисЧ
 
18.06.15
21:07
аставь меня, пративный....
10 Рэйв
 
18.06.15
21:13
(0)Вот запугали студентов, что "только запросом" -теперь мучаются.
11 newbling
 
18.06.15
21:41
(10) у меня там отчёт на скд
12 Провинциальный 1сник
 
18.06.15
22:00
Представление это шайтан-строка.. вроде бы и строка, но делать с ней в запросе ничего нельзя как со строкой..
13 ДенисЧ
 
18.06.15
22:09
(11) А что мозги нам тут того?
В скд есть для этого свои методы.
14 newbling
 
18.06.15
22:43
(13) какие, если не секрет, я нашёл только по строкам
15 KarpovDeniska
 
18.06.15
23:46
(14) Массив() например
16 hhhh
 
19.06.15
06:58
завести в документе еще один реквизит ПредставлениеДокумента типа строка. Заполнять его автоматом при записи документа. Потом в запросе складывать.
17 newbling
 
22.06.15
11:47
(15) Да, Массив() сработало как надо, спасибо большое!

Добавил ресурс по нужному полю и в расчете ресурса Формула Массив(<нужный ресурс>)
18 newbling
 
22.06.15
13:51
А, не, заметил, что он только ресурсы так считает, а строки не складывает
19 newbling
 
22.06.15
14:11
по ходу, нельзя так в скд сделать
20 Jonny_Khomich
 
22.06.15
14:15
(0) есть функцию в 8.2 типзначения, возвращает тип реквизита.
21 ЧеловекДуши
 
22.06.15
14:19
(19) Что именно нельзя?
Тебе нужно запретить открытие документа в расшифровке?
Тогда читай в (1), и долго думать.

Если ты так хочешь получить некий список документов в одной ячейке таблице, то смотри в (ВычислитьВыражениеСГруппировкойМассив) http://1cskd.ru/2011/07/novye-funkcii-skd-8-2-14/

На выходе будет Строка документов с разделителем ";"

...
Если тебе нужно только номера документов и дату, так и тут можно провернуть этот фокус, все через "ВычислитьВыражениеСГруппировкойМассив" м Дополнительный набор данных :)
22 newbling
 
22.06.15
14:25
Ну вот, пример. У меня запрос выводит:

Док1  ДокОплаты1
Док1  ДокОплаты2

А мне нужно сгруппировать строки чтоб из них получилась одна:
Док1  ДокОплаты1; ДокОплаты2

Группировка же, как я понял, в случае как ссылок, так и строк, выдаёт только количество и в ней вроде недоступен Массив() - только в ресурсе. Или нет?
23 newbling
 
22.06.15
14:28
24 newbling
 
22.06.15
14:54
не, ну это же не группировка. Строки так и не сгруппируются
25 newbling
 
22.06.15
21:13
В общем, я через внешние наборы данных сделал. Не получилось средствами скд свернуть строки
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.