helpf.pro
Регистрация

v8.2 УП: Управление видимостью пользовательскими полями

mrminer
17.02.2014 12:27Прочитано: 4681
Есть простой отчет.
Он выводит план и факт по статьям финансирования.
Есть задача отображать по галочке отчет в тысячах или в рублях. Я создал параметр в скд ВыводитьВТыс и пользовательские поля в которых План и Факт делятся на 1000. Мне нужно скрыть план и факт в руб если ВыводитьВТыс = Истина и отображать пользовательские поля План и Факт в тыс и наоборот если ВыводитьВТыс = Ложь.
Если я делаю как ниже, то это не срабатывает. Хотя в отладчике эти поля находятся и галочка Использование ставится в ложь.
Вот собственно код:
Код 1C v 8.2 УП
 
&НаСервере
Процедура СформироватьНаСервере()


СлужебныеНастройкиСхемыКомпоновки();
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

КомпоновщикНастроек = Отчет.КомпоновщикНастроек;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
КомпоновщикНастроек.Настройки, , ,);

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
Результат.Очистить();
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Результат.Показать();

КонецПроцедуры

Процедура СлужебныеНастройкиСхемыКомпоновки()

ЗначениеПараметраВыводитьВТыс = ПолучитьЗначениеПараметра(Отчет.КомпоновщикНастроек.Настройки,"ВыводитьВТыс");
ДоступныеПоляВыбора = Отчет.КомпоновщикНастроек.Настройки.Выбор.ДоступныеПоляВыбора;
Если ЗначениеПараметраВыводитьВТыс<>Неопределено Тогда

Если ЗначениеПараметраВыводитьВТыс.Значение Тогда

НайденоеПоле = НайтиВыбранноеПоле(Новый ПолеКомпоновкиДанных("СуммаФакт"));
Если НайденоеПоле<>неопределено Тогда
НайденоеПоле.Использование = Ложь;
КонецЕсли;
НайденоеПоле = НайтиВыбранноеПоле(Новый ПолеКомпоновкиДанных("СуммаПлан"));
Если НайденоеПоле<>неопределено Тогда
НайденоеПоле.Использование = Ложь;
КонецЕсли;

Иначе

НайденоеПоле = НайтиВыбранноеПоле(Новый ПолеКомпоновкиДанных("ПользовательскиеПоля.Поле1"));
Если НайденоеПоле<>неопределено Тогда
НайденоеПоле.Использование = Ложь;
КонецЕсли;
НайденоеПоле = НайтиВыбранноеПоле(Новый ПолеКомпоновкиДанных("ПользовательскиеПоля.Поле2"));
Если НайденоеПоле<>неопределено Тогда
НайденоеПоле.Использование = Ложь;
КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецПроцедуры

Yandex
Возможно, вас также заинтересует
Реклама на портале
Jonsony
17.02.2014 12:41Ответ № 1
просто по условию выводить или то или то, а не вместе
так всегда таблицу формировали отчёта
Изменено 17.02.14 13:12:17
Mokey
19.02.2014 09:57Ответ № 2
Сдаётся мне, что надо вызвать СформироватьНаСервере() после того, как установили видимости полей, чтобы отчёт сформировался с новыми настройками
Подсказка: Щелникни по Имени пользователя напротив ответа, и тем самым покажешь, что сообщение адресовано ему.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.