KISS в отборах СКД
Принцип KISS никто не отменял.
Мне нужно было чтобы пользователь мог отбирать контрагентов по условию:
![](https://geniy1s.ru/wp-content/uploads/2024/05/image-97.png)
Причем это условие накладывалось только на контрагентов, не на детальные записи.
Я написал очень сложный отбор для группировки по контрагенту, но он все равно не работал:
![](https://geniy1s.ru/wp-content/uploads/2024/05/image-96.png)
Я уже хотел делать логическую декомпозицию, но вспомнил про вычисляемые поля. В итоге отбор стал выглядеть так:
![](https://geniy1s.ru/wp-content/uploads/2024/05/image-99.png)
А вычисляемое поле имело следующую формулу:
![](https://geniy1s.ru/wp-content/uploads/2024/05/image-98-1024x188.png)
ВЫБОР КОГДА &НамДолжныПоСправкам ТОГДА ЕСТЬNULL(КонечныйОстатокПоСправкам, 0) > 0 ИНАЧЕ Истина КОНЕЦ И ВЫБОР КОГДА &МыДолжныПоСправкам ТОГДА ЕСТЬNULL(КонечныйОстатокПоСправкам, 0) < 0 ИНАЧЕ Истина КОНЕЦ И ВЫБОР КОГДА &НамДолжныПоСчетам ТОГДА ЕСТЬNULL(КонечныйОстатокПоСчетам, 0) > 0 ИНАЧЕ Истина КОНЕЦ И ВЫБОР КОГДА &МыДолжныПоСчетам ТОГДА ЕСТЬNULL(КонечныйОстатокПоСчетам, 0) < 0 ИНАЧЕ Истина КОНЕЦ И ВЫБОР КОГДА &НамДолжныПоАктам ТОГДА ЕСТЬNULL(КонечныйОстатокПоАктам, 0) > 0 ИНАЧЕ Истина КОНЕЦ И ВЫБОР КОГДА &МыДолжныПоАктам ТОГДА ЕСТЬNULL(КонечныйОстатокПоАктам, 0) < 0 ИНАЧЕ Истина КОНЕЦ
Но этого оказалось мало. Детальные записи все равно не выводились.
Потому что это поле рассчитывается и в детальных записях. Пришлось добавить его в ресурсы:
![](https://geniy1s.ru/wp-content/uploads/2024/05/image-100.png)
Только после этого отбор по полю начал действовать только на уровне контрагент.
![](https://geniy1s.ru/wp-content/uploads/2024/05/image-101-1024x580.png)
Свежие комментарии