Есть простой отчет.
Он выводит план и факт по статьям финансирования.
Есть задача отображать по галочке отчет в тысячах или в рублях. Я создал параметр в скд ВыводитьВТыс и пользовательские поля в которых План и Факт делятся на 1000. Мне нужно скрыть план и факт в руб если ВыводитьВТыс = Истина и отображать пользовательские поля План и Факт в тыс и наоборот если ВыводитьВТыс = Ложь.
Если я делаю как ниже, то это не срабатывает. Хотя в отладчике эти поля находятся и галочка Использование ставится в ложь.
Вот собственно код:
Код 1C v 8.2 УП
&НаСервере
Процедура СформироватьНаСервере()
СлужебныеНастройкиСхемыКомпоновки();
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
КомпоновщикНастроек.Настройки, , ,);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
Результат.Очистить();
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Результат.Показать();
КонецПроцедуры
Процедура СлужебныеНастройкиСхемыКомпоновки()
ЗначениеПараметраВыводитьВТыс = ПолучитьЗначениеПараметра(Отчет.КомпоновщикНастроек.Настройки,"ВыводитьВТыс");
ДоступныеПоляВыбора = Отчет.КомпоновщикНастроек.Настройки.Выбор.ДоступныеПоляВыбора;
Если ЗначениеПараметраВыводитьВТыс<>Неопределено Тогда
Если ЗначениеПараметраВыводитьВТыс.Значение Тогда
НайденоеПоле = НайтиВыбранноеПоле(Новый ПолеКомпоновкиДанных("СуммаФакт"));
Если НайденоеПоле<>неопределено Тогда
НайденоеПоле.Использование = Ложь;
КонецЕсли;
НайденоеПоле = НайтиВыбранноеПоле(Новый ПолеКомпоновкиДанных("СуммаПлан"));
Если НайденоеПоле<>неопределено Тогда
НайденоеПоле.Использование = Ложь;
КонецЕсли;
Иначе
НайденоеПоле = НайтиВыбранноеПоле(Новый ПолеКомпоновкиДанных("ПользовательскиеПоля.Поле1"));
Если НайденоеПоле<>неопределено Тогда
НайденоеПоле.Использование = Ложь;
КонецЕсли;
НайденоеПоле = НайтиВыбранноеПоле(Новый ПолеКомпоновкиДанных("ПользовательскиеПоля.Поле2"));
Если НайденоеПоле<>неопределено Тогда
НайденоеПоле.Использование = Ложь;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры