Убрать видимость отбора СКД или сделать недоступным его для изменения
В отчете на СКД есть один элемент отбора, который устанавливается программно и пользователь его не может менять.
Как заблокировать изменения этого отбора?
А еще лучше убрать его видимость.
Выносить в параметры не хочу.
Из 100% вариантов устанавливать его в событии при компоновке данных. Есть более нормальные варианты?
(2) не работает. Точне работает, но для пользовательских настроек. А у меня выведен на форму комповощикнастроек.отбор
Убрать строку в отчете СКД по определенному отбору поля

В существующем отчете СКД дублируются строки с Заказом в разрезе Перемещений. Необходимо убрать эти повторяющиеся строки в детализации отчета.
Оглавление
Отчет показывает состояние отгрузок по Заказам (перемещения, клиента). На данный момент, отчет выглядит так: дублируются строки с перемещениями отгруженными из заказа, но Итоговое поле верное, т.е. мы видим дублирование строк, которое не ломает итоговое суммирование. Посмотрим на сам отчет, отберемся по одному из Заказов на перемещение:

Из дублированных строк, нужно только «переместить» значения отказов, пустые значения «Заказано» убрать. В поле «Процент отгрузки» ошибка «Деление на 0». Все эти проблемы нужно устранить:
01 Для начала нужно исправить колонку «Отказ»: вывести кол-во Итого всех отмененных строк с товарами. В Заказе отмененные строки с товарами выглядят так:

Здесь мы будем вычислять общее кол-во отмененных товаров с любым «действием». Как считать отказы с действием «Отгрузить» мы разбирали ранее в статье .
1/1 Т.к. отчет создавался не мной, то я добавлю свое вычисляемое поле:

1/2 Добавляем поле в «Ресурсы»:

1/3 Затем в «Выбранные поля» отчета:

02 Следующим пунктом выполнения задачи, исправить «Деление на 0». Кстати, просто отбор делать по этому полю невозможно, получим ошибку «Деление на 0 значения типа Numeric»:

2/1 Выражения «Процент отгрузки» выглядят так:

2/2 Такая формула в итоге, иногда приводит к делению на 0, поэтому добавим условие:

Выражение:
Теперь вместо деления на 0, поле будет возвращать нулевое значение.
03 Последним этапом, нам необходимо «скрыть» ненужные строки в детализации отчета. Добавить отбор по этому пользовательскому полю «Процент отгрузки» у меня не получилось, ошибка «Фильтрация записей по выражениям, содержащим агрегатные функции, не допустима»:

Скорее всего, если бы поле было не пользовательским, а вычисляемым, то все бы сработало. Но это не проблема, возьмем за основу поле «Заказано», которое применили в Выражении пользовательского поля «Процент отгрузки» и оно тоже равняется 0, когда пользовательское поле равно 0.
Вкладка «Настройки» — <Детальные записи> перейти на вкладку «Отбор» — установить поле «Заказано: Больше 0»:

Получается логика такая: выводить строки с перемещениями товаров, в которых поле «Заказано» больше 0.
На этом, все. Отчет работает правильно, строки не дублируются, данные все есть:
Как в отчете отключить отображение секции параметров и отбора в СКД
Система компоновки данных (СКД) это самый простой и быстрый способ создать отчет в 1С. С её помощью можно сделать неплохой отчет буквально за несколько минут. Если честно то для этого не потребуется особых знаний программирования, так как там все делается с помощью интерфейса. Но в нем самостоятельно разобраться будет ну очень не просто. Поэтому я решил написать несколько небольших статей посвященных СКД, в которых буду рассказывать про создание и настройку отчетов. Сегодня расскажу о том как можно отключить отображение секции параметров и отборов в СКД.
Как убрать параметры и отбор в отчете
И так для начала рассмотрим что такое параметры и отборы в СКД. Для примера возьмем вот такой простенький отчет, у него есть параметры это «Дата начала» и «Дата окончания» а так же отбор по контрагенту. Если установить параметры и отбор то все это про дублируется и в сформированном отчете. Чисто внешне это выглядит не очень, зачем отображать одну и туже информацию дважды, логичней формировать отчет без параметров и отборов.
Вариант с параметрами может пригодиться если Вы этот отчет будет распечатывать.

Отключить отображения параметров и отбора достаточно просто, для этого необходимо открыть «Основную схему компоновки данных», перейти в раздел «Настройки» после чего открыть вкладку «Другие настройки», найти там два пункта «Выводить параметры» и «Выводить отбор», для отключения в значениях вместо «Авто» выбираем «Не выводить».

Сохраняем и проверяем что получилось, согласитесь теперь отчет выглядит намного лучше.

Вообще рекомендую поближе ознакомиться с вкладкой «Другие настройки», так как там Вы найдете очень много полезного. В первую очередь она отвечает за внешний вид отчета, например, можно изменить макет оформления, выбрать например «Зеленый».

Вообще внешнему виду отчетов стоить уделять намного больше внимания, так как грамотно оформленный отчет будет восприниматься намного легче.

Отключить отображение параметром можно и с помощью кода, но зачем его писать если все можно сделать намного проще.
Бодаемся с отображением отборов на управляемых формах

Как известно многим, дьявол всегда кроется в мелочах. Одной из таких мелочей всплыло замечание пользователей о том, что при добавлении отборов при настройке списка не всегда отображается вид сравнения.
Используя главный инструмент разработчика — а именно метод научного тыка, я определил, что вид сравнения не отображается, если он соответствует виду "Равно". Исправление этой прекрасной находки специалистов по юзабилити из 1С, казалось бы, находится на расстоянии вытянутой руки: вот и заветная галочка, доступная из настроек формы:
Казалось бы, дело за малым, перехватить момент, когда отборы попадают на форму, да пройтись по всем элементам группы пользовательских настроек и проставить видимость.
Итак, первым делом нужно усвоить, что те отборы, которые мы используем через стандартную команду настройки списка, имеют отношение не к самой форме, а к динамическому списку, расположенному на ней, и являются ни чем иным, как пользовательскими настройками.
Если смотреть свойства динамического списка через палитру, можно найти две зацепки для решения нашей задачи:
1) Во-первых, это свойство "Группа пользовательских настроек". В данном свойстве указывается группа формы, которая выступит родителем для всех добавляемых элементов с отображением отборов.
2) Во-вторых, это событие списка "ПриОбновленииСоставаПользовательскихНастроекНаСервере".
Именно сюда вы попадёте если будете грешить после нажатия кнопки "Завершить редактирование" в форме настройки списка. При создании процедуры у неё есть лишь один параметр — использовать стандартную обработку или нет. При стандартной обработке будет вызван метод расширения формы динамического списка (т.е. элемента) СоздатьЭлементыФормыПользовательскихНастроек, который формирует все поля отборов на форме. На этом моменте у нас есть два выбора: или сформировать все поля через Элементы.Список.СоздатьЭлементыФормыПользовательскихНастроек(), а потом проставить видимость элементов, или взять дело целиком в свои руки и отрисовать поля самим. Я выбрал второй вариант, хотя, думаю, вы сможете реализовать и первый, зная, что откуда растёт. В любом случае не забудьте, что стандартная обработка должна быть выключена!
Рассмотрим программное создание полей на примере рабочего кода:
Как видите, алгоритм не очень сложен, дольше всего я провозился с путём к данным с настройками — первый массив, в который мы попадаем (который жёстко прописан в пути) содержит информацию по отборам, а последующие массивы уже информацию ко конкретным настройкам отбора.
В итоге мы имеем стройный ряд настроек, который можно поменять в любой момент: