![]() |
|
Как получить доступ к результатам запроса СКД? | ☑ | ||
---|---|---|---|---|
0
Dwarrior
24.07.16
✎
17:42
|
Здравствуйте!
Есть отчет, построенный на СКД, выводит номенклатуру с остатками. При формировании отчета нужно сохранить картинки, хранящиеся в номенклатуре, в файлы. Вижу это так - как-то вмешаться в процесс вывода (к набору данных, полученных при выполнении запроса СКД) данных. Если путь правильный - подскажите пожалуйста, как это сделать? |
|||
1
hhhh
24.07.16
✎
17:46
|
(0) ПриКомпоновкеРезультата курите
|
|||
2
Dwarrior
24.07.16
✎
17:48
|
(1) а чуть подробнее?:) Вмешиваться в цикл НачатьВывод()...ЗакончитьВывод()?
|
|||
3
Chameleon1980
24.07.16
✎
17:53
|
(2) описать в вышеуказанной процедуре
|
|||
4
Chameleon1980
24.07.16
✎
17:54
|
+ погуглил бы уже "программный вывод отчета скд"
|
|||
5
hhhh
24.07.16
✎
18:01
|
(2) в модуль объекта идете там есть эта процедура, если нет создаете. Потом смотрите в типовых конфах эту процедуру м в интернете. Скачиваете себе на комп 10 миллионов таких процедур. Выбираете из этих миллионов оду, ее берете как пример.
|
|||
6
hhhh
24.07.16
✎
18:01
|
одну
|
|||
7
Dwarrior
24.07.16
✎
21:04
|
Типовое содержимое процедуры нашел, где нужно вмешаться?:)
МакетКомпоновки = КомпоновщикМакета.Выполнить() или ПроцессорКомпоновки.Инициализировать(МакетКомпоновки) или ПроцессорВывода.Вывести(ПроцессорКомпоновки) |
|||
8
Горогуля
25.07.16
✎
04:48
|
на фига при формировании отчёта? найди уже пример вывода картинок в СКД
|
|||
9
Chameleon1980
25.07.16
✎
08:36
|
(8) все нормально
"...нужно сохранить картинки, хранящиеся в номенклатуре..." (7) намекну - тут нужно не ПроцессорВывода.Вывести использовать |
|||
10
Chameleon1980
25.07.16
✎
08:41
|
+
Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.НачатьВывод(); Пока Истина Цикл ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата = Неопределено Тогда Прервать; КонецЕсли; КонецЦикла; |
|||
11
_stay true_
25.07.16
✎
08:43
|
НовыйПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений
|
|||
12
Chameleon1980
25.07.16
✎
08:45
|
+(11) если не планируется, например, выводить в ТД далее
можно и так - в ТЗ и оттуда перебрать если так удобнее будет ТС |
|||
13
Chameleon1980
25.07.16
✎
08:46
|
=(11) + так-же Вывести и перебрать коллекцию
|
|||
14
_stay true_
25.07.16
✎
08:54
|
Если тебе не нужен вывод в ТабДок, кури ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений
ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.Вывести (DataCompositionResultValueCollectionOutputProcessor.Output) ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений (DataCompositionResultValueCollectionOutputProcessor) Вывести (Output) Синтаксис: Вывести(<ПроцессорКомпоновки>, <ВозможностьПрерыванияПользователем>) Параметры: <ПроцессорКомпоновки> (обязательный) Тип: ПроцессорКомпоновкиДанных. Процессор компоновки данных, из которого будут получаться элементы результата. <ВозможностьПрерыванияПользователем> (необязательный) Тип: Булево. Указывает, может ли пользователь прервать вывод при помощи комбинации клавиш Ctrl + Break. Значение по умолчанию: Ложь. Возвращаемое значение: Тип: ТаблицаЗначений; ДеревоЗначений. Описание: Выводит весь результат в объект. При этом автоматически исполняется метод ПолучитьОбъектПоИдентификатору, перебираются все элементы процессора компоновки и выводятся в результат. После чего исполняется метод ПолучитьИдентификаторПоОбъекту, результат которого возвращается данным методом. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: При выводе результата компоновки данных в коллекцию значений в режиме не совместимости с версией 8.2.16 колонке, в которую выводится вычисляемое поле, устанавливается тип значения, указанный в вычисляемом поле. Если тип значения у вычисляемого поля не указан, то тип колонки определятся автоматически на основании выражения вычисляемого поля. Алгоримт тебе расписали. Дальше допетришь сам, я думаю))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |