Содержание:
1. С чего всё началось или как пользователь «поломал» отчёт в системе 1С: ERP2. Корректное использование Отборов
Решение написать эту статью у меня возникло после того, как сам столкнулся с определённой проблемой и не смог оперативно найти информацию в интернете. Надеюсь, что кому-нибудь эта информация окажется полезна, так как проблема достаточно типичная.
Постараюсь объяснить всё простыми словами.
1. С чего всё началось или как пользователь «поломал» отчёт в системе 1С: ERP
Расскажу о том, с чего всё началось. Была задача на сравнение данных из двух регистров продаж в БД клиента по нескольким полям. Конфигурация доработанная и один из регистров был добавлен ранее для определённых бизнес-процессов клиента. В какой-то момент был выявлен факт расхождения в данных и потребовался отчёт для возможности автоматизированного поиска различий. По большому счёту это было сравнение двух таблиц. Отчёт был сделан и выводил требуемый для клиента результат.
Расхождения по регистрам Продаж
Но, далее пользователь решил облегчить себе работу и отфильтровать данные в итоговой таблице по нужному ему признаку. В данном примере по полю «RS» в колонке количество. Так как пользователь, продвинутый он открыл настройки отчета и добавил нужный ему фильтр в отборы и…… получил совершенно не тот результат, на который рассчитывал!
Настройки отчета
Вместо двух строк (в данном случае), которые рассчитывал получить пользователь, мы видим, что итоговая таблица разрослась до огромной длинны! Это видно по бегунку прокрутки справа.
Ну, а далее последовали вопросы в стиле: «Что с отчётом? Почему он выводит некорректные данные?» и прочее.
2. Корректное использование Отборов
Поиски в интернете и книжках не помогли мне оперативно решить данную проблему, готового ответа на свои вопросы я не нашёл. Не претендую на то, что приведённое ниже решение единственно верное. Более того нашёл и другие, но на мой взгляд оно самое простое в данной ситуации, им и поделюсь.
В статье на ИТС «мелким шрифтом» мне попалось: «При использовании отбора на поля - ресурсы следует учитывать, что в случае если отбор на поле - ресурс был добавлен в главный отбор отчета 1С, то этот отбор, будет помещен в текст запроса, т.е. фильтроваться будут именно детальные записи, которые получаются из запроса, а не итоги ресурса для группировок.»
Экспериментируем и делаем вывод, что всё то, что мы или пользователь добавляем в Отбор СКД далее при формировании отчета «под капотом» встраивает в наш запрос на собственное усмотрение. Не важно происходит это в режиме конфигуратора или предприятия.
Для того чтобы наложить фильтр на итоговую таблицу с данными нам надо работать именно с Детальными записями. Если отборы сделаны именно на уровне детальных записей, то они работают корректно. Но есть один нюанс, пользователь может это сделать только через функции технического специалиста. Это очень неудобно и мало кто знает, как это делать. Поэтому для возможности комфортной работы пользователя нам надо заранее добавить все фильтры в отбор детальных записей.
Детальные записи
В режиме предприятия 1С они будут видны пользователю в верхней части отчёта.
Режим предприятия 1С
Управление ими через кнопку с иконкой фильтра. Теперь пользователь может выбирать нужный ему отбор и при необходимости менять условие.
Выбирать нужный отбор и менять условие
Теперь мы проставляем нужный нам ранее фильтр по полю RS количество и видим корректную работу фильтра.
Фильтр по полю RS количество
На мой взгляд это самое простое решение данной проблемы. Есть и другие способы, но о них уже не сегодня.
Специалист компании ООО "Кодерлайн"
Виктор Кальник