Управление интерфейсом форм (УИФ)
25.05.17 22:23

Решение поставляется в виде cf файла для дальнейшего объединения с основной конфигурацией. Разработка велась на версии 8.3.9 без режима совместимости, но так же можно попробовать запустить и на версиях ниже - ничего сверхъестественного при разработке не применялось. Период бесплатной поддержки 1 месяц.

Пример применения решение наглядно показан в видео:

Все объекты решения вынесены в отдельную подсистему, что позволяет легко разместить их в нужной структуре подсистем (например в подсистеме Администрирование).

Для доступа к подсистеме и ее объектам есть 2 роли: Чтение_УИФ и ДобавлениеИзменение_УИФ.

Настройка элементов производится в справочнике "Настройки элементов". Именно тут производиться комбинирование независимых всевозможных вариантов и сочетаний настроек элементов.

Формы

На странице "Формы" задаются формы-источники элементов для настройки и к которым в дальнейшем можно будет применить саму настройку элементов:

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

Выбор форм для удобства осуществляется из специального дерева:

Так как для получения элементов форм необходимо получение самой формы, а некоторые формы являются специализированными и их так просто не получить (для них должны быть переданы параметры открытия), то для таких форм можно указать параметры в соответствующей колонке:

Элементы

На странице "Элементы" настраиваются элементы выбранных форм:

Если было выбрано несколько форм, то список элементов будет состоять только из совпадающих! 

Выбор элементов осуществляется как из списка: 

Так и из дерева элементов с сохранением структуры формы:

Доступные типы настроек элементов: 

  • Видимость
  • Доступность
  • ТолькоПросмотр
  • РедактированиеТекста
  • Заголовок
  • ПоложениеЗаголовка
  • ЦветТекстаЗаголовка
  • ЦветТекста
  • ЦветФона
  • Формат
  • ФорматРедактирования
  • Ширина
  • Высота
  • АвтоМаксимальнаяШирина
  • АвтоМаксимальнаяВысота
  • ГоризонтальноеПоложение
  • РастягиватьПоГоризонтали
  • ВертикальноеПоложение
  • РастягиватьПоВертикали
  • ВыделятьОтрицательные
  • АвтоОтметкаНезаполненного
  • ШрифтЗаголовка
  • ЖирныйШрифтЗаголовка
  • КурсивныйШрифтЗаголовка
  • ПеречеркнутыйШрифтЗаголовка
  • Шрифт
  • ЖирныйШрифт
  • КурсивныйШрифт
  • ПеречеркнутыйШрифт
  • Родитель

Дополнительные типы настроек шрифта, такие как ЖирныйШрифт, КурсивныйШрифт и тд, созданы для простоты настройки: как пример нужно только сделать текущий шрифт жирнее и не настраивать его с нуля. 

Тип настройки "Родитель" позволяет поменять родителя элемента. В качестве значения указывается тот элемент который будет родителем. Если указанный элемент не группа, то настраиваемый элемент будет перемещен перед ним. Данная настройка может быть применена только на сервере, на клиенте она игнорируется! 

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

Настройка конкретной формы производится в справочнике "Настройки":

В справочнике можно создать только одну настройку на одну форму! 

В настройке можно указать до 3-х аналитик в разрезе которых будут применяться настройки элементов - именно на эти аналитики настройки элементов и будут применяться. Аналитики могут быть любым ссылочным типом. Источником может быть что угодно что можно получить имея лишь форму (определение аналитики идет через метод "Выполнить(Источник)"). Уровни аналитик зависят друг от друга: Аналитика2 уточняет Аналитику1, Аналитика3, уточняет Аналитику2. Такие зависимости аналитик нужны для минимизации количества записей предварительного расчета применяемых настроек, а всевозможные комбинации сочетания аналитик задаются в регистре сведений "Доступные аналитики" заранее перед настройкой:

В дальнейшем можно корректировать доступные аналитики не прибегая к перезаписи самих настроек - будет производиться автопересчет предварительных настроек. Автопересчет будет только для тех настроек, которые имеют в своем составе аналитики со значением <Все доступные>, и для которых уже есть какие либо значения в предварительном расчете!

Значение <Все доступные> в аналитиках означает все подходящие значения которые можно получить из регистра сведений "Доступные аналитики" с учетом структуры зависимостей аналитик.

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

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

всем сочетаниям аналитик будет применена настройка элементов "Не доступность склада", но для сочетания аналитик второй строки будет применена настройка элементов "Доступность склада". Причем накладываются не сами настройки элементов как ссылки, а раскрытие настройки элементов до элемента и типа настройки. Другими словами если бы в первой строке была настройка "Не доступность склада и цвет склада красный", то для сочетания аналитик второй строки будет применена итоговая настройка с доступностью склада и цветом красный. Если поменять строки местами, то в итоге для всех аналитик будет настройка "Не доступность склада" 

При записи элемента справочника происходит предварительный расчет применяемых настроек элементов с сохранением в регистре сведений "Применение настроек":

Read Full Article