Имя: Пароль:
1C
1С v8
Отследить установку галки в отборе СКД
,
0 ONE1
 
15.06.22
15:52
Подскажите пожалуйста, можно ли отследить как пользователь ставит/снимает галочку отбора в отчете на скд для программного изменения запроса?

Нужно сделать отбор по справочнику, чтобы пользователь мог отбирать как по группе, так и по конкретному элементу, где то увидел, что это делается через "В ИЕРАРХИИ" у параметра, хочу убирать строку с параметром из запроса, если не стоит галка на использование *o*
1 vicof
 
15.06.22
16:05
СКД сам программно изменяет запрос в зависимости от натыканных галочек. Не нужно добавлять отбор в текст запроса.
2 vicof
 
15.06.22
16:06
И отборы и параметры - разные вещи, ты уже определись
3 ONE1
 
15.06.22
16:16
Галочка у параметра, его и хочу убирать из запроса. Если галку убрать, в пользовательском режиме, то ругается, что не задано значение (2)
4 vicof
 
15.06.22
16:17
Ну и убери, и сделай отбор
5 ONE1
 
15.06.22
16:18
(4) так мне же надо в группе + по элементу отбор чтобы был
6 ONE1
 
15.06.22
16:19
А я так понял, что это только через В ИЕРАРХИИ
7 vicof
 
15.06.22
16:21
И в чем проблема сделать это в отборах?
8 vicof
 
15.06.22
16:22
Пусть сам указывает в иерархии и равно или не равно или еще чото
9 ONE1
 
15.06.22
16:26
суть задачи, чтобы самому не нужно было указывать :с
10 ONE1
 
15.06.22
16:30
Так как-то можно в компоновщике настроек найти установлена галочка или нет? с:
11 butterbean
 
15.06.22
16:33
(10) Галка - это поле Использование. Но в твоем случае нужно отказаться от параметров, в СКД они нужны только для обязательных условий отборов
12 ONE1
 
15.06.22
16:40
(11) а какие-нибудь другие способы есть, чтобы можно было выбирать либо конкретную, либо группу номенклатуры?(
13 hhhh
 
15.06.22
16:44
(12) сделай 2 отбора
14 unenu
 
15.06.22
16:45
(11) спорное утверждение. параметры СКД могут быть нужны и для экзотических целей: в УО, использовние в настройках отборов, в макетах для вариаций вывода и еще 100500 целей использования о которых пользовтель даже не догадывается.
15 unenu
 
15.06.22
16:47
(12) Условие отбора с группой ИЛИ мб?
16 unenu
 
15.06.22
16:54
(10) можно так закостылить, как правило "эстеты" воют от такого решения, но если оно решит разовую задачу, то соедет. в тираж такое пускать грешно, конеш.

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    //.....
    
    НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
    
    ПараметрКдИспользование = Ложь;
    ПараметрКдИмя = "МойПараметрГруппа";
    ПараметрКд = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(ПараметрКдИмя));
    Если ПараметрКд = Неопределено Тогда
        Сообщить(СтрШаблон("В Отчете: ""%1"" не задан Параметр: ""%2""", ЭтотОбъект.Метаданные().Представление(), ПараметрКдИмя));
    Иначе
        ПараметрКдИспользование = ПараметрКд.Использование;
    КонецЕсли;
    
    // Если использование параметра-группы сброшено, то установим использовнаие параметра-элемента
    Если НЕ ПараметрКдИспользование Тогда
        ПараметрКдИмя = "МойПараметрЭлемент";
        ПараметрКд = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(ПараметрКдИмя));
        Если ПараметрКд = Неопределено Тогда
            Сообщить(СтрШаблон("В Отчете: ""%1"" не задан Параметр: ""%2""", ЭтотОбъект.Метаданные().Представление(), ПараметрКдИмя));
        Иначе
            ПараметрКд.Использование = Истина;
            //ПараметрКд.Значение = некое заначение;
        КонецЕсли;
    КонецЕсли;    
    
    //.....
    
КонецПроцедуры
17 ONE1
 
15.06.22
17:19
(16) Лучший <3, и за костыль спасибо, и за объяснение, что так лучше не делать c: