1c управляемые формы оформление шапки отчетов
Использование макетов оформления
Макеты оформления компоновки данных предназначены для оформления отчетов. При помощи макетов оформления можно указывать различным областям отчета определенные цвета фона, текста, шрифты и т.д.
Типы областей макета оформления
Выводимый отчет можно разделить на области, указанные на рис. 1
На указанном рисунке:
- заголовок - область отчета, содержащая заголовок отчета,
- информация - область отчета, содержащая текст установленных в отчете отборов, а также параметры данных,
- э лементы отчета представляют собой группировки, таблицы, диаграммы или вложенные отчеты.
Группировку отчета можно представить в виде областей, указанных на рис. 2
На указанном рисунке:
- заголовок - область группировки, содержащая заголовок группировки верхнего уровня,
- информация - область группировки, содержащая текст установленных для группировки верхнего уровня отборов,
- заголовок таблицы - область группировки, содержащая имена выводимых полей,
- заголовки группировки - области, содержащие значения выводимых полей группировки. Данные области выводятся в начале группировки,
- подвалы группировки - области, содержащие значения выводимых полей. Данные области выводятся в конце группировки,
- детальные записи - область, содержащая значения выводимых полей детальных записей,
- общие итоги по вертикали - область, содержащая итоги по группировке.
Следует заметить, что в качестве заголовков или подвалов группировки могут использоваться заголовки и подвалы иерархической группировки. Также перед заголовками группировок могут находиться области заголовка и информации , отображающие заголовок вложенной группировки и отбор соответственно.
Группировку отчета, отображаемую в виде списка, можно представить в виде областей, указанных на рис. 3
На указанном рисунке:
заголовки группировки списка - области, содержащие значения выводимых полей группировки. Данные области выводятся в начале группировки,
подвалы группировки списка - области, содержащие значения выводимых полей. Данные области выводятся в конце группировки,
Следует заметить, что в качестве заголовков или подвалов группировки могут использоваться заголовки и подвалы иерархической группировки.
Таблицу можно представить в виде областей, указанных на рис. 4
На указанном рисунке:
заголовки и подвалы группировки колонки - области таблицы, содержащие выводимые в колонках таблицы поля. Стоит отметить, что в качестве заголовков и подвалов группировок колонок могут использоваться заголовки и подвалы иерархических группировок колонок,
заголовки и подвалы группировки - области таблицы, содержащие выводимые в строках таблицы поля. В качестве заголовков и подвалов группировок также могут использоваться заголовки и подвалы иерархических группировок строк. Также перед заголовками группировок строк могут находиться области заголовка и информации , отображающие заголовок вложенной группировки строк и отбор соответственно,
ресурсы заголовка группировки , ресурсы подвала группировки и ресурсы детальных записей - области таблицы, содержащие выводимые поля ресурсов. Для иерархических группировок используются, соответственно ресурсы заголовка иерархической группировки и ресурсы подвала иерархической группировки,
Таким образом, в макете оформления существуют следующие типы областей :
- ЗаголовокГруппировки (GroupHeader) - область заголовка группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ПодвалГруппировки (GroupFooter) - область подвала группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ЗаголовокИерархическойГруппировки (HierarchicalGroupHeader) - область заголовка иерархической группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ПодвалИерархическойГруппировки (HierarchicalGroupFooter) - область подвала иерархической группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ЗаголовокГруппировкиСписка (ListGroupHeader) - область заголовка группировки списка . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ПодвалГруппировкиСписка (ListGroupFooter) - область подвала группировки списка . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ЗаголовокИерархическойГруппировкиСписка (ListHierarchicalGroupHeader) - область заголовка иерархической группировки списка . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ПодвалИерархическойГруппировкиСписка (ListHierarchicalGroupFooter) - область подвала иерархической группировки списка . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ЗаголовокГруппировкиКолонки (ColumnGroupHeader) - область заголовка колонки таблицы . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ПодвалГруппировкиКолонки (ColumnGroupFooter) - область подвала колонки таблицы . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ЗаголовокИерархическойГруппировкиКолонки (ColumnHierarchicalGroupHeader) - область заголовка иерархической колонки таблицы . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ПодвалИерархическойГруппировкиКолонки (ColumnHierarchicalGroupFooter) - область подвала иерархической колонки таблицы . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ДетальныеЗаписи (Detail) - область детальных записей. Для данной области значение уровня должно быть всегда равным 0;
- ДетальныеЗаписиСписка (ListDetail) - область детальных записей списка. Для данной области значение уровня должно быть всегда равным 0.
- РесурсыЗаголовкаГруппировки (ResourcesGroupHeader) - область ресурсов заголовка группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- РесурсыПодвалаГруппировки (ResourcesGroupFooter) - область ресурсов подвала группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- РесурсыЗаголовкаИерархическойГруппировки (ResourcesHierarchicalGroupHeader) - область ресурсов заголовка иерархической группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- РесурсыПодвалаИерархическойГруппировки (ResourcesHierarchicalGroupFooter) - область ресурсов подвала иерархической группировки . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- РесурсыДетальныхЗаписей (ResourcesDetail) - область ресурсов детальных записей. Для данной области значение уровня должно быть всегда равным 0;
- ИтогПоРесурсамЗаголовкаГруппировки (ResourcesTotalGroupHeader) - область итогов по ресурсам заголовка группировки;
- ИтогПоРесурсамПодвалаГруппировки (ResourcesTotalGroupFooter) - область итогов по ресурсам подвала группировки;
- ИтогПоРесурсамЗаголовкаИерархическойГруппировки (ResourcesTotalHierarchicalGroupHeader) - область итогов по ресурсам заголовка иерархической группировки;
- ИтогПоРесурсамПодвалаИерархическойГруппировки (ResourcesTotalHierarchicalGroupFooter) - область итогов по ресурсам заголовка колонки таблицы;
- ИтогПоРесурсамДетальныхЗаписей (ResourcesTotalDetail) - область итога по ресурсам детальных записей. Для данной области значение уровня должно быть всегда равным 0;
- ОбщиеИтогиПоВертикали (VerticalOverall) - область общего итога по вертикали . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ОбщиеИтогиПоВертикалиСписка (ListVerticalOverall) - область общего итога по вертикали списка . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- ЗаголовокТаблицы (TableHeader) - область заголовка таблицы или группировки. Для данной области значение уровня должно быть всегда равным 0;
- ПоУмолчанию (Default) - область по умолчании. Для данной области значение уровня должно быть всегда равным 0;
- Заголовок (Title) - область заголовка отчета . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию ;
- Информация (Information) - область информации . Для данной области можно указать значение уровня группировки, при этом значение уровня, равное 0, подразумевает область по умолчанию .
Существуют следующие особенности вывода заголовков и подвалов группировок :
- Если не задана область подвала неиерархической группировки, то в качестве области подвала выводится область заголовка группировки ;
- Если для иерархической группировки не задана область заголовка, то в качестве области заголовка выводится область заголовка неиерархической группировки ;
- Если не задана область подвала иерархической группировки, то в качестве области подвала выводится область заголовка иерархической группировки. Если же она не задана, то выводится область подвала неиерархической группировки . Если и эта область не задана, то выводится область заголовка неиерархической группировки.
Использование макетов оформления в отчетах
Система компоновки данных позволяет использовать различные макеты оформления в отчете. Причем существует возможность использования нескольких макетов оформления для различных элементов отчета. Для управления макетами оформления используются настройки компоновки данных. При использовании конструктора схемы компоновки данных необходимо перейти на закладку " Настройки " , а затем выбрать закладку " Другие настройки " . На данной закладке находится параметр Макет оформления , позволяющий указывать используемый макет оформления в отчете.
Существуют следующие предопределенные макеты оформления :
- Без оформления ;
- Основной - макет оформления по умолчанию ;
- Яркий ;
- Море ;
- Арктика ;
- Зеленый ;
- Античный.
Создание собственного макета оформления
Собственный макет оформления можно создать, используя конструктор макетов. Для этого необходимо добавить новый макет в папку Общие макеты , находящейся в папке Общие дерева объектов конфигурации. В открывшемся конструкторе макетов необходимо установить тип макета Макет оформления компоновки данных .
Открывшийся редактор макетов оформления позволяет редактировать цвета фона, текста и границы, шрифты, отступы и т.д. областей макета оформления. При этом имена областей, содержащих оформления областей, выделяются жирным шрифтом. Стоит отметить, что существует возможность использования предопределенного макета оформления - для этого необходимо использовать команду Стандартный макет. . Также существует возможность загрузки и сохранения макетов оформления в XML - формате.
Использование макетов оформления из встроенного языка
Для обращения к макетам оформления из встроенного языка предназначено свойство глобального контекста БиблиотекаМакетовОформленияКомпоновкиДанных . Данное свойство является коллекцией макетов оформления и содержит предопределенные макеты оформления, а также макеты оформления, определенные в общих макетах дерева конфигурации.
Данная коллекция имеет следующие методы :
- Индекс( ) - получает индекс элемента в библиотеке макетов оформления компоновки данных ;
- Количество() - возвращает количество элементов в библиотеке макетов оформления компоновки данных ;
- Найти( ) - осуществляет поиск элемента библиотеки макетов оформления компоновки данных по имени ;
- Получить( ) - получает элемент библиотеки макетов оформления компоновки данных по индексу.
Элементами библиотеки макетов оформления компоновки данных являются объекты типа ЭлементБиблиотекиМакетовОформленияКомпоновкиДанных . Данный объект имеет следующие свойства :
- Имя - имя макета оформления ;
- Представление - представление макета оформления.
Также данный объект имеет метод ПолучитьМакет() , который возвращает объект типа МакетОформленияКомпоновкиДанных .
Для редактирования макетов оформления предназначен объект встроенного языка КонструкторМакетаОформленияКомпоновкиДанных . Данный объект можно создать при помощи конструктора, который имеет необязательный параметр - макет оформления. Если макет оформления не указан, то создается новый макет, иначе открывается для редактирования указанный макет оформления. Конструктор макетов оформления имеет следующие методы:
- ПолучитьМакет() - данный метод предназначен для получения редактируемого макета оформления и возвращает значение типа МакетОформленияКомпоновкиДанных ;
- Редактировать( ) - данный метод открывает окно конструктора макета оформления. Параметр является необязательным и может содержать значение типа Форма - форму-владельца окна конструктора макетов оформления. При завершении редактирования и нажатии кнопки ОК, конструктор макета оформления вызывает у формы-владельца обработчик события "Обработка выбора". В обработчике данного события можно получить редактируемый макет оформления ;
- УстановитьМакет( ) - данный метод предназначен для установки макета оформления для редактирования и имеет один параметр - типа МакетОформленияКомпоновкиДанных .
Поясним использование конструктора макета оформления на следующем примере. Пусть необходимо добавить возможность создания собственного макета оформления в отчете о продажах. Для этого необходимо создать собственную форму отчета, добавить в командную панель данной формы кнопку создания макета оформления, а также переопределить действие по кнопке Сформировать .
В обработчике нажатия на кнопку " Создать макет оформления " происходит создание конструктора макета оформления :
Пример формы конструктора показан на указанном ниже рисунке.
В обработчике события ОбработкаВыбора формы происходить запоминание созданного в конструкторе макета оформления.
В обработчике нажатия на кнопку " Сформировать " происходит формирование отчета :
Для условного оформления в списках и формах
в обычном приложении использовалось событие ПриПолученииДанных() или ПриВыводеСтроки(),
где через "ячейку" в зависимости от данных строки устанавливали нужное свойство.
С приходом нового режима работы платформы возможности условного оформления расширились.
В данной статье разберем основные аспекты.
1. Условное оформление в упр. формах настраивается как в режиме конфигуратора, так и в режиме пользовательском.
- в конфигураторе условное оформление существует на уровне самой формы (как в формах объекта, так и списка):
В формах списка условное оформление существует и на уровне самого динамического списка:
Добавлять элементы условного оформления можно не прибегая к программированию, но конечно есть возможность и программного добавления элементов, который мы рассмотрим чуть ниже.
- в пользовательском режиме настройки оформления доступны для динамических списков, все настройки оформления в форме документа необходимо выполнять в режиме конфигуратора. Для настройки переходим во все действия списка и выбираем настроить список:
2. Программная работа с условным оформлением (УО).
Начнем с того, что работа с УО доступна только:
Для Добавления элемента УО в списке нужно обратится к списку и добавить элемент УО:
ЭлементОформления = Список . УсловноеОформление . Элементы . Добавить ();
Для УО формы добавление происходит через прикладной объект УсловноеОформление:
ЭлементУсловногоОформления = УсловноеОформление . Элементы . Добавить ();
Далее алгоритмы будут похожими. Для УО нам нужно задать условие отбора, задать значение свойства УО и добавить оформляемые поля.
// Создаем условие отбора
ЭлементОтбора = ЭлементОформления . Отбор . Элементы . Добавить ( Тип ( "ЭлементОтбораКомпоновкиДанных" ));
ЭлементОтбора . ЛевоеЗначение = Новый ПолеКомпоновкиДанных ( ИмяПоля ); // имя поля
ЭлементОтбора . ВидСравнения = ВидСравненияКомпоновкиДанных . Равно ; // либо задаем свой
//**** Значение для отбора
ЭлементОтбора . ПравоеЗначение = ЗначениеДляОтбора ;
// следует заметить что правым значением может выступать ПолеКомпоновкиДанных формы или списка
ЭлементОтбора . ПравоеЗначение = Новый ПолеКомпоновкиДанных ( ИмяПоля );
//****
ЭлементОтбора . Использование = Истина;
Значение свойства УО:
// Установка значения элемента УО
// Возможно обращение как по индексу так и установка через метод
//1.
Элемент = ЭлементОформления . Оформление . Элементы [ 0 ];
Элемент . Значение = Цвет ;
//2.
ЭлементОформления . Оформление . УстановитьЗначениеПараметра ( "ЦветФона" , WebЦвета . СеребристоСерый );
Элемент . Использование = Истина;
Добавим поля оформления, если ничего не добавлять, то система применит оформления ко всей строке:
// Создаем поля оформления
ПолеОформления = ЭлементОформления . Поля . Элементы . Добавить ();
ПолеОформления . Поле = Новый ПолеКомпоновкиДанных ( ПолеДляОформления );
ПолеОформления . Использование = Истина;
В качестве ИменПолей нужно передавать строковое представление ИМЕНИ реквизита.
3. Все настройки УО хранятся для каждого пользователя отдельно.
4. Пример.
Очень часто сталкивался с проблемой настройки свойства АвтоОтметкаНезаполненного в ТЧ по условию . В обычных формах все решалось в процедурах упомянутых выше, а здесь таких событий нет. А решается это все конечно при помощи УО. Заходим в форме объекта в Условное оформление и видим свойство - Отметка незаполненного. Ну а дальше настроииваем как надо.
Выводы:
- Простое условное оформление пользователь может настроить и сам, если его научить :). Это будет сложно конечно, но возможно.
- УО в табличной части можно задать в конфигураторе через УО формы.
- Программная работа с УО требуется в случае сложного условия отбора, в таких случаях лучше создавать процедуру в общем модуле использования в различных документах и списках.
Откроем СКД выбранного отчета (в примере использую отчет из своей конфигурации для тестирования). Перейдём на вкладку «Настройки», создадим отчету на верхнем уровне новую группировку. Переместите её выше всех группировок . Результат .
Выделяем ранее созданную группировку . Активируем настройки «» и переходим на вкладку «Другие настройки» . В первом пункте «Макет оформления» выбираем значение «Без оформления» . Внизу списка ищем пункт «Вариант использования группировки» и выбираем значение «Дополнительная информация» . Результат .
Нами настроенной группировке задаем имя. Вызываем контекстное меню по созданной группировке и кликаем на пункт «Установить имя…» . В открывшемся окне вводим для примера «Заголовок» . Результат .
Переходим в окне СКД на вкладку «Макеты». Выбираем понравившеюся нам область и пишем в ячейку для примера «Это мой заголовок, отчет сформирован – [ТекущаяДата]» (в квадратных скобках слитно, задается параметр в шаблоне) . Вызываем свойства данной ячейки и задаем настройки. Заполнение – «Шаблон» . Шрифт - для примера «Arial, 14 с жирным начертанием» . Результат .
Добавляем новый макет группировки , при добавление выбираем вариант «Имя группировки» и нашу группировку «Заголовок» . Определяем область макета . Система автоматически сама определяет параметры в шаблоне, настраиваем параметр указав выражение – «ТекущаяДата()» .
Сохраняем, применяет, и смотрим в отчете.
До платформы 8.3.14 в СКД можно было только программно вывести картинку в макет. Теперь это возможно без кода! Достаточно ячейке определить картинку и она успешно выводится. Инструкция и результат ниже.
- В конфигураторе 1с создаем новый внешний отчет через пункт меню Файл-Новый-Внешний отчет
- Назначаем отчету имя и переходим к созданию макета. В нижней части формы выбираем Макеты-Добавить-Тип макета-Табличный Документ.
- Исходными данными для тестового отчета будет справочник “Банки”. В макете создаем шапку отчета с названиями колонок (Город, Банк, КорСчет).Заполнение ячеек шапки оставляем по умолчанию Текст. Выделяем строки шапки и назначаем Имя области через меню Таблица-Имена-Назначить имя. В дальнейшем в коде через имя области будем выводить шапку отчета и сами данные.
- Добавляем строки, соответствующие получаемым данным из справочника Банки. Назовем их пГород, пБанк и пКорсчет. Для каждой ячейки Заполнение указываем “Параметр”. Выделяем ячейки параметры и назначаем имя области “Строки”
- Назначаем шрифты, ширину и высоту ячеек, выбираем окантовку ячеек итп. Для форматирования макета отчета служит специальная панель “Форматирование”
- Создаем Форму отчета. В группе формы, напротив Формы отчета нажимаем на значек лупы. При создании формы галку “Использовать систему компоновки данных” не ставим.
- После создания формы отчета добавляем команду формы “Сформировать” (Правый верхний угол вкладка “Команды формы”). Назначаем ей действие на клиенте. Добавляем на форму Кнопку через правую кнопку мыши. Привязываем к кнопке Имя Команды – “Сформировать”, которую только что сделали.
- Пишем обработчик события Команды Сформировать, из которой вызывается функция на сервере для получения данных отчета. Реквизит формы “Отчет” появляется автоматически после создания формы отчета. Отчет создан для примера, поэтому никаких отборов и сортировок в запросе нет и данные выводятся из справочника как есть.
Сохраняем отчет, открываем его в режиме 1с Предприятия 8.3 и нажимаем кнопку “Сформировать”.
Простой внешний отчет со Схемой Компоновки Данных (СКД)
- В конфигураторе 1с создаем новый внешний отчет через пункт меню Файл-Новый-Внешний отчет
- Создаем основную схему компоновки данных (СКД). Для этого нажимаем кнопку “Открыть схему компоновки данных”
- Слева добавляем Набор данных -запрос
- Открываем конструктор отчета. Создаем простейший запрос из объекта справочник. Из левой части (база данных) переносим Справочник “Банки” в поле Таблицы. Раскрываем справочник и переносим интересующие данные в правую часть Поля. Сохраняем запрос.
- Переходим на вкладку “Настройки”. Щелкаем правой кнопкой мыши на Отчете и выбираем “Свойства элемента пользовательских настроек”.
- Выбираем элементы которые будут доступны пользователю 1с для настройки параметров отчета(выбираемые поля, отбор, сортировка, условное оформление и группировки).
- Создаем Форму отчета и форму настроек отчета. При создании формы отчета обязательно ставим галку “Использовать систему компоновки данных”.
- Формы созданы, для простого отчета на СКД никакого написания кода не требуется.Сохраняем отчет.
- Открываем внешний отчет на СКД в режиме 1с Предприятия 8.3. Открываем настройки и выбираем нужные поля.
- Добавляем группировку по “Городу”. В настройках отчета переходим во вкладку “Группировка” и добавляем поле “Город”.
- Сохраняем настройки и нажимаем кнопку Сформировать.
Получаем отчет по справочнику на СКД с группировкой в соответствии со сделанными настройками.
Как прикрепить внешний отчет в программу 1с через дополнительные отчеты обработки.
Чтобы использовать полученные внешние отчеты можно открывать их с диска, либо подключить их к программе через дополнительные отчеты и обработки в нужную подсистему.
Форма подключения чаще всего находится в разделе Администрирование-Печатные формы и обработки -Дополнительные отчеты и обработки.
Условное оформление формы в 1с 8 служит для управления видимостью, доступностью, цветом элементов таблиц управляемой формы (а также оно используется в СКД и динамических списках). Удобство его использования заключается в том, что вы один раз задаете условие по которому должно меняться оформление вашей формы. После этого при работе пользователя с формой, при срабатывании условия оформление будет меняться автоматически. Не нужно использовать события формы и писать лишний код.
Следует заменить, что условное оформление форм работает только в конфигурациях использующих управляемое приложение (Бухгалтерия 3.0, ЗУП 3.0/3.1, Управление торговлей 11 и т.п.)
Условное оформление 1с. Интерактивная настройка
Еще один плюс условного оформления — его можно настроить не написав ни строчки кода. Для этого в форме необходимо:
- Открыть свойства формы -> вкладка оформление -> УсловноеОформление Открыть;
- Откроется таблица Настройка условного оформления;
- В первом столбце необходимо выбрать оформление (или сразу несколько);
- Во втором столбце задать условие, по которому будет срабатывать выбранное оформление;
- С третьем столбце необходимо выбрать элементы формы на которые будет действовать выбранное оформление.
Обратите внимание, что условное оформление действует только на колонки таблиц формы. Другие элементы формы вы тоже можете выбрать в колонке Оформляемые поля, но это не даст никакого результата.
Условное оформление формы. Пример интерактивной настройки
Форма обработки выглядит так:
Настроим следующее условное оформление данной формы: при установке реквизита СкрытьКолонку1 в значение Истина, в таблице форме скрывать реквизит Колонка1.
- Откроем настройку условного оформления формы;
- Добавим в таблицу новую строку;
- В колонке Оформление нажмем на кнопку с тремя точками и выберем параметр Видимость, значение Нет;
- В колонке Условие нажмем на кнопку с тремя точками, в открывшемся окне добавим новый отбор. Пропишем туда следующие значения: Левое значение — СкрытьКолонку1, Вид сравнения — Равно, Правое значение — Да;
- В колонке Оформляемые поля нажмем на кнопку с тремя точками, в открывшемся окне добавим новый элемент, и выберем значение ТаблицаФормыКолонка1;
- В итоге у нас должна получиться настройка условного оформления, такая же как на следующем рисунке;
- Нажмем кнопку Ок, сохраним нашу обработку и запустим ее в режиме 1С Предприятие;
- При установке флажка Скрыть колонку 1, будут происходить следующие изменения в оформлении формы.
Условное оформление 8.3. Пример программной настройки
Используя ту же внешнюю обработку, что и в предыдущем пункте, приведем пример программной настройки условного оформления. Необходимо сделать следующее: при установке реквизита ПоменятьЦветКолонки2 в значение Истина, в таблице формы раскрашивать фон Колонки 2, при установке реквизита СделатьНедоступнойКолонку3 в значение Истина, в таблице формы делать недоступным реквизит Колонка3.
В модуле формы создадим серверную процедуру, назовем ее УстановитьУсловноеОформление и сразу же допишем ее вызов в процедуре ПриСозданииНаСервере.
Весь следующий код будем писать в процедуре УстановитьУсловноеОформление. Нам необходимо добавить новый элемент условного оформления формы, для этого используем стандартную коллекцию формы УсловноеОформление.
Также как и в интерактивном варианте, нам необходимо в созданном элементе заполнить оформления, условия и поля. Для того чтобы указать поле мы должны создать поле компоновки данных с именем колонки на которую будет распространяться оформление. Если полей несколько, добавляем нужное количество полей компоновки данных. Для отборов создаем элементы отбора компоновки данных и заполняем для них левое значение, правое значение и вид сравнения. Для того, чтобы задать нужные оформления заполним значения параметров доступных оформлений. В нашем примере получается следующий код:
Таким образом мы создали оформление для второй колонки таблицы. Для третьей колонки оно делается аналогичным образом, поэтому не будем на нем подробно останавливаться. Итоговый код процедуры УстановитьУсловноеОформление будет выглядеть следующим образом:
Напомню, что скачать обработку написанную на основе разобранных примеров можно Здесь.
Читайте также: