Merge branch 'main' of https://git.sinenikolsky.ru/admin/kb-personal
This commit is contained in:
commit
348e9a2aee
@ -0,0 +1,120 @@
|
||||
---
|
||||
title: Программно открыть отчтет с параметрами и отборами
|
||||
slug: общие-скд-и-отчеты/программно-открыть-отчтет-с-параметрами-и-отборами
|
||||
---
|
||||
|
||||
```bsl
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОткрытьОтчетАнализНоменклатурыПоПлануЗакупок(Команда)
|
||||
|
||||
ФормаОтчета =
|
||||
ПолучитьФорму("Отчет.АнализНоменклатурыПоПлануЗакупок.Форма");
|
||||
КомпоновщикНастроек = ФормаОтчета.Отчет.КомпоновщикНастроек;
|
||||
|
||||
// Устанавливаем параметры
|
||||
Период = Новый СтандартныйПериод;
|
||||
Период.ДатаНачала = Объект.НачалоПериода;
|
||||
Период.ДатаОкончания = Объект.ОкончаниеПериода;
|
||||
УстановитьПользовательскийПараметрСКД(КомпоновщикНастроек,
|
||||
"Период", Период);
|
||||
|
||||
// Устанавливаем отборы
|
||||
Если ЗначениеЗаполнено(Объект.Назначение) Тогда
|
||||
ГруппаНаправлений =
|
||||
ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(Объект.Назначение,
|
||||
"НаправлениеДеятельности.Родитель");
|
||||
УстановитьПользовательскийОтборСКД(КомпоновщикНастроек,
|
||||
"ГруппаНаправлений", ГруппаНаправлений);
|
||||
КонецЕсли;
|
||||
|
||||
ТекДанн = Элементы.ТоварыПоПериодам.ТекущиеДанные;
|
||||
Если ТекДанн <> Неопределено Тогда
|
||||
УстановитьПользовательскийОтборСКД(КомпоновщикНастроек,
|
||||
"Номенклатура", ТекДанн.Номенклатура);
|
||||
КонецЕсли;
|
||||
|
||||
// Открываем форму
|
||||
ПараметрыФормы = Новый Структура();
|
||||
ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
|
||||
ПараметрыФормы.Вставить("КлючВарианта", "Основной");
|
||||
ПараметрыФормы.Вставить("ПользовательскиеНастройки",
|
||||
КомпоновщикНастроек.ПользовательскиеНастройки);
|
||||
|
||||
ОткрытьФорму("Отчет.АнализНоменклатурыПоПлануЗакупок.Форма",
|
||||
ПараметрыФормы, ЭтотОбъект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УстановитьПользовательскийПараметрСКД(КомпоновщикНастроек,
|
||||
ИмяПараметра, Значение)
|
||||
|
||||
Настройки = КомпоновщикНастроек.Настройки;
|
||||
|
||||
ПараметрДанных =
|
||||
Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
|
||||
|
||||
Если
|
||||
ЗначениеЗаполнено(ПараметрДанных.ИдентификаторПользовательскойНастройки)
|
||||
Тогда
|
||||
|
||||
ПользовательскиеНастройки =
|
||||
КомпоновщикНастроек.ПользовательскиеНастройки;
|
||||
ПользовательскийПараметр =
|
||||
ПользовательскиеНастройки.Элементы.Найти(ПараметрДанных.ИдентификаторПользовательскойНастройки);
|
||||
ПользовательскийПараметр.Использование = Истина;
|
||||
ПользовательскийПараметр.Значение = Значение;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УстановитьПользовательскийОтборСКД(КомпоновщикНастроек,
|
||||
ИмяОтбора, Значение, ВидСравнения = Неопределено)
|
||||
|
||||
Настройки = КомпоновщикНастроек.Настройки;
|
||||
|
||||
ПолеКД = Новый ПолеКомпоновкиДанных(ИмяОтбора);
|
||||
|
||||
Для Каждого Элемент Из Настройки.Отбор.Элементы Цикл
|
||||
|
||||
Если Элем.ЛевоеЗначение = ПолеКД Тогда
|
||||
ЭлементОтбора = Элемент;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ЭлементОтбора = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если
|
||||
ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки)
|
||||
Тогда
|
||||
|
||||
ПользовательскиеНастройки =
|
||||
КомпоновщикНастроек.ПользовательскиеНастройки;
|
||||
ПользовательскийОтбор =
|
||||
ПользовательскиеНастройки.Элементы.Найти(ЭлементОтбора.ИдентификаторПользовательскойНастройки);
|
||||
ПользовательскийОтбор.Использование = (Значение <> Неопределено);
|
||||
ПользовательскийОтбор.ВидСравнения = ?(ВидСравнения <>
|
||||
Неопределено, ВидСравнения, ВидСравненияКомпоновкиДанных.Равно);
|
||||
ПользовательскийОтбор.ПравоеЗначение = Значение;
|
||||
ПользовательскийОтбор.РежимОтображения =
|
||||
РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
#КонецОбласти
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user