Отключение колонки отчета при отсутствии данных в строках
Как программно отключить поле(Колонку) при отсутствии данных по ней в строках.
То есть имеется отчет в нем есть группировка детальных записей:
"Контрагент" | "Номенклатура" | "Размер" | "Количество"
Так вот в большинстве случаев во всех строках колонки "Размер" отсутствуют данные.
Необходимо при отсутствии данных по этой колонке отключать ее использование.
Пытался в запросе создать параметр типа булево с подсчетом количества но не могу понять как этот параметр установить из запроса.
Отчет на СКД.
Просьба условное оформление по группировке не предлагать тк не умеет СКД нулевую ширину устанавливать.
Может у кого была такая задача, тема живая и нужная давайте погутарим!
То есть имеется отчет в нем есть группировка детальных записей:
"Контрагент" | "Номенклатура" | "Размер" | "Количество"
Так вот в большинстве случаев во всех строках колонки "Размер" отсутствуют данные.
Необходимо при отсутствии данных по этой колонке отключать ее использование.
Поле.Использование = Ложь;
Иначе Поле.Использование = Истина;
Пытался в запросе создать параметр типа булево с подсчетом количества но не могу понять как этот параметр установить из запроса.
ВЫБОР
КОГДА КОЛИЧЕСТВО(ВТ_ВсеОбъекты.Размер) > 0
ТОГДА &ДаНет = ИСТИНА
ИНАЧЕ &ДаНет = Истина
КОНЕЦ КАК ДаНет
Отчет на СКД.
Просьба условное оформление по группировке не предлагать тк не умеет СКД нулевую ширину устанавливать.
Может у кого была такая задача, тема живая и нужная давайте погутарим!
По теме из базы знаний
- Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Права на объект (расширение, отчет)
- Обзор полезных методов БСП 3.1.4
- Интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP
- Мобильный помощник эксперта 1С (приложение android, позволяющее строить отчеты на СКД по логам технологического журнала и не только)
Найденные решения
(1) параметры нельзя устанавливать из запроса. Они работают наоборот. На момент запроса параметры должны быть установлены (вместо них подставляются их значения).
Первое, что пришло в голову, это получать программно в ТЗ. Анализировать полученный ТЗ. И уже по итогу, если необходимо, скрывать колонку отчета и формировать отчет уже в табличный документ. Из минусов: двойное выполнение отчета.
Пример:
Первое, что пришло в голову, это получать программно в ТЗ. Анализировать полученный ТЗ. И уже по итогу, если необходимо, скрывать колонку отчета и формировать отчет уже в табличный документ. Из минусов: двойное выполнение отчета.
Пример:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
// 1
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Если ТЗ.Итог("ПолеКотороеНужноСкрыть") = 0 Тогда
ОтключаемаяКолонка = Новый ПолеКомпоновкиДанных("ПолеКотороеНужноСкрыть");
Для Каждого Колонка Из Настройки.Выбор.Элементы Цикл
Если Колонка.Поле = ОтключаемаяКолонка Тогда
Колонка.Использование = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) параметры нельзя устанавливать из запроса. Они работают наоборот. На момент запроса параметры должны быть установлены (вместо них подставляются их значения).
Первое, что пришло в голову, это получать программно в ТЗ. Анализировать полученный ТЗ. И уже по итогу, если необходимо, скрывать колонку отчета и формировать отчет уже в табличный документ. Из минусов: двойное выполнение отчета.
Пример:
Первое, что пришло в голову, это получать программно в ТЗ. Анализировать полученный ТЗ. И уже по итогу, если необходимо, скрывать колонку отчета и формировать отчет уже в табличный документ. Из минусов: двойное выполнение отчета.
Пример:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
// 1
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Если ТЗ.Итог("ПолеКотороеНужноСкрыть") = 0 Тогда
ОтключаемаяКолонка = Новый ПолеКомпоновкиДанных("ПолеКотороеНужноСкрыть");
Для Каждого Колонка Из Настройки.Выбор.Элементы Цикл
Если Колонка.Поле = ОтключаемаяКолонка Тогда
Колонка.Использование = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
Показать
(1)
Нет, т.к. задача практически является бредом.
Пользователь сам должен решать, какие поля выводить, а какие нет - он задает структуру отчета. Ну, а если так сильно хочется, то решается она с помощью программного вывода. Есть куча примеров.
Может у кого была такая задача, тема живая и нужная давайте погутарим!
Нет, т.к. задача практически является бредом.
Пользователь сам должен решать, какие поля выводить, а какие нет - он задает структуру отчета. Ну, а если так сильно хочется, то решается она с помощью программного вывода. Есть куча примеров.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот