Описание пользовательского интерфейса 
ACCORD
программного комплекса R2D2



1. Концепция

Концепция интерфейса построена по принципу "от операции". Под операцией понимается любое законченное действие пользователя с системой диалогового типа "хочу-получите". Большим недостатком существующих систем является перегруженность интерфейса различными меню; массой всплывающих окон, при этом каждое окно имеет свою логическую организацию. Разумеется, описание такой программы (диалоговых окон, последовательности действий составляет не один том технической документации ). Начинающему пользователю с первого взгляда трудно разобраться в логике программы. Поэтому первочередной задачей в конструировании интерфейса было - разработать универсальную форму организации диалога с комплексом, удовлетворящую большинству запросов пользователей, исходя из 12-летнего опыта практической работы с прикладной автоматизацией бухгалтерского учета. На рис.1 представлен окончательный (четвертый) вариант:




Рис.1

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

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

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

Зеленый шарик в головном меню сигнализирует об окончании загрузки информации с сервера.  В момент заг рузки он красный.

2. Технология

Интерфейс разработан с использованием языка описания графических интерфейсов XUL проекта Mozilla и языка сценариев Javascript.  Стилевое оформление заимствовано из стиля modern Mozilla. Использование данной технологии позволяет использоватье его на любом компьютере независимо от типа операционной системы. Необходимым условием является установка на компьютер браузера Mozilla. На проекте Firebird интерфейс пока тестируется. ACCORD устанавливается в каталог ./mozilla/chrome и работает как самостоятельное приложение не требующее запуска Mozill'ы.

Язык XUL (подмножество XML) необычайно удобен и нагляден для проектирования и создания пользовательских интерфейсов. Имеющиеся в Mozilla средства позволяют легко отлаживать интерфейс. Это позволяет подключить к разработке интерфейсов web-программистов не знакомых с тонкостями графических библиотек других языков.

Обмен информацией с сервером осуществляется по протоколу HTTP. Основной формат передачи даных с сервера - RDF (подмножество XML). В Mozilla встроен механизм преобразования данных RDF в визуальную форму, поэтому заботится о преобразовании информации не приходится. Информация из одного RDF-файла автоматически преобразуется  в таблицу, дерево, список, сообщение, надпись на кнопке, заголовок
и т.д. Необходимо лишь в описании XUL виджета поставить необходимую ссылку на данные в RDF.

На сервере реализован механизм идентификации пользовательского сеанса, в течение которого хранятся все переменные пользов ательского диалога. Поэтому заботиться о передаче в запросах всех переменных нет необходимсти. Сам диалог с сервером по поиску-модификации записей организован через несколько cgi-скриптов. Структура классов вызывается из ACCORD'a горячей клавишей.  Программисту этого достаточно для разработки дополнительных модулей. Что и как работает на сервере, какая там операционная система и какая СУБД используется его совершенно не касается.

3. Функционал

3.1 План счетов, аналитика.




Рис.2

Возможно создание нескольких балансов, каждый из которых будет иметь свой план счетов. План счетов "деревянный" с точечной нотацией. На каждом счете (от субсчета последнего уровня) создается аналитическая группа насчитывающая до 6 аналитик. Таким образом, бухгалтерской проводкой можно описать (1+n(уровень субсчета)+6)^2 = 49 (для n=0) аналитических комбинаций.




Рис.3




Рис.4



3.2 Настройка

3.2.1 Настройка операции справочника

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


Рис.5

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

  1. "Условный код" операции по которому будет обеспечен быстрый поиск.  Для бухгалтерских операций , таким кодом может быть корреспонденция проводки н.п. 4160 - "Оприходование товара" . Для остальных как удобнее.
  2. Название операции - название справочника, название операции н.п. "Физические лица", "Оприходование товара", "Типовые операции", "Издержки" и т.д.
  3. Выбрать базовый класс. Для справочника юридических лиц, это будет класс "Юридические лица", для операции "Оприходование товара" это будет класс "Счет-фактуры входящие" и т.д. В классе "Типовые операции" это поле является ссылочным (в данном случае на класс). Работа со ссылочными полями осуществляется следующим образом. Пользователь вводит в поле подстроку искомого класса и нажимает Enter. Возвращается список найденных класов в раскрывающееся меню. Список всех классов открывается по грячей клавише или при наборе в поле пробела.
  4. Поставить флажок для "деревянных" справочников. В этом случае при пустом запросе от пользователя, вернется весь справочник.
  5. Для создания типовых проводок для бухгалтерских операций нажать на кнопку "Проводки типовых операций". Настройка будет рассмотрена ниже.
  6. В имя файла пишется адрес подключаемого модуля.
  7. "Показать колонки" - ввести последовательность колонок базового класса которые и в каком порядке будет видеть пользователь данной группы.
  8. "Только для чтения" данного класса.
  9. "Печать" разрешить печать документов из данного класса.

3.2.1 Настройка бухгалтерской операции


В этом случае к настройке доступа к базовому классу первичных документов:


Рис.6

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




Рис.7




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

  1. Ссылка на объект (запись "Оприходовать товар" в классе типовых операций).
  2. Поля кодов счетов. Если проставить счет до последнего уровня субсчета то именно он и будет проставлен в проводке. Если проставить счет более высокого уроня, то при проведении проводки, пользователю будет предложено выбрать необходимый субсчет. К этому субсчету далее будет открыто поле аналитических ссылок (см. ниже).
  3. % базовой суммы документа для расчета частной суммы проводки.
  4. Скрипт расчета частной суммы на языке Javascript.


 3.3 Работа с таблицами

Разберем на примере работы с классом "Юридические лица".


Рис.8


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

  • сортировать любую колонку по обоим направлениям.
  • перемещать колонки
  • изменять размер колонок
  • скрывать показывать избранные колонки.

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

  • поиск по ключевому слову (регулярные выражения пока не реализованы)
  • добавление-исключение к (из) (не)найденным
  • инверсия
  • восстановление

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

  Поле реквизитов можно скрыть горячей клавишей, чтобы не мешалось:


Рис.9

Справочник  юридических лиц имеет поле ссылки на класс расчетных счетов. Работа с которым аналогична с настройкой проводок к первичной операции:



Рис.10



Рис.11

 Для работы с несколькими справочниками одновременно или для работы с двумя (тремя, четырмя...) справочниками-операциями, нажмите "Вкладка-Открыть новую" и загрузите в нее соответствующую операцию:


Рис.12

Внимание! Головная боль многопользовательских систем. Допустим в результате сложных запросов получена выборка в таблице. В это время коллеги делают изменения в классе в том числе в выбранных Вами записях. Для обновления полученной выборки нет необходимости генерировать запросы снова. Актуальность информации в выборке проверяется при любом запросе! Просто для проверки достаточно сформировать пустой запрос к серверу в виде нового пустого запроса.

    3.4 Бухгалтерские операции

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


Рис.13

Как видно на рисунке,  реквизиты документа скопировались в аналитические признаки  счетов. За исключением аналитики 41 счета. Аналитика по нему открыта по подразделениям предприятия. Для ее введения наберите в поле аналитики ключевое слово подразделения или его код и выберите нужное из открывшегося меню.  В случае, если бы в классе  была ссылка на подразделения , этого бы делать не пришлось.

Особенности бокса проводок. Проводку можно копировать со всеми реквизитами (но с нулевой частной суммой). Удалять. Выбирать новый счет (см.выше). В поле частной суммы работает калькулятор. Просто введите "2*2" и нажмите Enter, а можно (2+2)*2/2 и все равно получите 4. Для печати первичного документа, а это можно сделать в любое время нажмите "Печать". Нажмите кнопку "Записать проводку" и перейдите во вкладку "Проводки":


Рис.14


В этой вкладке можно осуществлять  поиск по любому из параметров. Например запросить все проводки в которых имеется аналитический признак "АФРОДИТА". Перейдите во вкладку  "Баланс". Загрузите бухгалтерский баланс "Выбрать-Бухгалтерский,Загрузить".


Рис.15

Оборотно-сальдовый-аналитический баланс пересчитывается автоматически после каждой операции. Каждый счет баланса раскрывается по аналитическому дереву до оборотно-сальдовой ведомости:


Рис.16


Рис.17


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

Конец описания функционала. Далее в работе - работа с печатью. Простейшие сценарии.


Андрей Куликов, ООО "ИТК" , Ижевск, 2003 г.
На визуальное представление интерфейса распространяется действие законадательства  РФ о  защите авторских прав на программы для ЭВМ.