Казалось бы, давно прошли времена, когда эффектный экранный интерфейс программы мог произвести на пользователей такое впечатление, что они даже переставали (правда, на непродолжительное время) думать о функционале продукта. Хотя именно такой бывала первая реакция людей во времена переходов от командной строки к оконной системе, потом от DOS (текстовый режим экрана) к Windows (графический)...

Сегодня при описании новшеств и достоинств сложных деловых приложений об "эффективности и дружественности" пользовательского интерфейса как-то не принято упоминать - многие ИТ-специалисты воспринимают такие фразы в описании продукта как тривиальные литературные штампы. Вот "масштабируемость, производительность, функциональность" - это совсем другое дело!

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


* Вот простой пример изменения соотношения ценности ПК и пользователя. 15 лет назад в СССР соотношение месячной зарплаты пользователя к стоимости ПК составляло примерно 1:50-1:100. Сегодня - примерно 1:1. Соответственно, тогда на одном ПК работало от трех до десяти пользователей (по расписанию!), а сегодня на одного специалиста порой приходится по паре компьютеров.

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

Другая сторона проблемы состоит в том, что создание эффективного интерфейса - это весьма сложная, с точки зрения разработчика, задача. Совсем не случайно в этой области работают исследовательские подразделения крупных ИТ-корпораций, университеты, независимые научные центры**. Ведут работы в этом направлении и российские разработчики, что мы и рассмотрим здесь на примере платформы "1С:Предприятие 8.0" с использованием материалов, опубликованных на сайте http://www.v8.1c.ru.


** Вопросы взаимодействия человека и компьютера обсуждаются, в частности, на ежегодных международных конференциях CHI (computer-human interactions, http://www.chi2005.org). Они проводятся под эгидой Association for Computing Machinery's Special Interest Group on Computer-Human Interactions (ACM SIGCHI), в них принимают участие специалисты из независимых исследовательских центров, университетов и ведущих ИТ-компаний. CHI'2005, 23-я по счету, прошла в марте в Портленде (США).

Общие подходы к созданию эффективного интерфейса

В версии 8.0 платформы "1С:Предприятие" новшества (по сравнению с 7.7) коснулись в той или иной мере почти всех механизмов пользовательского интерфейса, а некоторые из них реализованы в этой версии впервые (рис. 1). Возможности эффективной работы пользователя в среде "1С:Предприятие 8.0" определяются, с одной стороны, встроенными функциями интерфейса, которые может настраивать сам клиент, с другой - наличием специализированных средств, ориентированных на создание эргономичного интерфейса разработчиком прикладных решений.

Fig.1 Рис. 1. Основные интерфейсные механизмы платформы "1С:Предприятие 8.0".

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

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

Еще один важный момент - в "1С:Предприятие 8.0" реализована собственная оконная система, которая в общем случае не использует стандартные возможности Win API. Легко представить себе масштабность такой задачи, но разработчики "1С" пошли на это, чтобы создать интерфейс, максимально ориентированный на высокую эргономичность и эффективность работы с бизнес-приложениями, в том числе с использованием специальных элементов управления и механизмов настройки интерфейса. В числе возможностей оконной системы "1С:Предприятие 8.0" - поддержка прикрепленных, плавающих и прячущихся окон, выборочного режима максимизации окон (не предусмотренного в классической Windows-модели), соединяемых MDI-окон и т. д. Важная особенность - поддержка модальности, допускающей открытие немодальных форм. Поддерживается также автоматический режим корректировки размеров элементов управления при изменении размера формы и при перемещении разделителей внутри нее. Таким образом, пользователь может установить желаемые размеры для каждой формы и отдельных ее частей, а формы автоматически используют все предоставленное пространство для эффективного отображения информации. Важно, что этот механизм не требует настройки со стороны разработчика, но допускает, разумеется, и более тонкий тюнинг.

Стоит обратить внимание и на дизайн форм и элементов управления, который ориентирован, с одной стороны, на отображение максимального количества информации, а с другой - на снижение утомляемости при длительной работе пользователя. Отметим тут очень любопытный факт. В "1С:Предприятие 8.0" использован "плоский" дизайн интерфейса (рис. 2), приближенный к Web-дизайну, примерно такой же, что и в Windows XP. Но дело в том, что к пониманию необходимости именно такого подхода разработчики "1С" и Microsoft пришли совершенно независимо друг от друга!

Fig.2
Рис. 2. "Плоский" дизайн интерфейса "1С:Предприятие 8.0". Собственная оконная модель повышает эффективность работы пользователя бизнес-приложений.

В этой статье мы не сможем обсудить все возможности или даже только новшества интерфейсных механизмов (эту информацию можно найти по адресу http://www.v8.1c.ru/overview), поэтому рассмотрим только наиболее интересные, на наш взгляд, вопросы.

Формы, документы, схемы...

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

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

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

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

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

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

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

Fig.3
Рис. 3. Сводные таблицы - удобный и эффективный инструмент для анализа многомерных данных.

Очень интересное нововведение в "1С:Предприятие 8.0" - возможность генерации выходных форм с помощью текстовых макетов. Разметка при этом выполняется традиционными сегодня графическими средствами и простыми текстовыми командами (рис. 4).

Fig.4
Рис. 4. Исходное оформление отчета с помощью текстового макета и результирующий отчет.

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

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

Среди новинок нужно отметить диаграммы Ганта, представляющие собой изображение интервалов на шкале времени (рис. 5). Их можно эффективно применять для графического представления движения различных ресурсов во времени: хода выполнения проектов, графиков отпусков, работы различного оборудования и т. п.

Fig.5
Рис. 5. Диаграммы Ганта применяются для наглядного представления движения различных ресурсов во времени.

На уровне встроенного языка появился новый объект "Графическая схема", который позволяет создавать различные организационные, структурные и другие схемы для графического оформления прикладного решения (рис. 6). Графическая схема может как использоваться сама по себе, так и отображаться в формах и отчетах. С ее помощью удобно создавать иллюстрации, поясняющие состав тех или иных алгоритмов, структуру процессов, структурные схемы и т. п.

Fig.6
Рис. 6. Графическая схема может использоваться сама по себе или отображаться в формах и отчетах.

Еще один качественно новый механизм пользовательского интерфейса "1С:Предприятие 8.0" - географические схемы, наглядно представляющие информацию, которая имеет территориальную привязку: к странам, регионам, городам (этот механизм появился только весной 2005 г. в версии "1С:Предприятие" 8.0.10). Данные на географических схемах отображаются различными способами: в виде текста, гистограммы, цветом, картинкой, кругами различного диаметра и цвета, круговыми диаграммами. Это позволяет отобразить, например, объемы продаж по регионам в графическом виде. Пользователь может изменять масштаб отображаемой схемы, получать расшифровки при нажатии мышью на объекты схемы и даже создавать новые географические схемы. На дисках информационно-технологического сопровождения пользователям доступны также электронные карты России и мира, которые облегчают создание приложений, использующих географические объекты.