![]() |
|
СКД 3 в 1, не выводит поля | ☑ | ||
---|---|---|---|---|
0
inmortal203
30.01.14
✎
12:54
|
Здравствуйте! Нужно создать отчет в УПП на обычной форме, 3 в 1 на скд. Создал форму, на которой 3 страницы и 3 разных макета СКД.
Процедура ДействияФормыСформировать(Кнопка) Параметры = Новый Структура; Для Каждого Страница ИЗ ЭлементыФормы.Панель.Страницы Цикл Параметры.Очистить(); Параметры.Вставить("ДатаНач",НачалоДня(НачПериода)); Параметры.Вставить("ДатаКон",КонецДня(КонПериода)); Параметры.Вставить("Организация",Справочники.Организации.НайтиПоКоду("000000001")); Если Страница.Имя = "ПеремещениеПриемка_СОМ" Тогда СхемаКомпоновкиДанных = ПолучитьМакет("ПеремещениеПриемка_СОМ"); Параметры.Вставить("СкладОтправитель",Справочники.Склады.НайтиПоКоду("000000133")); Параметры.Вставить("СкладПолучатель",Справочники.Склады.НайтиПоКоду("000000035")); ИнициализироватьСКД(СхемаКомпоновкиДанных, ЭлементыФормы.Результат1,Параметры); ИначеЕсли Страница.Имя = "ОПЗ_СОМ" Тогда СхемаКомпоновкиДанных = ПолучитьМакет("ОПЗ_СОМ"); Параметры.Вставить("Склад",Справочники.Склады.НайтиПоКоду("000000035")); Параметры.Вставить("Жирность",ПланыВидовХарактеристик.АА_ПоказателиКачестваПродукции.НайтиПоКоду("000000088")); Параметры.Вставить("Плотность",ПланыВидовХарактеристик.АА_ПоказателиКачестваПродукции.НайтиПоКоду("000000085")); ИнициализироватьСКД(СхемаКомпоновкиДанных, ЭлементыФормы.Результат2,Параметры); ИначеЕсли Страница.Имя = "ГотоваяПродукция" Тогда СхемаКомпоновкиДанных = ПолучитьМакет("ГотоваяПродукция"); Параметры.Вставить("Склад",Справочники.Склады.НайтиПоКоду("000000035")); ИнициализироватьСКД(СхемаКомпоновкиДанных, ЭлементыФормы.Результат3,Параметры); КонецЕсли; КонецЦикла; КонецПроцедуры Процедура ИнициализироватьСКД(СхемаКомпоновкиДанных, ПолеВывода, НастройкиПараметровОтчета) ПолеВывода.Очистить(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; Для Каждого ТекНастройки из НастройкиПараметровОтчета Цикл КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ТекНастройки.Ключ,ТекНастройки.Значение); КонецЦикла; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки,ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки,Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ПолеВывода); ПроцессорВывода.Вывести(ПроцессорКомпоновки,Истина); ОбработатьЗаголовки(ПолеВывода); КонецПроцедуры Все срабатывает, но не в том виде в каком хотелось бы. В первых двух отчетах не выводится одна колонка "Вес" В последнем 3 не выводятся те колонки, которых нет в первых двух. Если переименовать в 3 отчете колонку так как в 1 и 2 - то она выводится. Но в 1 и 2 - материалы, а в 3 - продукция. Продукцию называть материалами не хотелось бы. В тупик заводи то, что та же колонка "Вес" присутствует во всех 3-х отчетах, но не выводится ни в одном... |
|||
1
inmortal203
30.01.14
✎
12:57
|
Если у кого то был уже подобный опыт, помогите разобраться
|
|||
2
inmortal203
30.01.14
✎
13:18
|
После выполнения операции
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки,ДанныеРасшифровки); входящий запрос изменяется... в МакетКомпоновки и в СхемаКомпоновкиДанных запросы разные, в первом случае полей меньше |
|||
3
Defender aka LINN
30.01.14
✎
13:21
|
(2) Да
|
|||
4
inmortal203
30.01.14
✎
13:23
|
(3) что да???
|
|||
5
Defender aka LINN
30.01.14
✎
13:30
|
(4) Да, так и есть. В чем твой вопрос-то заключается?
|
|||
6
inmortal203
30.01.14
✎
13:34
|
Внимание вопрос! Как получить результат тот, который нужно?
|
|||
7
inmortal203
30.01.14
✎
13:35
|
Тот факт что скд не выводит все поля из запроса, нормальным не считать!
|
|||
8
Defender aka LINN
30.01.14
✎
14:23
|
(7) Чёйта? СКД модифицирует запрос *в зависимости от настроек*.
Если в настройках поле не выбрано, то умная СКД его из запроса выкинет, чтобы не тащить лишние данные. (6) Как вытекает из вышесказанного - настроить, как нужно. |
|||
9
inmortal203
31.01.14
✎
11:14
|
Да, нужно было просто
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |