|
|
|
СКД по запросу | ☑ | ||
|---|---|---|---|---|
|
0
first_may
16.03.13
✎
20:24
|
Добрый вечер. Подскажите пожалуйста, у меня есть обработка, которая заполняет табличную часть с помощью запроса (например Подразделение, Статья затрат и Сумма). Помещаю на форму кнопку Сформировать отчет. Как данные из табличной части выввести в отчет с помощью СКД?
|
|||
|
1
GenV
16.03.13
✎
20:38
|
(0) А какие нужно?
|
|||
|
2
first_may
16.03.13
✎
20:58
|
Иными словани, как написать формирование отчета, если у меня есть только Макет (СКД). То есть, отобразить этот макет?
|
|||
|
3
zladenuw
16.03.13
✎
21:07
|
(2) в макете что ?
|
|||
|
4
zladenuw
16.03.13
✎
21:08
|
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("ТЗ",тз); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки,Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат); ПроцессорВывода.НачатьВывод(); Пока Истина Цикл ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата = Неопределено Тогда Прервать; Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(0); |
|||
|
5
first_may
16.03.13
✎
21:13
|
В макете СКД, которое я настроил написав просто внешний отчет.
|
|||
|
6
first_may
16.03.13
✎
21:42
|
В обработке, должна быть еще одна форма, в которой как раз и вывводится СКД?
|
|||
|
7
zladenuw
16.03.13
✎
21:46
|
можно создать доп форму и туда вынести табличный документ.
|
|||
|
8
first_may
16.03.13
✎
21:54
|
Создал форму "ФормаОтчета", которая содержит элемент типа ПолеТабличногоДокумента.
Сейчас обработчик по кнопке: СхемаКомпоновкиДанных = ПолучитьМакет("Макет"); //макет скд КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаНач", НачалоДня(ДатаНач)); КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаКон", КонецДня(ДатаКон)); КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Организация", Организация); КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Счет20", ПланыСчетов.Хозрасчетный.ОсновноеПроизводство); КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Счет", ПланыСчетов.Хозрасчетный.НЗП); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки()); Форма = ЭтотОбъект.ПолучитьФорму("ФормаОтчета"); табДок = новый ТабличныйДокумент; ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТабДок); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); табДок.Показать(); Я понимаю, что мне надо как то вместо табДок использовать как раз ПолеТабличногоДокумента новой формы "ФормаОтчета", но как это сделать, я не знаю :(. |
|||
|
9
zladenuw
16.03.13
✎
22:04
|
так указывай его
ПроцессорВывода.УстановитьДокумент(ТабДокФормы); |
|||
|
10
first_may
16.03.13
✎
22:12
|
Уже поменял. Новая форма стала появляться, но данных нет.
|
|||
|
11
zladenuw
16.03.13
✎
22:15
|
а где код вызываешь ?
|
|||
|
12
first_may
16.03.13
✎
22:15
|
Вот весь код:
Форма = ЭтотОбъект.ПолучитьФорму("ФормаОтчета"); Форма.ЭлементыФормы.Результат.Очистить(); СхемаКомпоновкиДанных = ПолучитьМакет("Макет"); КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаНач", НачалоДня(ДатаНач)); КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаКон", КонецДня(ДатаКон)); КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Организация", Организация); КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Счет20", ПланыСчетов.Хозрасчетный.ОсновноеПроизводство); КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Счет", ПланыСчетов.Хозрасчетный.НЗП); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки()); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Форма.ЭлементыФормы.Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); Форма.ЭлементыФормы.Результат.Показать(); Форма.Открыть(); |
|||
|
13
zladenuw
16.03.13
✎
22:17
|
попробуй при открытии этот весь код. хотя поидее должно
|
|||
|
14
first_may
16.03.13
✎
22:17
|
В открываемой форме отображаются параметры запроса. А самих данных с группировкой нет.
|
|||
|
15
Бертыш
16.03.13
✎
22:25
|
(0) А почему неприменно через СКД?
|
|||
|
16
first_may
16.03.13
✎
22:29
|
Казалось что так проще сделать группировки данных :).
|
|||
|
17
first_may
16.03.13
✎
22:31
|
По таким же данным я уже сделал внешний отчет на основе СКД. Вот пытаюсь его вызвать по кнопке из формы обработки.
|
|||
|
18
first_may
16.03.13
✎
22:36
|
А можно как нибудь проверить выбираются данные в компоновщике или нет?
|
|||
|
19
zladenuw
16.03.13
✎
22:45
|
ну так ты вот делал в (8)
что в табличном документе ? если пусто значений настройки не подгрузились. исправь тут МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.НастройкиПоУмолчанию); |
|||
|
20
zladenuw
16.03.13
✎
22:48
|
можно и без формы. как ты делал с табличным документом.
|
|||
|
21
first_may
17.03.13
✎
09:43
|
Без формы, тогда надо рисовать в табличной части макет.
|
|||
|
22
first_may
17.03.13
✎
09:45
|
(20) а можно написать тестовый вариант формирования отчета с помощью СКД из обработки, которая имеет одну кнопку сформировать и выполняется запрос: выбрать все из номенклатуры?
с большим уважением получил бы такую обработку на почту first_may@mail.ru. |
|||
|
23
zippygrill
17.03.13
✎
09:58
|
(22) зайдите на сайте 1cskd.ru, там есть пример.
|
|||
|
24
first_may
17.03.13
✎
11:41
|
(23) нашел пример SKD.epf, но в нем да и во всех остальных рассматривается вывод в текущую форму, а не в новую :(.
|
|||
|
25
first_may
17.03.13
✎
12:08
|
(23) Вроде получилось. Для интереса могу выслать :).
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |