При помощи механизма характеристик системы компоновки данных можно описывать и категории-характеристики, не имеющие значений, а имеющие лишь признак наличия/отсутствия.
Для примера добавим в план видов характеристик категорию Предоплата и выведем ее в отчете Цены комплектующих от поставщиков.
Откроем схему компоновки данных отчета, выделим набор данных Поставщики и в конструкторе запроса опишем характеристики (рис. 3.31).
Рис. 3.31. Описание характеристик в тексте запроса
В результате будет создан следующий запрос (листинг 3.3).
Листинг 3.3. Получение категорий контрагентов для набора данных «Поставщики»
ВЫБРАТЬ
ПриходнаяНакладная.Ссылка,
ПриходнаяНакладная.Номер,
ПриходнаяНакладная.Дата,
ПриходнаяНакладная.Контрагент
ИЗ
Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
{ХАРАКТЕРИСТИКИ
ТИП(Справочник.Контрагенты)
ВИДЫХАРАКТЕРИСТИК ПланВидовХарактеристик.ВидыХарактеристик
ПОЛЕКЛЮЧА Ссылка
ПОЛЕИМЕНИ Наименование
ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ДополнительныеХарактеристики
ПОЛЕОБЪЕКТА Объект
ПОЛЕВИДА ВидХарактеристики }
Как видно, в описании характеристик не указано поле ПОЛЕТИПАЗНАЧЕНИЯ, а в таком случае считается, что характеристика имеет логический тип. Кроме того, не указано поле ПОЛЕЗНАЧЕНИЯ, из которого будет получаться значение характеристики. В таком случае считается, что значение характеристики – Истина, если характеристика для объекта присутствует в таблице значений характеристик, и Ложь в противном случае.
Запустим «1С:Предприятие». В план видов характеристик Виды характеристик добавим категорию Предоплата (рис. 3.32).
Рис. 3.32. Создание новой характеристики в плане видов характеристик
В регистр сведений Дополнительные характеристики добавим эту характеристику для контрагента ООО «Атлант» (рис. 3.33).
Рис. 3.33. Значения характеристик в регистре сведений
Откроем Основной вариант отчета Цены комплектующих от поставщиков и выполним команду Все действия⇒Изменить вариант… На закладке Поля, в списке реквизитов поля Контрагент появилась категория Предоплата. Перенесем ее в список полей отчета (рис. 3.34).
Рис. 3.34. Окно настроек варианта отчета
На закладке Дополнительные/Другие настройки зададим значение параметра Расположение реквизитов – Отдельно, чтобы категория контрагента выводилась в отдельной колонке, и Тип заголовка полей – Краткий (рис. 3.35).
Рис. 3.35. Настройка параметров вывода
Нажмем Завершить редактирование и выполним отчет. Мы видим, что значение категории Предоплата интерпретируется как Да или Нет в зависимости от ее наличия в регистре сведений Дополнительные характеристики для конкретного контрагента (рис. 3.36).
Рис. 3.36. Результат отчета с использованием категории контрагента
Теперь используем в отборе характеристику Предоплата. На закладке Отбор создадим новый элемент отбора по полю Предоплата со значением Нет (рис. 3.37).
Рис. 3.37. Настройка отбора с использованием категории контрагента
В результате в отчет выводятся только те контрагенты, у которых в регистре сведений Дополнительные характеристики отсутствуют записи с категорией Предоплата (рис. 3.38).
Рис. 3.38. Результат отчета с использованием категории контрагента