Скрыть колонку в отчете скд по условию

1. user1619761 27.03.25 14:51 Сейчас в теме
Добрый день. Как можно скрыть колонку в отчете скд по условию? Сделал через уо, мин и макс ширину -0.1, работает. Но работает всегда. Мне нужно скрыть колонку с числовым значением, если во всем отчете в этой колонке значения = 0, если есть хоть одно значение не = 0, колонку скрывать не нужно. Подскажите, пожалуйста, как можно такое реализовать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1619761 27.03.25 14:53 Сейчас в теме
Пока что вижу вариант добавления дополнительного поля с типом булево, как сумма(моезначение) > 0, и по нему уо делать
3. Vinzor 112 27.03.25 15:04 Сейчас в теме
Еще можно в
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
написать обработчик.

у вас есть УсловиеСкрытия.

1. Получить настройки отчета
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();

2. Создать новый список значений, Например "ПоляСкрытия".
В него добавить ваши колонки как
"ПоляСкрытия.Добавить(Новый ПолеКомпоновкиДанных("СкрываемаяПоУсловиюКолонка"))

Только вставляете реальные имена колонок!

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


Примерно такой код. Отладите под себя.
user1619761; +1 Ответить
Оставьте свое сообщение

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