![]() |
|
Программное открытие Оборотно-сальдовой ведомости - не могу передать группировки ↓ (Волшебник 22.04.2023 22:31) |
☑ | ||
---|---|---|---|---|
0
OnePrg
22.04.23
✎
22:36
|
&НаКлиенте Процедура ОткрытьОтчет(Парам) Экспорт ИмяОтчета = Парам.ИмяОтчета; //Заполняем реквизиты отчета и обязательные поля (могут отличаться в зависимости от отчета) ПользовательскиеНастройкиКомпоновкиДанных = Новый ПользовательскиеНастройкиКомпоновкиДанных; ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Счет" , Парам.Счет); ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("НачалоПериода" , Парам.НачалоПериода); ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("КонецПериода" , Парам.КонецПериода); ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("Организация" , Парам.Организация); ПользовательскиеНастройкиКомпоновкиДанных.ДополнительныеСвойства.Вставить("ВыводитьЗаголовок" , Истина); //Заполняем дополнительные отборы (в примере только для субконто1 и субконто2) НовыйОтбор = ПользовательскиеНастройкиКомпоновкиДанных.Элементы.Добавить(Тип("ОтборКомпоновкиДанных")); НовыйОтбор.ИдентификаторПользовательскойНастройки = "Отбор"; Если Парам.Свойство("Субконто1") Тогда ЗаполнитьЭлементОтбораКомпоновкиДанных(НовыйОтбор,Истина,ВидСравненияКомпоновкиДанных.Равно,"Субконто1", Парам.Субконто1); КонецЕсли; Если Парам.Свойство("Субконто2") Тогда ЗаполнитьЭлементОтбораКомпоновкиДанных(НовыйОтбор,Истина,ВидСравненияКомпоновкиДанных.Равно,"Субконто1", Парам.Субконто2); КонецЕсли; Если ИмяОтчета = "ОборотноСальдоваяВедомостьПоСчету" Тогда ГруппировкаКомпоновкиДанных1 = ПользовательскиеНастройкиКомпоновкиДанных.Элементы.Добавить(Тип("ГруппировкаКомпоновкиДанных")); ГруппировкаКомпоновкиДанных1.Использование = Истина; ПолеГруппировкиКомпоновкиДанных = ГруппировкаКомпоновкиДанных1.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировкиКомпоновкиДанных.Использование = Истина; ПолеГруппировкиКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("Склады"); ГруппировкаКомпоновкиДанных2 = ГруппировкаКомпоновкиДанных1.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); ГруппировкаКомпоновкиДанных2.Использование = Истина; ПолеГруппировкиКомпоновкиДанных2 = ГруппировкаКомпоновкиДанных2.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировкиКомпоновкиДанных2.Использование = Истина; ПолеГруппировкиКомпоновкиДанных2.Поле = Новый ПолеКомпоновкиДанных("Номенклатура"); КонецЕсли; //Обязателньо указываем ключ (Равным параметру "ИДРасшифровки",я указывал Имя отчета ) НастройкиРасшифровки НастройкиРасшифровки = Новый Структура; НастройкиРасшифровки.Вставить(ИмяОтчета, ПользовательскиеНастройкиКомпоновкиДанных); УсловияОтбора = Новый Структура(); УсловияОтбора.Вставить("НастройкиРасшифровки", НастройкиРасшифровки); //Дублируем настройки (у меня в файловой без этого не открывалось) ОбщиеНастройки = Новый Структура(); ОбщиеНастройки.Вставить("Объект" , УсловияОтбора); ОбщиеНастройки.Вставить("НастройкиРасшифровки", НастройкиРасшифровки); //Помещаем во временное хранилище (Уид можно случайный) АлресХранилища = ПоместитьВоВременноеХранилище(ОбщиеНастройки, Новый УникальныйИдентификатор); //Обращаем внимания на заполнемые настройки, если вы укажете отбор = истина то затрется все выше указанные отборы ( поскольку показатели и группировки я не менял, то оставил их типоыми) ЗаполнятьТиповыеНастройки = Новый Структура; ЗаполнятьТиповыеНастройки.Вставить("Отбор" , Ложь); ЗаполнятьТиповыеНастройки.Вставить("Группировка" , ИмяОтчета <> "ОборотноСальдоваяВедомостьПоСчету"); ЗаполнятьТиповыеНастройки.Вставить("ВыводимыеДанные", Истина); ЗаполнятьТиповыеНастройки.Вставить("Показатели" , Истина); //Сами параметры для предачи на форму ("ИДРасшифровки" - в данном случаи ключ от структуры НастройкиРасшифровки , если "СформироватьПриОткрытии" будет равно Ложь то отчет откроется с ранее сохраненными настройками) ПараметрыОтчета = Новый Структура; ПараметрыОтчета.Вставить("ВидРасшифровки" , 1); ПараметрыОтчета.Вставить("АдресНастроек" , АлресХранилища); ПараметрыОтчета.Вставить("СформироватьПриОткрытии", Истина); ПараметрыОтчета.Вставить("ИДРасшифровки" , ИмяОтчета); ПараметрыОтчета.Вставить("РежимРасшифровки" , Истина); ПараметрыОтчета.Вставить("ЗаполняемыеНастройки" , ЗаполнятьТиповыеНастройки); //Ну и открываем саму форму ОткрытьФорму("Отчет." + ИмяОтчета + ".Форма.ФормаОтчета", ПараметрыОтчета,ЭтаФорма,Истина); КонецПроцедуры отчет открывается, формируется, но группировок нет |
|||
1
Волшебник
22.04.23
✎
22:31
|
Запустите Отладчик и посмотрите, где теряются группировки
|
|||
2
Волшебник
22.04.23
✎
22:37
|
исправьте ошибку в имени переменной "АлресХранилища"
|
|||
3
Волшебник
22.04.23
✎
22:38
|
ПользовательскиеНастройкиКомпоновкиДанных = Новый ПользовательскиеНастройкиКомпоновкиДанных; Плохое имя переменной |
|||
4
Волшебник
22.04.23
✎
22:40
|
Вместо одной Процедура ОткрытьОтчет(Парам) Экспорт
сделайте несколько процедур, например Процедура ОткрытьКарточкаСчета(Парам) Экспорт Процедура ОткрытьОСВпоСчету(Парам) Экспорт |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |