KISS в отборах СКД
Принцип KISS никто не отменял.
Мне нужно было чтобы пользователь мог отбирать контрагентов по условию:
Причем это условие накладывалось только на контрагентов, не на детальные записи.
Я написал очень сложный отбор для группировки по контрагенту, но он все равно не работал:
Я уже хотел делать логическую декомпозицию, но вспомнил про вычисляемые поля. В итоге отбор стал выглядеть так:
А вычисляемое поле имело следующую формулу:
ВЫБОР КОГДА &НамДолжныПоСправкам ТОГДА ЕСТЬNULL(КонечныйОстатокПоСправкам, 0) > 0 ИНАЧЕ Истина КОНЕЦ И ВЫБОР КОГДА &МыДолжныПоСправкам ТОГДА ЕСТЬNULL(КонечныйОстатокПоСправкам, 0) < 0 ИНАЧЕ Истина КОНЕЦ И ВЫБОР КОГДА &НамДолжныПоСчетам ТОГДА ЕСТЬNULL(КонечныйОстатокПоСчетам, 0) > 0 ИНАЧЕ Истина КОНЕЦ И ВЫБОР КОГДА &МыДолжныПоСчетам ТОГДА ЕСТЬNULL(КонечныйОстатокПоСчетам, 0) < 0 ИНАЧЕ Истина КОНЕЦ И ВЫБОР КОГДА &НамДолжныПоАктам ТОГДА ЕСТЬNULL(КонечныйОстатокПоАктам, 0) > 0 ИНАЧЕ Истина КОНЕЦ И ВЫБОР КОГДА &МыДолжныПоАктам ТОГДА ЕСТЬNULL(КонечныйОстатокПоАктам, 0) < 0 ИНАЧЕ Истина КОНЕЦ
Но этого оказалось мало. Детальные записи все равно не выводились.
Потому что это поле рассчитывается и в детальных записях. Пришлось добавить его в ресурсы:
Только после этого отбор по полю начал действовать только на уровне контрагент.
Свежие комментарии