СКД.Выводить/не выводить определенное поле в зависимости от флага на форме

1. Tarley 06.12.13 16:39 Сейчас в теме
Добрый день. Подозреваю что таких вопросов было множество,но мне так ничего и не помогло. Есть отчет на СКД, в нем есть вычисляемое поле Цена, не ресурс. Есть на форме отчета галка, если стоит, надо выводить цену,если нет - не выводить. Также есть четыре сгруппированных ресурса. И все это работало прекрасно до того момента, пока я не добавила еще восемь ресурсов.
В модуле отчета в процедуре ПриКомпоновкеРезультата у меня было приписано:
Если ВыводитьЦену=Ложь Тогда
КомпоновщикНастроек.Настройки.Выбор.Элементы[4].Использование=Ложь;
Иначе
КомпоновщикНастроек.Настройки.Выбор.Элементы[4].Использование=Истина;
КонецЕсли;

Сейчас добавила в отчет еще группировку и еще восемь ресурсов - и теперь при нажатии флага ничего не меняется,поле цена выводится при любом значении флага. Пол дня копалась,перерыла пол интернета, в отладчике рассмотрела все под микроскопом - и все равно не ясно что не так. Прилагаю скрины каждого из уровней группировок и сам отчет, он под бухгалтерию 2.0
Помогите советом пожалуйста. Ситуация непонятная совсем.




Прикрепленные файлы:
БП от 11.10.13 ПриходРасходПоСчету.erf
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. compreSSor 10 07.12.13 01:41 Сейчас в теме
(1) Tarley, ты отключаешь "Цену" в группировке "Отчет".
но если копнуть ниже (в самый низ) - там есть группировка "Детальные записи" - обрати внимание, что там тоже есть "Цена".

Удачи тебе в познании СКД ;)
3. Tarley 07.12.13 15:22 Сейчас в теме
Это да. А как его в Детальных-то записях отключить?..
4. Tarley 07.12.13 17:03 Сейчас в теме
Спасибо за совет,разобралась. Если кому интересно:
Для того чтобы отключить вывод поля по всем группировкам(мало ли пользователь еще своих понаставит?..) надо сделать обход по всей структуре настроек компоновщика, и каждый раз при обходе обращаться к этому элементу,но уже к полям его структуры. Вот код.


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Если ВыводитьЦену=Ложь Тогда
ВклОткл=Ложь;
Иначе
ВклОткл=Истина;
КонецЕсли;
Структура = КомпоновщикНастроек.Настройки.Структура;
ИзменитьИерархиюГруппировку(Структура,ВклОткл);
КонецПроцедуры





Процедура ИзменитьИерархиюГруппировку(Структура,ВклОткл)
Для каждого ЭлементСтруктуры Из Структура Цикл
Для Каждого Поле из ЭлементСтруктуры.Выбор.Элементы Цикл
Если Поле.Заголовок="Цена" Тогда
Поле.Использование=ВклОткл;
КонецЕсли;
КонецЦикла;
ИзменитьИерархиюГруппировку(ЭлементСтруктуры.Структура, ВклОткл);
КонецЦикла;
КонецПроцедуры


Все работает хорошо.
YNik; MarinaLed; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот