Как убрать отображение отбора в отчете 1с
Перейти к содержимому

Как убрать отображение отбора в отчете 1с

  • автор:

Убрать видимость отбора СКД или сделать недоступным его для изменения

В отчете на СКД есть один элемент отбора, который устанавливается программно и пользователь его не может менять.

Как заблокировать изменения этого отбора?
А еще лучше убрать его видимость.
Выносить в параметры не хочу.

Из 100% вариантов устанавливать его в событии при компоновке данных. Есть более нормальные варианты?

(2) не работает. Точне работает, но для пользовательских настроек. А у меня выведен на форму комповощикнастроек.отбор

Убрать строку в отчете СКД по определенному отбору поля

В существующем отчете СКД дублируются строки с Заказом в разрезе Перемещений. Необходимо убрать эти повторяющиеся строки в детализации отчета.

Оглавление

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

2020-04-15 20 56 01

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

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

2020-04-15 21 34 59

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

1/1 Т.к. отчет создавался не мной, то я добавлю свое вычисляемое поле:

2020-04-15 21 52 06

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

2020-04-15 22 02 15

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

2020-04-15 22 07 18

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

2020-04-15 22 14 25

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

2020-04-15 22 18 17

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

2020-04-15 22 42 06

Выражение:

Теперь вместо деления на 0, поле будет возвращать нулевое значение.

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

2020-04-15 22 43 35

Скорее всего, если бы поле было не пользовательским, а вычисляемым, то все бы сработало. Но это не проблема, возьмем за основу поле «Заказано», которое применили в Выражении пользовательского поля «Процент отгрузки» и оно тоже равняется 0, когда пользовательское поле равно 0.

Вкладка «Настройки» — <Детальные записи> перейти на вкладку «Отбор» — установить поле «Заказано: Больше 0»:

2020-04-15 23 59 49

Получается логика такая: выводить строки с перемещениями товаров, в которых поле «Заказано» больше 0.

На этом, все. Отчет работает правильно, строки не дублируются, данные все есть:

Как в отчете отключить отображение секции параметров и отбора в СКД

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

Как убрать параметры и отбор в отчете

И так для начала рассмотрим что такое параметры и отборы в СКД. Для примера возьмем вот такой простенький отчет, у него есть параметры это «Дата начала» и «Дата окончания» а так же отбор по контрагенту. Если установить параметры и отбор то все это про дублируется и в сформированном отчете. Чисто внешне это выглядит не очень, зачем отображать одну и туже информацию дважды, логичней формировать отчет без параметров и отборов.

Вариант с параметрами может пригодиться если Вы этот отчет будет распечатывать.

1С Параметры и Отбор в СКД

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

Как отчете отключить отображение секции параметров и отбора в СКД

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

Как убрать параметры и отбор в отчете

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

1С Как в СКД отключить отображение параметра в отчете

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

1С Как в СКД отключить отображение параметра и отбора в отчете

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

Бодаемся с отображением отборов на управляемых формах

Как известно многим, дьявол всегда кроется в мелочах. Одной из таких мелочей всплыло замечание пользователей о том, что при добавлении отборов при настройке списка не всегда отображается вид сравнения.

Используя главный инструмент разработчика — а именно метод научного тыка, я определил, что вид сравнения не отображается, если он соответствует виду "Равно". Исправление этой прекрасной находки специалистов по юзабилити из 1С, казалось бы, находится на расстоянии вытянутой руки: вот и заветная галочка, доступная из настроек формы:

Казалось бы, дело за малым, перехватить момент, когда отборы попадают на форму, да пройтись по всем элементам группы пользовательских настроек и проставить видимость.

Итак, первым делом нужно усвоить, что те отборы, которые мы используем через стандартную команду настройки списка, имеют отношение не к самой форме, а к динамическому списку, расположенному на ней, и являются ни чем иным, как пользовательскими настройками.

Если смотреть свойства динамического списка через палитру, можно найти две зацепки для решения нашей задачи:

1) Во-первых, это свойство "Группа пользовательских настроек". В данном свойстве указывается группа формы, которая выступит родителем для всех добавляемых элементов с отображением отборов.

2) Во-вторых, это событие списка "ПриОбновленииСоставаПользовательскихНастроекНаСервере".

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

Рассмотрим программное создание полей на примере рабочего кода:

Как видите, алгоритм не очень сложен, дольше всего я провозился с путём к данным с настройками — первый массив, в который мы попадаем (который жёстко прописан в пути) содержит информацию по отборам, а последующие массивы уже информацию ко конкретным настройкам отбора.

В итоге мы имеем стройный ряд настроек, который можно поменять в любой момент:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *