|
Две страницы на форме отчета | ☑ | ||
---|---|---|---|---|
0
Vogde
25.08.14
✎
14:09
|
Добрый день. Вновь обращаюсь к вам за советом. Суть вопроса такова: Создал в СКД отчет который состоит из двух схем. Необходимо чтобы форма отчета была из двух страниц, одна схема выводила данные на одну страницу, другая на другую. Создал на форме поля отбора и параметров, на обоих страницах поля табличного документа. Первая схема компонует Резервы и остатки на складах, вторая компонует обороты по товарам. Написал такой код для формирования:
Код 1C Процедура ДействиеФормыСформировать(Кнопка) Если ДатаНачала > ДатаОкончания ИЛИ ДатаНачала = '00010101' ИЛИ ДатаОкончания = '00010101' Тогда Предупреждение ("Не установлени период отбора"); Возврат; КонецЕсли; ЭлементыФормы.Результат.Очистить(); КомпоновщикНастроек.Настройки.Отбор.Элементы.Очистить(); //ДатаПараметр = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаНачала"); //ДатаПараметр.Использование = Истина; //ДатаПараметр.Значение = НачалоДня(ДатаНачала); ДатаПараметр = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаОкончания"); ДатаПараметр.Использование = Истина; ДатаПараметр.Значение = КонецДня(ДатаОкончания); СкладПараметр = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Склад"); СкладПараметр.Использование = Истина; СкладПараметр.Значение = Склад; ТипЦенПараметр = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ТипЦен"); ТипЦенПараметр.Использование = Истина; ТипЦенПараметр.Значение = ТипЦен; ПараметрДанных= КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ВалРегУчета"); ПараметрДанных.Значение = Справочники.Валюты.НайтиПоКоду("643"); ПараметрДанных.Использование=Истина; НовыйЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовыйЭлементОтбора.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Номенклатура")).Поле; НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии; НовыйЭлементОтбора.Использование = Истина; НовыйЭлементОтбора.ПравоеЗначение = Номенклатура; ЭтотОбъект.СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки); //Далее формирую отчет для второй страници //Получаем схему из макета СхемаКомпоновкиДанных = ПолучитьМакет("Схема2"); //Из схемы возьмем настройки по умолчанию //Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; //Помещаем в переменную данные о расшифровке данных ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; //Формируем макет, с помощью компоновщика макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ДатаПараметр = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода"); ДатаПараметр.Использование = Истина; ДатаПараметр.Значение = НачалоДня(ДатаНачала); ДатаПараметр = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода"); ДатаПараметр.Использование = Истина; ДатаПараметр.Значение = КонецДня(ДатаОкончания); СкладПараметр = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Склад"); СкладПараметр.Использование = Истина; СкладПараметр.Значение = Склад; НовыйЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); НовыйЭлементОтбора.ЛевоеЗначение = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Номенклатура")).Поле; НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии; НовыйЭлементОтбора.Использование = Истина; НовыйЭлементОтбора.ПравоеЗначение = Номенклатура; //Передаем в макет компоновки схему, настройки и данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки, ДанныеРасшифровки); //Выполним компоновку с помощью процессора компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки); //Очищаем поле табличного документа Результат1 = ЭлементыФормы.Результат1; Результат1.Очистить(); //Выводим результат в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат1); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры Так вот первая схема все отлично выдает Вторая выдает только измерения(Номенклатуру) а ресурсы нет Всю голову сломал что не так, подскажите где искать в чем ошибка? Если нужны запросы, то добавлю, но думаю дело не в них в консоли выдает те данные которые нужно |
|||
1
Garykom
гуру
25.08.14
✎
14:16
|
(0) "КомпоновщикНастроек" один на 2 схемы так и нужно?
|
|||
2
Vogde
25.08.14
✎
14:36
|
Я не знаю как правильно скажи что нужно сделать чтобы работало
|
|||
3
Wobland
25.08.14
✎
14:39
|
(2) ты б хоть задумался над словами старших
|
|||
4
Vogde
25.08.14
✎
15:22
|
Блин не понятно, ведь я же получаю другую схему значить у нее свой КомпоновщикНастроек, так покарайней мере я считал. Подскжите как можно добавить другой
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |