Имеем следующее: КА1.1 . Отчет по РН "ПартииТоваровНаСкладах". Требуется сделать отчет, чтобы он показывал движения товаров по конечникам, т.е. исключить внутреннее товародвижение (в частности, документы перемещений).
Да, в курсе, что на ИС есть отчеты с аналогичным названием и требованием, но не уверен в их правильности (не пробовал, не смотрел), да и уже много времени было потрачено на текущий отчет.
Что было проанализировано: Если взять типовой отчет ведомость по партиям товаров на складах и в запросе жестко отсечь документы перемещений, то можно наблюдать картину, что обороты верные, а остатки - нет. Оно и логично. Никакой фильтрации в типовом отчете нет, чтобы грамотно фильтрануть.
Что было сделано: используя консоль СКД был сделан отчет, который с помощью встроенных функций СКД получал значения предыдущих значений ресурсов и формировал по товару начальные и конечные остатки.
Можно подумать, что все хорошо! да, я так и думал по-началу, НО...тестирование проводил для "нужных" условий (понимаю, что делать так нельзя), т.е. для одного товара по нужным складам. Стоило изменить группировки, изменить отбор (в качестве отбора по номенклатуре сделал в группе <нужная группа>), да еще и группировку "Номенклатура" сделал "Иерархия" и тут получил очень интересные цифры.
Мои ресурсы стали считаться не в разрезе одной номенклатуры (группировки), а по всем выводимым строкам (ниже скрины покажу).
Что требуется: подсказать ГУРУ СКД как исправить выражения у вычисляемых полей и в ресурсах, чтобы получился верный результат (отчет прикреплю).
Теперь картинки по порядку
1. Вот так показывает результат стандартный отчет с перемещениями (внешняя ссылка http://screencast.com/t/qGAlKQ72fmV0) 2. Вот так показывает результат стандартный отчет без перемещений (в запросе задали условие на тип значения регистратора). Как видим, остатки поехали. Ожидаемо (внешняя ссылка http://screencast.com/t/2YAZa8zp9) 3. Вот так показывает результат написанный отчет на СКД по одному товару (внешняя ссылка http://screencast.com/t/zypgh7nPJF1j) 4. Вот так показывает результат написанный отчет на СКД, если изменить отбор на группу товаров (внешняя ссылка http://screencast.com/t/tc28vmU1O) 5. При этом, если посмотреть типовой отчет с такими же настройками, то у нас кардинально отличаются начальные остатки и конечные остатки (ТОЛЬКО внешняя ссылка http://screencast.com/t/2Z0j3t1gSEH), потому что при редактировании не дает добавить новые картинки к теме.
Видимо, в выражениях где-то есть ошибки (может какие параметры не так задал). Использовал для получения "своих" остатков функцию "ВычислитьВыражение"
Отчет ниже.
Привожу еще выражение вычисляемого поля начального и конечного остатков:
1.Начальный остаток
Сумма(ВЫБОР КОГДА ВычислитьВыражение("Сумма(КоличествоНачальныйОстаток)",,, "Предыдущая", "Предыдущая") ЕСТЬ NULL ТОГДА ВычислитьВыражение("Сумма(КоличествоНачальныйОстаток)") ИНАЧЕ ВычислитьВыражение("Сумма(КоличествоНачальныйОстаток) - Сумма(КоличествоРасход)",,, "Первая", "Предыдущая") КОНЕЦ)
2. Конечный остаток
Сумма(ВЫБОР КОГДА ВычислитьВыражение("Сумма(КоличествоНачальныйОстаток)",,, "Предыдущая", "Предыдущая") ЕСТЬ NULL ТОГДА ВычислитьВыражение("Сумма(КоличествоНачальныйОстаток)") ИНАЧЕ ВычислитьВыражение("Сумма(КоличествоНачальныйОстаток) - Сумма(КоличествоРасход)",,, "Первая", "Предыдущая") КОНЕЦ + ВычислитьВыражение("Сумма(КоличествоПриход)") - ВычислитьВыражение("Сумма(КоличествоРасход)"))
Будут вопросы - задавайте, отвечу. Может что не понятно расписал.
При этом, если посмотреть типовой отчет с такими же настройками, то у нас кардинально отличаются начальные остатки и конечные остатки http://screencast.com/t/APROubwcssW
если проблема в том, чтобы сформировать начальный и конечный остаток, то можно их получить двумя отдельными вложенными запросами. А обороты и так уже верные
(8) alex-l19041, Т.е. предлагаете делать запрос к виртуальной таблице "Остатки" РН для получения начального и конечного остатков? Не уверен, что будут правильные остатки показываться в разрезе прочих группировок в связи с тем, что при обращении к вирт. таблице "Остатки" мы не сможем обойти исключение по перемещениям...или я не правильно понимаю?
(11) alex-l19041, Ну смотрите, я могу получить отчет списком в одну строку, у меня будет отчет следующего вида с получением остатков так, как вы сказали, получим:
Товар 1 ___ Нач. ост. 7 ___ Приход 0 ___ Расход 6 ___ Кон. ост. 1
Если эту строку расшифровать (углубиться), например, по регистратору, то я считаю, что у меня нач.остаток по каждой строке расшифровки так и останется 7, разве не так?
Или вы предлагаете для моего отчета просто изменить принцип получения остатков и использовать те же функции для получения остатков в разрезе тех же регистраторов?