|
|
|
Программное открытие Оборотно-сальдовой ведомости - не могу передать группировки ↓ (Волшебник 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
|
Вместо одной Процедура ОткрытьОтчет(Парам) Экспорт
сделайте несколько процедур, например Процедура ОткрытьКарточкаСчета(Парам) Экспорт Процедура ОткрытьОСВпоСчету(Парам) Экспорт |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |