Каталог решений - Шаблон MVC для управляемого интерфейса

Шаблон MVC для управляемого интерфейса

Шаблон MVC для управляемого интерфейса

В наличии

Мы воспринимаем как что-то само собой разумеющееся интуитивно понятный интерфейс, мгновенно реагирующий на наши клики, подстраивающийся под уже сделанный нами выбор. А между тем за этой возможностью — решение серьезных алгоритмических задач. В общем случае решения этих задач уже найдены, но проблема их конкретного применения остается как для выбранного окружения (веб-браузер, экран мобильного телефона, компьютер), так и возможностей языка программирования. В следующей статье представлено одно из таких применений общего решения на основе шаблона MVC для 1С в сочетании с возможностями управляемых форм и декларативного описания интерфейса.

Категория:

Описание

Введение

Требования

Абстракция шаблона, программные слои

Объект (Model)

Форма (View)

Менеджер (Controller)

Зависимости

Описание связей

Виды зависимостей, слабые и сильные связи

Циклическая зависимость

Неявная зависимость

Заполнение значения

Значение по связям, обработчик заполнения

Заполнение значения из обработчика ПриИзменении

Подсистема «Управление интерфейсом»

Общее описание

Понятие реквизита объекта и узла. Реквизиты ссылочного и простого типа

Инициализация

Структура «ГрафЗависимостей»

События формы

НачалоВыбора

ПриИзменении

Изменение структуры Графа зависимостей

Сценарии работы

Определение договора

Определение номенклатуры по виду

Изменение подчинения договора на основного контрагента

Добавление зависимости вида номенклатуры от основного вида номенклатуры

Изменение договора (неявная слабая связь)

Изменение валюты (слабая связь)

Изменение контрагента программно

Изменение вида номенклатуры программно

Вывод

Приложение

Поставка

Развертывание

Демо версия

Рабочая

Источники


Введение

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

Программирование интерфейса пользователя — одна из самых сложных алгоритмических задач. История борьбы со сложностью в реализации пользовательского интерфейса уже достаточно продолжительная и придумано не мало решений для её обуздания. Найденные решения описаны в шаблонах проектирования. Остается взять «правильный» шаблон, проверить условия его применимости и найти его реализацию в 1С.

Базовым шаблоном в проектировании интерфейсов является шаблон MVC. В силу особенностей языка 1С найти реализацию этого шаблона было не просто, т.к. все эти шаблоны пришли из мира ООП, а 1С все-таки не поддерживает такую парадигму.

В представленном решении данной статьи описан вариант реализации MVC на 1С через декларативное описание зависимостей. Идея заключается в использовании графа зависимостей реквизитов, на основании которого подсистема сможет вызывать соответствующие обработчики. Сами обработчики можно расположить в общих модулях — это и будет средний слой между интерфейсом и моделью.

has been added to your cart:
Оформление заказа