*СКД дополнительные реквизиты где генерируются в БСП (конфа КА 2.4)*
Здравствуйте!
В конфигурации КА 2.4 сделаны дополнительные реквизиты для документов и справочников. Эти реквизиты автоматически протягиваются во все стандартные отчеты. Хотелось-бы посмотреть как платформа генерирует запросы для этих реквизитов и можно ли вмешаться в этот процесс.
Конкретно по задаче: есть документ "Реализация товаров и услуг", в котором добавлен доп.реквизит "Напечатано", при формировании отчета на СКД (например, "Валовая прибыль") - для поля "Заказ клиента/реализация" - добавляется реквизит "Напечатано (Реализации товаров и услуг)".
Для части документов - данный доп.реквизит не записан, в результате чего в отчете выводится пустое значение вместо "нет". Это можно обойти, используя условное форматирование. Но, когда требуется сформировать отчет по ненапечатанным документам - отбор не работает (см. скриншоты). Предположительно, при построении запроса и, соответственно, отбора по полю - не используется проверка NULL.
Просматриваю запросы, формируемые при компоновке результата (МакетКомпоновки.НаборыДанных.ВыручкаИСебестоимостьПродаж.Запрос) - вижу, что при добавлении доп.реквизитов - к основной таблице отчета левым соединением пристыковывается таблица "РеализацияТоваровИУслугДополнительныеРеквизиты" (при добавлении второго доп. реквизита - пристыковывается ещё одна таблица "РеализацияТоваровИУслугДополнительныеРеквизиты1"), см. скриншоты. Видно, что никакого ЕстьNULL не предусмотрено - соответственно, отбор по таким реквизитам работать не будет. Хотелось бы изменить данное поведение для всех отчетов, чтобы отбор начал работать везде.
Подскажите, добавление "РеализацияТоваровИУслугДополнительныеРеквизиты" - это делает встроенный механизм СКД?
Или это делается в общих модулях БСП?
Куда копать дальше?
(4) В форме настроек отчета - да, можно выбрать только "Равно/Не равно". Но вы можете изменить сам вариант отчета: "Еще / Прочее / Изменить вариант отчета..." Здесь уже доступны "Равно/Не равно/Заполнено/Не заполнено".
(4) можно добавить свой вариант отбора через группу ИЛИ и заполнить представление у нее что-то типа "Отбор ненапечатанных". тогда на форме будет доступен флажок, который будет включать или выключать отбор с этой группой
- Если флажок выключить, то строка т.ч. удаляется. В принципе, это неплохо, база не пухнет.
- Да, для этого это и сделано. Для дополнительных реквизитов типа Булево ситуация получается более сложной, т.к. получается, что в базе может храниться только одно его состояние - Истина. У нас записана идея на то, чтобы решить эту проблему. Пока можно обойти проблему только проверкой на "(Не) Заполнено".
доп реквизиты могут быть подключены через механизм языка расширений запросов как характеристики. в этом случае вмешаться можно только там где вы смотрели текст запроса.
(4) В форме настроек отчета - да, можно выбрать только "Равно/Не равно". Но вы можете изменить сам вариант отчета: "Еще / Прочее / Изменить вариант отчета..." Здесь уже доступны "Равно/Не равно/Заполнено/Не заполнено".
(6) Касательно БСП могу сказать, что есть особенность использования доп. реквизитов булево типа. В отличие от прочих реквизитов, для которых всегда добавляется строка табличной части "ДополнительныеРеквизиты", строка для реквизита булево типа добавляется только в случае, когда значение равно "Истина". В противном случае строка в ТЧ отсутствует. Поэтому в отчетах всегда либо "Истина", либо "NULL", если конечно запись значений доп. реквизитов всегда осуществляется посредством формы объекта.
- Если флажок выключить, то строка т.ч. удаляется. В принципе, это неплохо, база не пухнет.
- Да, для этого это и сделано. Для дополнительных реквизитов типа Булево ситуация получается более сложной, т.к. получается, что в базе может храниться только одно его состояние - Истина. У нас записана идея на то, чтобы решить эту проблему. Пока можно обойти проблему только проверкой на "(Не) Заполнено".
(4) можно добавить свой вариант отбора через группу ИЛИ и заполнить представление у нее что-то типа "Отбор ненапечатанных". тогда на форме будет доступен флажок, который будет включать или выключать отбор с этой группой