СКД. Программная установка видимости выбранных полей
По теме из базы знаний
- Заметочки про 1С:Предприятие 8 (редакция 22.06.2012)
- Создание отчетов с помощью СКД - основные понятия и элементы
- Расшифровка СКД. Фильтр отчета по диапазону чисел. Переопределение обработки расшифровки. Не модальный режим
- Когда много строк в документе: Удобный редактор табличных частей
- Доработка типового отчета на СКД с помощью расширения
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Возможно использование этого поля стоит в пользовательских настройках. Можно копаться в полях при компоновке, но я бы сделал иначе:
Попробуйте вместо этого программно запрещать не использование, как "флажок",
а задавать ограничение этого поля для использования вообще. Лень прикреплять скриншот - см. "ограничение поля" - флажок "поле".
И, разумеется, удаляйте его из выбранных полей.
По крайней
Попробуйте вместо этого программно запрещать не использование, как "флажок",
а задавать ограничение этого поля для использования вообще. Лень прикреплять скриншот - см. "ограничение поля" - флажок "поле".
И, разумеется, удаляйте его из выбранных полей.
По крайней
Процедура выводящая отчет:
Если СброситьНастройки Тогда
КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.Полное);
КомпоновщикНастроек.ЗагрузитьНастройки(ВариантОтчета.Настройки);
Иначе
НастройкиКД = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикНастроек.ЗагрузитьНастройки(ВариантОтчета.Настройки);
КонецЕсли;
ЭлементыФормы.Результат.Очистить();
УстановитьОтборВОтчет(ПолеВводаМенеджеровВСписок, "Контрагент.ОсновнойМенеджерПокупателя", ВидСравненияКомпоновкиДанных.ВСписке, ОтборПоМенеджерамВкл);
УстановитьОтборВОтчет(ПолеВводаГруппНоменклатуры, "Номенклатура", ВидСравненияКомпоновкиДанных.ВИерархии, ОтборПоГруппамВкл);
УстановитьЗначениеПараметра("ДатаНачала", ПолеДатаНачала);
УстановитьЗначениеПараметра("ДатаОкончания", ПолеДатаОкончания);
ВыбранныеПоля = КомпоновщикНастроек.Настройки.Выбор.Элементы;
МассивПолейКоличества = Новый Массив;
МассивПолейКоличества.Добавить("КоличествоТ");
МассивПолейКоличества.Добавить("КоличествоП");
МассивПолейКоличества.Добавить("ПользовательскиеПоля.Поле1");
МассивПолейСтоимости = Новый Массив;
МассивПолейСтоимости.Добавить("СтоимостьТ");
МассивПолейСтоимости.Добавить("СтоимостьП");
МассивПолейСтоимости.Добавить("ПользовательскиеПоля.Поле2");
Для Каждого ВыбранноеПоле Из ВыбранныеПоля Цикл
Если ТипЗнч(ВыбранноеПоле) = Тип("ВыбранноеПолеКомпоновкиДанных") Тогда
Если МассивПолейСтоимости.Найти(Строка(ВыбранноеПоле.Поле)) <> Неопределено Тогда
ВыбранноеПоле.Использование = ПоказыватьСтоимость;
КонецЕсли;
Если МассивПолейКоличества.Найти(Строка(ВыбранноеПоле.Поле)) <> Неопределено Тогда
ВыбранноеПоле.Использование = ПоказыватьКоличество;
КонецЕсли;
КонецЕсли;
КонецЦикла;
СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки); //таб док на форме
ЭлементыФормы.Результат.ПоказатьУровеньГруппировокКолонок(0);
ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(0);
Если ВариантОтчета.Имя="Вариант4" Тогда
МассивМаркеров=Новый Массив;
МассивМаркеров.Добавить("янв.");
МассивМаркеров.Добавить("февр.");
МассивМаркеров.Добавить("март");
МассивМаркеров.Добавить("апр.");
МассивМаркеров.Добавить("май");
МассивМаркеров.Добавить("июнь");
МассивМаркеров.Добавить("июль");
МассивМаркеров.Добавить("авг.");
МассивМаркеров.Добавить("сент.");
МассивМаркеров.Добавить("окт.");
МассивМаркеров.Добавить("нояб.");
МассивМаркеров.Добавить("дек.");
Для Каждого Маркер Из МассивМаркеров Цикл
ОбъединитьЯчейкиВТабличномДокументе(ЭлементыФормы.Результат, Маркер);
КонецЦикла;
КонецЕсли;
УдаляемоеПолеКомпоновки1=Неопределено;
Для Каждого тэКНКОлонки Из КомпоновщикНастроек.Настройки.Структура[0].Колонки[0].Выбор.Элементы Цикл
Если Строка(тэКНКОлонки.Поле)="СтоимостьТ" Тогда
Если Не ПоказыватьСтоимость Тогда
УдаляемоеПолеКомпоновки1=тэКНКОлонки;
КонецЕсли;
тэКНКОлонки.Использование=ПоказыватьСтоимость;
КонецЕсли;
Если Строка(тэКНКОлонки.Поле)="КоличествоТ" Тогда
Если Не ПоказыватьКоличество Тогда
УдаляемоеПолеКомпоновки1=тэКНКОлонки;
КонецЕсли;
тэКНКОлонки.Использование=ПоказыватьКоличество;
КонецЕсли;
КонецЦикла;
УдаляемоеПолеКомпоновки2=Неопределено;
Для Каждого тэКНКОлонки Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл
Если Строка(тэКНКОлонки.Поле)="СтоимостьТ" Тогда
Если Не ПоказыватьСтоимость Тогда
УдаляемоеПолеКомпоновки2=тэКНКОлонки;
КонецЕсли;
КонецЕсли;
Если Строка(тэКНКОлонки.Поле)="КоличествоТ" Тогда
Если Не ПоказыватьКоличество Тогда
УдаляемоеПолеКомпоновки2=тэКНКОлонки;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если Не УдаляемоеПолеКомпоновки1=Неопределено Тогда
КомпоновщикНастроек.Настройки.Структура[0].Колонки[0].Выбор.Элементы.Удалить(УдаляемоеПолеКомпоновки1);
КонецЕсли;
Если Не УдаляемоеПолеКомпоновки2=Неопределено Тогда
КомпоновщикНастроек.Настройки.Выбор.Элементы.Удалить(УдаляемоеПолеКомпоновки2);
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот