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

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

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

2020-04-15 20 56 01

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

 

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

2020-04-15 21 34 59

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

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

2020-04-15 21 52 06

Выражение:

ВЫБОР
 КОГДА Товары.Отменено = ИСТИНА
  ТОГДА Выразить(Товары.Количество, "Число(15,0)")
 ИНАЧЕ NULL
КОНЕЦ

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
  Тогда Формат(Окр(Отгружено / Заказано * 100, 2), "ЧН=") + " %"
 Иначе 0
Конец

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

 

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

2020-04-15 22 43 35

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

Добавляем отбор:

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

2020-04-15 23 59 49

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

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

2020-04-16 00 04 55

mr. Mak

Остались вопросы? Пишите на почту admin@hzit.ru

Администратор сайта hzit.ru
Back to top