|
Вывод результата СКД в Таблицу значений | ☑ | ||
---|---|---|---|---|
0
Denosik
26.08.23
✎
11:22
|
Доброе утро всем. Пытаюсь вывести результат типового отчета в таблицу значений. Использую стандартные настройки СКД отчета который хочу скомпоновать.
кто нибудь может подсказать отчего зависят столбцы в ТЗ полученной из СКД, мне подсказали что от "Выбор" в настройках, но изменение этого поля ничего не дало. Например: в стандартных настройках "выбор" : Документ, выручка, НДС в ТЗ выводятся данные со столбцами: "Документ, выручка, НДС" Дополняю "выбор" в настройках своими полями "регистратор, организация" в ТЗ выводятся данные так же со столбцами: "Документ, выручка, НДС". Нет моих "регистратор и организация" (в скд эти поля есть, проверил запрос. Всё меняется после КомпоновщикМакета.Выполнить(), получаю макет компоновки уже с изменённым запросом, который тянет только указанное в настройках в поле "выбор" как понимаю, но он не тянет мои поля) |
|||
1
vicof
26.08.23
✎
11:28
|
Ставлю, что нет КомпоновщикНастроек.ПолучитьНастройки()
|
|||
2
Denosik
26.08.23
✎
11:41
|
а как его правильно использовать?
Просто я компилирую СКД не из её родного отчета, а из нового. Если сделать КомпоновщикНастроек.ПолучитьНастройки() загрузятся настройки моего нового отчета, а не стандартные настройки отчета, которого хочу скомпоновать |
|||
3
Мультук
26.08.23
✎
11:47
|
(0)
Код, {нецензурное слово}, где твой код ? |
|||
4
Denosik
26.08.23
✎
12:01
|
код:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = ложь; СхемаКомпоновкиДанных = Отчеты.ВыручкаИСебестоимостьПродаж.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; ВыбранноеПоле = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Регистратор"); ВыбранноеПоле = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Организация"); ВыбранноеПоле = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Контрагент"); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; ТЗВыручкаИСебестоимостьПродаж = ОтчетТЗВыручкаИСебестоимостьПродаж.ПолучитьТЗВыручкаИСебестоимостьПродаж(ДанныеРасшифровки,СтандартнаяОбработка, Настройки); КонецПроцедуры; Код функции "ПолучитьТЗВыручкаИСебестоимостьПродаж": Функция ПолучитьТЗВыручкаИСебестоимостьПродаж(ДанныеРасшифровки, СтандартнаяОбработка, Настройки) Экспорт СтандартнаяОбработка = Ложь; // Сформируем отчет НастройкиОтчета = Настройки; ТекстЗапроса = ТекстЗапроса(); ТекстЗапроса = СтрЗаменить( ТекстЗапроса, "&ТекстЗапросаВесНоменклатуры1", Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаВесУпаковки("Таблица.Номенклатура.ЕдиницаИзмерения", "Таблица.Номенклатура")); ТекстЗапроса = СтрЗаменить( ТекстЗапроса, "&ТекстЗапросаОбъемНоменклатуры1", Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаОбъемУпаковки("Таблица.Номенклатура.ЕдиницаИзмерения", "Таблица.Номенклатура")); СхемаКомпоновкиДанных.НаборыДанных.ВыручкаИСебестоимостьПродажСДетализацией.Запрос = ТекстЗапроса; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета,ДанныеРасшифровки ,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки, Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТЗВедомостьРасчетовСКлиентами = Новый ТаблицаЗначений; ТЗВедомостьРасчетовСКлиентами.Колонки.Добавить("Регистратор"); ТЗВедомостьРасчетовСКлиентами.Колонки.Добавить("Организация", тип("СправочникСсылка.Организации")); ПроцессорВывода.УстановитьОбъект(ТЗВедомостьРасчетовСКлиентами); ПроцессорВывода.Вывести(ПроцессорКомпоновки); Возврат ТЗВедомостьРасчетовСКлиентами; КонецФункции |
|||
5
vicof
26.08.23
✎
12:13
|
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета,ДанныеРасшифровки ,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
Вот здесь у тебя что в настройках? |
|||
6
Denosik
26.08.23
✎
12:34
|
сюда я передаю настройки из Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;, которые получил в процедуре ПриКомпоновкеРезультата
|
|||
7
Denosik
26.08.23
✎
12:58
|
(5) Если интересует именно поле выбор в настройках: Номенклатура.Артикул, Выручка, СебестоимостьИтого, Себестоимость, ДопРасходы, ВаловаяПрибыль, Рентабельность, Регистратор, Организация, Контрагент
Собственно, мои 3 которые я программно добавил есть |
|||
8
Мультук
26.08.23
✎
14:52
|
(7)
1) Ну дык, добавь остальные программно, которых тебе не хватает. 2) Посмотри в отладчике, что вообще в СхемаКомпоновкиДанных.НастройкиПоУмолчанию -- какие поля выбраны -- какие группировки сделаны |
|||
9
dmt
26.08.23
✎
14:57
|
(4) попробуй
а) добавить в выбранные поля всего отчета Автополе либо б) добавить свои выбранные поля именно в нужную группировку в Структуре |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |