Имя: Пароль:
1C
 
СКД : Управление видимостью колонок реквизитов ресурсов через Форму Отчета
0 bvb
 
01.09.25
13:17
Добрый день

Есть отчет, в нем выводится два ресурса (см. Выбранные поля)
Используется Форма Отчета и управление ею через механизм :
    Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
        
        Настройки.События.ПриСозданииНаСервере = Истина;
        Настройки.События.ПередЗагрузкойВариантаНаСервере = Истина;
          Настройки.События.ПриЗагрузкеВариантаНаСервере = Истина;
        Настройки.События.ПриЗагрузкеПользовательскихНастроекНаСервере = Истина;
        
    КонецПроцедуры

Клиент хочет ЛЕГКО и ИНТРАКТИВНО управлять видимостью колонок через Форме отчета
Как их вывести управление на форму отчета в виде полей флажка ?
1 craxx
 
01.09.25
13:20
(0) разверни УНФ 3 и посмотри как там реализовано
2 toypaul
 
гуру
01.09.25
14:09
первое что пришло в голову - добавить вспомогательные параметры. далее их анализировать или в при компоновке или в каком-то событии из настроек формы. анализировать и устанавливать видимость полей.
3 toypaul
 
гуру
01.09.25
14:10
Не помню можно такое с полями или нет, но с отборами это делается с помощью добавления в пользовательские настройки через представление - появляется флажок на форме, который включает/выключает отбор.
4 bvb
 
01.09.25
14:48
(3)
Т.е. без параметров никак?

А можно отослать к какому-то примеру из типовых?
5 Chameleon1980
 
01.09.25
15:25
(4) а в (1) куда отослали?
6 bvb
 
01.09.25
16:58
(5) Если в 1С речь про УНФ 3.0, я там подобных отчетов не видел
7 craxx
 
01.09.25
20:04
(6) Ошибся. УНФ 1.6
Пример на скрине
8 toypaul
 
гуру
02.09.25
09:37
(7) В УНФ какой-то свой интерфейс в отчетах. На БСП нет такого. Если у автора не УНФ, то вряд ли он к себе такое перенесет.
9 bvb
 
02.09.25
12:11
Кажется я нащупал решение.

В модуле отчета в методе ПриСозданииНаСервере добавил крымжики и процедуры ПриИзменении на ФормуОтчета

МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("ПоказательРуб", Новый ОписаниеТипов("Булево")));
Форма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);

НовыйЭлемент = Форма.Элементы.Вставить("ПоказательРуб", Тип("ПолеФормы"), Форма.Элементы.KMS_Настройки);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка;
НовыйЭлемент.ПутьКДанным = "ПоказательРуб";
ПодключаемыеКоманды.ДобавитьКоманду (Форма, , "KMS_ОПИУ_ПоказательРуб", "(KMS)ОПИУ Показатель (Руб)");
Форма.Элементы.ПоказательРуб.УстановитьДействие("ПриИзменении", "KMS_ОПИУ_ПоказательРуб");

Сами процедуры в форме отчета вызываются - проверил.

Теперь нужно разобраться, как в этих процедурах включать и выключать выбранные поля в СКД.
Я полагаю нужно получить доступ к СКД через ОтчетОбъект     = РеквизитФормыВЗначение("Отчет");
10 toypaul
 
гуру
02.09.25
12:29
(9) решил не искать легких путей? ну теперь изучай как устроена типовая форма отчета.

нужно добраться до настроек. но точно не так ОтчетОбъект     = РеквизитФормыВЗначение("Отчет");
11 bvb
 
02.09.25
12:35
(10) Альтернатива какая ?
Допустим создал я отдельный параметр в СКД

Вывести на форму его не проблема.

А как его поженить с управлением полем СКД ?
12 toypaul
 
гуру
02.09.25
12:40
(11) я выше писал. отдельно расписывать лень и некогда
13 bvb
 
02.09.25
12:51
(12) Анализировать в ПриКомпоновке ?

Можно кстати. Я что то сразу не додумал.

Где то у меня была методичка СделайВсеВПриКомпоновкеРезультата