Убрать строку в отчете СКД по определенному отбору поля
В существующем отчете СКД дублируются строки с Заказом в разрезе Перемещений. Необходимо убрать эти повторяющиеся строки в детализации отчета.
Отчет показывает состояние отгрузок по Заказам (перемещения, клиента). На данный момент, отчет выглядит так: дублируются строки с перемещениями отгруженными из заказа, но Итоговое поле верное, т.е. мы видим дублирование строк, которое не ломает итоговое суммирование. Посмотрим на сам отчет, отберемся по одному из Заказов на перемещение:
Из дублированных строк, нужно только "переместить" значения отказов, пустые значения "Заказано" убрать. В поле "Процент отгрузки" ошибка "Деление на 0". Все эти проблемы нужно устранить:
01 Для начала нужно исправить колонку "Отказ": вывести кол-во Итого всех отмененных строк с товарами. В Заказе отмененные строки с товарами выглядят так:
Здесь мы будем вычислять общее кол-во отмененных товаров с любым "действием". Как считать отказы с действием "Отгрузить" мы разбирали ранее в статье .
1/1 Т.к. отчет создавался не мной, то я добавлю свое вычисляемое поле:
Выражение:
ВЫБОР КОГДА Товары.Отменено = ИСТИНА ТОГДА Выразить(Товары.Количество, "Число(15,0)") ИНАЧЕ NULL КОНЕЦ
1/2 Добавляем поле в "Ресурсы":
1/3 Затем в "Выбранные поля" отчета:
02 Следующим пунктом выполнения задачи, исправить "Деление на 0". Кстати, просто отбор делать по этому полю невозможно, получим ошибку "Деление на 0 значения типа Numeric":
Правим:
2/1 Выражения "Процент отгрузки" выглядят так:
2/2 Такая формула в итоге, иногда приводит к делению на 0, поэтому добавим условие:
Выражение:
Выбор Когда Сумма(Заказано) > 0 Тогда Формат(Окр(Отгружено / Заказано * 100, 2), "ЧН=") + " %" Иначе 0 Конец
Теперь вместо деления на 0, поле будет возвращать нулевое значение.
03 Последним этапом, нам необходимо "скрыть" ненужные строки в детализации отчета. Добавить отбор по этому пользовательскому полю "Процент отгрузки" у меня не получилось, ошибка "Фильтрация записей по выражениям, содержащим агрегатные функции, не допустима":
Скорее всего, если бы поле было не пользовательским, а вычисляемым, то все бы сработало. Но это не проблема, возьмем за основу поле "Заказано", которое применили в Выражении пользовательского поля "Процент отгрузки" и оно тоже равняется 0, когда пользовательское поле равно 0.
Добавляем отбор:
Вкладка "Настройки" - <Детальные записи> перейти на вкладку "Отбор" - установить поле "Заказано: Больше 0":
Получается логика такая: выводить строки с перемещениями товаров, в которых поле "Заказано" больше 0.
На этом, все. Отчет работает правильно, строки не дублируются, данные все есть:
Похожие материалы (по тегу)
- Свёртка базы 1С УТ 10.3
- Как вывести Регистратор и Период по регистру бухгалтерии и выбрать тип регистратора в СКД
- СКД вывести последний документ по номенклатуре если не было оборота по регистру в выбранном периоде
- Объединить поле номенклатуры с подсчетом общего количества из документа в отчете СКД
- Одинаковые (задвоенные) строки в отчете СКД