1с построитель отчета условное оформление программно

Обновлено: 07.07.2024

Использование условного оформления в построителе отчета

Объект ПостроительОтчета предоставляет разработчику и пользователю отчета механизм условного оформления отчета. Данная статья описывает возможности механизма, показывает примеры использования.

Механизм условного оформления

Данный механизм предназначен для обеспечения необходимого оформления областей отчета с заданным условием. Механизм предоставляет следующие возможности:

  • применение оформления к отчету целиком,
  • применение оформления к определенному полю отчета.,
  • применение оформления к группировке отчета,
  • применение оформления к полю в группировке отчета,
  • установка условия, при выполнении которого будет применяться оформление,
  • описание оформления, которое будет применяться к области отчета.

Описание условного оформления

Для применения условного оформления необходимо определить следующие его элементы:

  • область, к которой применяется оформление,
  • условие, при выполнении которого применяется оформление,
  • описание оформления.

Рассмотрим подробнее составляющие условного оформления.

Область, к которой применяется оформление

Описание области, к которой применяется оформление, состоит из списка элементов областей. Каждый элемент области отчета состоит из имени поля отчета, и типа области: поле или группировка. В случае если данный список пуст, оформление применяется ко всей области данных отчета. Если область содержит как поля, так и группировки, то оформление будет применяться только к полям, которые принадлежат указанным группировкам. В случае если описание области содержит только элементы - поля, оформление будет применяться только к указанным полям. В случае если описание области содержит только группировки, оформление применяется ко всей области группировки, за исключением областей вложенных группировок и областей детальных записей. Для оформления области детальных записей, необходимо добавить в описание области группировку с пустым именем.

Условие, при выполнении которого применяется оформление

Для указания условия, при выполнении которого применяется оформление, используется объект Отбор . Данный объект содержит список полей с условиями, которые применяются к полям.

Описание оформления

Описание оформление применятся для того, чтобы указать, как именно оформлять область отчета. Возможно указание следующих оформительских свойств:

  • ЦветТекста - цвет текста оформляемой области отчета,
  • ЦветФона - цвет фона оформляемой области отчета,
  • Шрифт - шрифт оформляемой области отчета,
  • Формат - формат значений, выводимых в область отчета,
  • ГоризонтальноеПоложение - положение текста в ячейках отчета по горизонтали,
  • ВертикальноеПоложение - положение текста в ячейках отчета по вертикали,
  • ОриентацияТекста - угол наклона текста в оформляемой области отчета,
  • Отступ - отступ от начала ячейки в оформляемой области отчета,
  • АвтоОтступ - отступ от начала ячейки, зависящий от уровня, в оформляемой области отчета,
  • ВыделятьОтрицательные - необходимость выделения отрицательных значений, выводимых в отчет,
  • Текст - текст, который будет выводиться в оформляемую область отчета.

Программный доступ к условному оформлению построителя отчета

Программный доступ к условному оформлению осуществляется через свойство построителя отчета УсловноеОформление . Данное свойство содержит описание условного оформления, которое применяется к отчету.

Интерактивное редактирование условного оформления

Для обеспечения редактирования условного оформления, построитель отчета предоставляет реквизит УсловноеОформление , который может быть связан с табличным полем. После связи данного реквизита с табличным полем, пользователю дается возможность самостоятельно добавлять/изменять/удалять элементы условного оформления, настраивать область, к которой применяется оформление, настраивать условие, при выполнении которого будет применяться оформление, описывать само оформление. Все эти операции реализуются автоматически, при помощи специализированных расширений табличных полей и полей ввода, никакого дополнительного программирования от разработчика отчета не требуется.

Примеры использования условного оформления

Пример использования условного оформления можно найти в демонстрационной конфигурации "Примеры ИТС", в отчете "ПродажиНоменклатуры". В данном отчете выводится отчет о продажах номенклатуры контрагентам. В отчете, при помощи условного оформления, зеленым фоном выделяются суммы, если их значения превышали 10000, желтым фоном выделяются строки номенклатуры, если объем продаж по данной номенклатуре превысил 30000, красным текстом в отчете выделяются строки, содержащие услуги.

Пример интерактивной настройки условного оформления можно посмотреть в том же отчете, в форме настройки отчета, на закладке "Оформление". При выполнении отчета данную форму можно вызвать, воспользовавшись кнопкой командной панели отчета "Настройка. ".

На следующем рисунке показан пример того, как может выглядеть отчет и форма настройки условного оформления.

Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем массив добавляемых реквизитов, который будет называться МассивДобавляемыхРеквизитов.
Код 1C v 8.2 УП
Обратите внимание, что элементы массива у нас типа РеквизитФормы. Дальше помимо таблицы значений, нам надо добавить колонки таблицы, например будем добавлять три колонки:
Код 1C v 8.2 УП
Во время добавления колонок в МассивДобавляемыхРеквизитов обязательно надо указать путь к создаваемому реквизиту, в нашем случае это «План», который был добавлен в массив ранее. Обратите внимание, что путь к создаваемому реквизиту не включает в себя сам реквизит. После того, как массив сформирован, можно вызывать изменение реквизитов:
Код 1C v 8.2 УП
После изменения реквизитов у нас уже есть нужный нам реквизит формы «План» типа ТаблицаЗначений с тремя колонками. Если вам надо будет обратиться к значению реквизита, то вы можете это сделать используя ЭтаФорма["План"]. Можно приступать к созданию элементов формы, для отображения данных. Сначала создадим элемент формы типа ТаблицаФормы.
Код 1C v 8.2 УП
Как вы видите из приведенного когда, во время создания элемента мы тут же определяем действия на события. После создания элемента План типа ТаблицаФормы создадим подчиненные ему элементы типа ПолеФормы, которые будут отвечать у нас за вывод данных в колонки таблицы. Для этого в цикле перебора колонок таблицы необходимо выполнить следующий код (на примере одной из итераций цикла):
Код 1C v 8.2 УП
Обратите внимание, что во время добавления элемента мы указываем родителя Элементы.План. Так же путь к данным у нас состоит из наименования реквизита типа ТаблицаЗначений и имени колонки, разделенные точкой. После того, как вы в цикле создадите все элементы для колонок форма будет готова к выводу и вводу данных в таблицу.

Теперь можно перейти ко второй части задачи про подсветку цветом колонки Номенклатура. Например условие у нас будет накладываться на колонку Разница и когда она будет равно 100 строку надо будет подсвечивать колонку Номенклатуры серым цветом.

Разместил: E_Migachev  Версии: | 8.x | 8.2 УП |  Дата: 25.11.2011   Прочитано: 64335

Распечатать

Похожие FAQ

10060 (0x0000274C): Попытка установить соединение была безуспешной  18
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и 17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps  20
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C медленно работает по сети с базой на SQL Server  20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П 1C: Enterprise Development Tools  50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Посмотреть все результаты поиска похожих

Еще в этой же категории

Как обновить динамический список или реквизит на форме клиента?  19
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Динамический список

Как на управляемой форме разместить список регистра сведений с отбором?  18
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом " ДинамическийСписок" В поле " Основная табли Как установить параметр динамического списка?  14
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Поле выбора

Заполнение списка значений в элементе поле выбора на форме  10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Поле выбора

Как ограничить список выбора?  8
Ограничим список элементов, установив отбор в открываемой форме //Пример 1 Процедура СтатьяПДРНачалоВыбора(Элемент, СтандартнаяОбработка) ФормаВыбора = Справочники.ПрочиеДоходыИРасходы.ПолучитьФормуВыбора(, Элемент); ЭлементОтбораВидПДР = Форма Посмотреть все в категории Работа с Формой (Диалог) и её элементами

В конце процедуры УстановитьНачальныеНастройки() добавить:

Разместил: all4cf  Версии: | 8.x |  Дата: 02.07.2015   Прочитано: 14393

Распечатать

Похожие FAQ

Вывод (печать) таблицы значений в табличный документ  7
Пример кода быстрая Печать таблицы значений //ТПОтчета - Табличное поле с формы (Таблица значений) с данными ПострПечать = Новый ПостроительОтчета; ПострПечать.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТПОтчета); ПострПечать.МакетОформлени Вывод отчета СКД в коллекцию значений - Дерево Значений  4
В системе компоновки данных существует возможность выводить отчет не только в табличный документ, но и в коллекции значений (таблица значений, дерево значений). Для вывода отчета в коллекцию предназначен объект ПроцессорВыводаРезультатаКомпоновкиВК Использование Web-сервисов для синхронизации баз данных в режиме online 1с 8.х  11
Часто при ведении учета в различных конфигурациях 1с возникает необходимость выполнения обмена данных. Для решения этой задачи принято использовать Универсальный обмен данными XML или другие внешние обработки, общим у которых является использование Как в отобразить картинку в табличной части  7
В табличной части есть документы заявки от покупателя, нам нужно добавить картинку для отображения статуса документов заявка - проведен , не проведен, помечен на удаление. //Отобразим картинку Процедура СписокПриВыводеСтроки(Элемент, Оформление Как запустить макрос, записанный в книге Microsoft Office Excel?  0
Попытка // Создать объект. Excel = Новый COMОбъект(" Excel.Application" ); Исключение Сообщить(" Не удалось инициализировать Excel" ); Возврат; КонецПопытки; Попытка // В реальном примере путь может быть совершенно другим. Excel.Workbook Посмотреть все результаты поиска похожих

Еще в этой же категории

Конвертация базы 1С из версии Проф в Базовую  62
Можно просто перенести все данные из Проф версии в базовую используя обработку ЗагрузкаВыгрузкаXML. Но мы пойдем другим путем: 1. Версии проф и базовой версии должны быть одинаковыми 2. Сохраняем конфигурацию Базовой версии в файл. 3. В конфигура Программное открытие Универсального отчета с отбором  10
ОтчетКонтрагента = Отчеты.ВедомостьВзаиморасчетыСКонтрагентами.Создать(); ОтчетКонтрагента.УстановитьНачальныеНастройки(); ОтчетКонтрагента.УниверсальныйОтчет.ПостроительОтчета.ИзмеренияСтроки.Очистить(); ОтчетКонтрагента.УниверсальныйОтчет.Постр Универсальный отчет в прикладных решениях фирмы 1С  8
Как настроить Универсальный отчет? Все настройки универсального отчета описываются в процедуре УстановитьНачальныеНастройки : Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт // Настройка общих параметр Как запустить внешнюю обработку из справочника дополнительных внешних отчетов или обработок?  5
Откроем внешнюю обработку из справочника дополнительных внешних отчетов или обработок: ТекСсылка=Справочники.ВнешниеОбработки.НайтиПоНаименованию(" РеестрЦфо" ); ИмяФайла = ПолучитьИмяВременногоФайла(); ДвоичныеДанные = ТекСсылка.ХранилищеВнеш Сравнение и проверка на NULL  3
Для проверки на NULL во встроенном языке 1С достаточно написать: Если ДанныеСтроки.Задача = Null Тогда //. КонецЕсли; В запросах: ЕСТЬNULL(Ном.БазоваяЕдиницаИзмерения," шт." ) Более подробно об этом здесь: Значения NULL ( ЕСТЬ NULL и Посмотреть все в категории Прочие вопросы

В "Файлах публикации" находится обработка, в которой есть весь необходимый код и примеры, рассматриваемые ниже. Обработка универсальная и не зависит от используемой конфигурации. Протестирована на платформе 1С:Предприятие 8.3 (8.3.13.1926).

Пример 1: Знакомство

Как нужно было делать раньше:

Как можно делать теперь:

Да! Этот код не только проходит проверку синтаксиса, но и работает)

Пример 2: Группы отборов

Разрешите мне не приводить типовой код, а сразу показать новый способ с группами отборов:


В конце описания каждой группы отборов добавляется КонецГруппы(). Эта конструкция позволяет избавиться от использования промежуточных переменных. Примеры с вложенными группами отборов смотрите ниже, в Примере 3. Также, в этом примере видно, что код настройки не обязательно должен быть монолитным. ОбъектНастройки сохраняет в себе уже сделанные изменения и, при необходимости, позволяет продолжить настройку.

Пример 3: Сравнение типового (с использованием БСП) и нового способа

Под спойлером - код из типовой конфигурации.

Типовая настройка условного оформления с использованием БСП (код из БП 3.0)

А теперь то же самое новым способом:

Согласитесь, теперь стало гораздо понятнее и по наглядности сопоставимо с формой интерактивной настройки условного оформления.

Вывод

Использование нового способа программной настройки условного оформления позволяет писать лаконичный, структурированный и легкий для восприятия код.

Как это использовать у себя

  • Скачайте обработку
  • Встройте в конфигурацию или расширение с именем "НастройкаУсловногоОформления"
  • При необходимости создания программной настройки условного оформления, пишите:

Смотрите также

Эта и многие другие возможности входят в состав [ЕХТ] Фреймворк для расширений.

Попробуйте, гарантирую - Вам понравится!

[Взрыв шаблона!] Новый способ программной настройки условного оформления

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Идея классная! Код действительно выглядит чище.

Что касается оформления полей формы, не связанных с таблицей, то есть ограничения платформы. По моему раньше, до какого-то релиза в платформе, вообще не было возможности влиять на оформление не табличных полей формы через УО. Теперь похоже можно, но не все настройки действуют, например следующее оформление не сработало:

(1) Да, некоторые параметры оформления платформа просто игнорирует, причем молча.

2. Vladimir Litvinenko 2636 02.12.19 11:22 Сейчас в теме

Бегло просматривая первые примеры показалось, что это описание штатных возможностей новой платформы. Даже обрадовался инженерной мысли разработчиков - не прошло и ста лет )) Потом вчитался. увы нет. Не потому, что использовать нельзя, а потому, что в типовых конфигурациях такого подхода не увидим.

Код действительно смотрится намного аккуратнее. Внутри обработки тоже несколько простых и аккуратно оформленных методов, которые можно использовать и развивать. Спасибо!

Интересное решение.
Решил проверить.
платформе 1С:Предприятие 8.3 (8.3.14.1976)

: Метод объекта не обнаружен (Настроить)
ОбъектНастройки = РеквизитФормыВЗначение("Объект").Настроить(ЭтотОбъект.УсловноеОформление)

Проверку проходит дормально, а вот исполнение хромает.
Подскажите, что делаю не так.

Вот что это напоминает.
Оператор With. End With (Visual Basic)

Выполняет последовательность операторов, которые многократно ссылаются на единственный объект или структуру, чтобы операторы могли использовать упрощенный синтаксис доступ к членам объекта или структуры. При использовании структуры можно только считывать значения членов или вызвать методы. При попытке присвоения значений членам структуры, используемым в операторе With. End With, возникает ошибка.
Синтаксис
VB

With objectExpression
[ statements ]
End With

Когда-то давно "пописывал" на VB)))

(8) В конце публикации есть описание "Как это использовать у себя" Ну это же так "важно" для бизнеса? Настройки оформления, как бизнес жил без этого и жить дальше будет? (это был сарказм). Здесь последовательность вызовов смотрится органично А если немного доработать, то и условие сравнения можно писать сокращенно, н-р:

Просмотры 19765

Загрузки 52

Рейтинг 150

Создание 01.12.19 17:00

Обновление 01.12.19 17:00

№ Публикации 1161402

Конфигурация Конфигурации 1cv8

Операционная система Не имеет значения

Вид учета Не имеет значения

Доступ к файлу Абонемент ($m)

Код открыт Да

См. также

Альтернативный способ добавления элементов и реквизитов на формы Промо

Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.

1 стартмани

09.09.2019 18021 35 bmk74 7

Выделение текущей строки в отчете (сделать сразу во всех отчетах и ничего не сломать)

Как за 10 минут упростить работу с отчётами программистам и пользователям. Добавить ВО ВСЕ ОТЧЁТЫ механизм автоматического выделения текущей строки отчёта (той, на которой установлен курсор). И ПРИ ЭТОМ НИЧЕГО НЕ СЛОМАТЬ.

1 стартмани

17.10.2021 2841 6 Патриот 48

Рабочая область начальной страницы "Часто используемые объекты"

Расширение добавляет на начальную страницу область, в которой собраны наиболее часто используемые пользователем объекты, полученные на основании истории работы пользователя.

1 стартмани

07.09.2021 1092 8 masterkio 1

Игра "Змейка" на управляемых формах (клиент)

Пишем игру с динамическим обновлением игрового поля и управлением с клавиатуры на управляемых формах, отправляем на github.

1 стартмани

07.06.2021 1889 0 alexey_kurdyukov 0

Менеджер открытых форм Промо

Обработка получает информацию об открытых формах и позволяет ими манипулировать.

1 стартмани

13.04.2017 25237 40 SeiOkami 19

Размещение ссылки на внешний отчет или обработку на панели раздела подсистемы

Расширение предназначено для помещения внешних отчетов и обработок на панель раздела (для управляемого приложения).

1 стартмани

01.04.2021 3130 1 schthaxe 0

Формирование макета коллекции изображений

Динамическое создание библиотеки картинок с примером ее использования на обычных и управляемых формах.

2 стартмани

22.03.2021 3810 0 Neti 7

Перетаскивание файлов в поле HTML (JavaScript)

Может возникнуть необходимость добавлять файлы в систему под управлением 1С:Предприятие через достаточно распространенный и удобный механизм - перетаскивание (Drag & Drop). В данной публикации этот механизм реализован через поле HTML, с небольшим усовершенствованием на Java Script.

1 стартмани

04.03.2021 2823 4 Andreyyy 18

Расширенная настройка динамического списка УФ Промо

Открывая управляемую форму выбора и не увидев там видимых в форме списка элементов, часто хочется узнать причину их отсутствия там, т. е. какой наложен отбор. Но стандартная настройка списка управляемой формы показывает только пользовательские настройки, скрывая от пользователя фиксированный отбор. Предлагаю вам расширение конфигурации с расширенной настройкой динамического списка, отображающей пользователю кроме пользовательских настроек еще фиксированные.

1 стартмани

31.05.2017 39330 161 tormozit 25

Модель запроса

Работа с текстом запроса напрямую не позволяет просто обратиться к определенному полю, таблице или условию. Однако, работая со схемой, можно добавить к существующему условию новое или вообще включить его в состав другой группы. Как ни странно, в типовых решениях часто можно встретить код работы с текстом запроса наряду с использование схемы. Возможно появление удобной библиотеки или нового объектного подхода позволит отказаться от работы с текстом совсем, а код построения запроса будет аутентичен исходному запросу, но без избыточности и доступный для простой модификации.

1 стартмани

01.03.2021 2996 kalyaka 25

Самые красивые шахматы для 1С на управляемых формах

Здравствуйте, представляем Вашему вниманию классическую игру – Шахматы! Написана игра средствами 1С, на управляемых формах. Программный код представляет собой с аккуратностью составленную систему, содержащую лаконичные логические приемы и описательные имена переменных, объектов и функций. Программа полностью отлажена и многократно протестирована. Оригинальный авторский дизайн фигур, иконок и кнопок приятен глазу. Игра содержит большое количество функций, настроек и режимов игры, включая сетевую игру, тренировку с ботом или игру на двоих. Не упустите возможность найти ряд технических решений, применимых для реализации различных задач, а также поиграть в вечную игру с отличным оформлением! Желающие научиться программировать на управляемых формах могут многое почерпнуть в этой конфигурации.

Читайте также: