Я много раз слышал про «замечательный стандартный отчёт Scala/iScala» по запасам низкого спроса. И почти всегда очень сильно ругался. Так, например, на последнем тренинге по созданию «внешних» отчётов для iScala клиент попросил меня создать аналогичный «внешний» отчёт, а я отказался. Данный отчёт, как его задумали аналитики и программисты Скалы, это образец оторванности и первых, и вторых от реальной жизни. Живут они в своём вымышленном мире и представляют мир в виде мультиков
Причём, судя по окнам выбора критериев отчёта, он не просто старый, а очень древний, привет из ранне-DOSовских времён, когда ещё не было мыши и нельзя было щёлкнуть на конкретном поле, а нужно было ввести его номер (на картинке 19) и нажать Enter:
Давайте обсудим это поподробнее:
А что такое, собственно запасы низкого спроса?
Мне представляется, что это некие, как их раньше называли «неликвиды», которые когда-то поступили на склад, но лежат там без движения какое-то определённое время. Соответственно, мы хотим от них избавиться и готовы либо списать, либо продать по сниженной цене, либо засунуть куда-то подальше в неудобное место. И, разумеется, мы должны как-то пометить их в системе, чтобы она не предлагала их закупить, а то бывали случаи, когда товар, пролежавший на складе без движения несколько лет, удалось частично продать и система тут же предлагает восполнить дефицит (ну, как же, смотри, товар ушёл, на складе стало мало, нужно закупить)
А как мы можем понять, что товар должен быть отнесён к этой категории?
Если посмотреть на картинку с критериями выбора, там есть интервал дат, когда товары были «не выданы». Ну, логично же: если я задам интервал за последние полгода (с 1 февраля по 31 июля) и за этот период не было ни одного расхода, значит это товар низкого спроса, правильно? Ну, вроде как логично. Или нет?
А если товар был выдан 1 февраля (условие выше не выполняется) и после этого не выдавался, то это уже не товар низкого спроса? Ну, тогда, скажете вы, можно задать меньший интервал, например, с 1 марта по 31 июля, тогда-то он точно сюда попадёт, верно?
А, если товар был выдан 31 июля, а до этого с 1 февраля ни разу не выдавался, то это уже не товар низкого спроса?
А, если товар поступил на склад только 1 июля и после этого не выдавался, то есть не выдавался за период с 1 февраля по 31 июля, то это тоже товар низкого спроса? Да, конечно, в критериях выбора есть интервал дат когда товары были «Не получены», но не кажется ли вам, что это совсем о другом?
Иными словами, здесь абсолютно не годные критерии выбора. Как лично я определил бы, что такое товары низкого спроса (независимо от Scala/iScala, просто исходя из логики)?
Наверное, так: Товары низкого спроса, это такие товары, где за определённый период, например, с 01.02.2023 по 31.07.2023, наибольший промежуток между выдачами (списанием, продажей, выдачей в производство и т.п.) больше, чем какое-то количество дней, например, 60. Причем, если, на 01.02.2023 (начало заданного периода) на складе было сальдо, тогда интервал для первой выдачи считается с этого дня, а если сальдо было нулевое, то интервал для первой выдачи считается с первого поступления на склад. Дата начала и окончания инспектируемого периода и количество дней без движения, разумеется, это параметры, которые задаёт пользователь.
А теперь пример с выше заданными параметрами
Запас 1: на складе на начало периода имелось сальдо, первая выдача произошла через 30 дней, вторая через 45 (от первой), третья через 55 (от второй), после этого до конца периода ничего не выдавалось (интервал до конца периода (с третьей выдачи) меньше, чем заданное количество дней (60 дней)), следовательно, запас не попадает под определение запаса низкого спроса.
Запас 2: на складе на начало периода имелось сальдо, первая выдача произошла через 30 дней, вторая через 65 (от первой), третья через 55 (от второй). Имеется интервал между выдачами который больше заданного параметра в 60 дней, следовательно, запас попадает под определение запаса низкого спроса.
Запас 3: на складе на начало периода нулевое сальдо, первый приход произошёл 01.07.2023, после этого до конца периода ничего не выдавалось (интервал до конца периода (с момента прихода) равен 30 дням, он меньше, чем заданное количество дней (60 дней)), следовательно, запас не попадает под определение запаса низкого спроса.
Вот такой «внешний» отчёт я создать готов.