Россия, г. Москва +7 (926) 233-46-64 alex@harlamenkov.ru

Философия OpenOffice.org

OpenOffice.org является профессиональным инструментом для подготовки текстовых документов, электронных таблиц, создания бизнес-графики, презентаций и ведения офисных баз данных.

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

Единое ядро — это первый базовый аспект концепции OOo.

Вторым базовым аспектом является объектная модель.

Третьим базовым аспектом является логическое построение интерфейса.

Четвёртым базовым аспектом является высокий уровень подконтрольной пользователю автоматизации при подготовке документов.

Из четвёртого базового аспекта проистекают две фундаментальные концепции OOo:

  1. концепция стилей и
  2. концепция шаблонов.


Каждая из них будет разобрана подробно.

 

Единое ядро


На практике единое ядро офисного пакета проявляет себя тем, что по кнопке «создать» возможно создать любой из поддерживаемых типов документов, независимо от того, какое приложение открыто в настоящий момент. Так же действует и диалог открытия — можно открыть любой из поддерживаемых типов файлов, без предварительной загрузки обрабатывающего его приложения. То есть для разных типов документов просто подгружаются соответствующие меню и панели инструментов.

Редактируемые и нередактируемые документы


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

  • нередактируемые и
  • редактируемые.


Редактируемые подразделяются ещё на три подгруппы:

  • свободно редактируемые,
  • частично редактируемые и
  • с ограниченным доступом.


Теперь разберёмся с этим подробнее.

Нередактируемые документы — это, в частности, вступившие в силу нормативные документы, отчёты, результаты исследований, заключения, документы, отсылаемые «во вне» и т. д. Другими словами — это окончательная редакция документа, не подлежащая исправлению.

Редактируемые документы — это документы, ещё не переведённые в разряд нередактируемых, а так же те, которые априори должны быть доступны для редактирования.

Свободно редактируемые документы — это документы, не защищённые, доступные для редактирования любым пользователем.

Частично редактируемые документы — это документы, в которых некоторые части защищены от изменений.

Документы с ограниченным доступом — это документы, которые могут быть отредактированы только лицами, знающими пароль доступа.

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

  • для создания окончательных редакций — экспорт документа в PDF;
  • для шифрования документа — «сохранение с паролем» и
  • для контроля изменений — режим документа «только для чтения».

 

Редактируемые документы


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

Редактируемые документы с ограниченным доступом

 

Запароленные документы


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

Документ OOo представляет собой zip-архив, состоящий из каталогов с содержимым документа и настройками. Когда документ сохраняется с паролем — пароль ставится не на zip-архив. В этот момент включается криптографический модуль, который шифрует все каталоги и файлы, входящие в zip-архив. Сам же архив остаётся незашифрованным. Таким образом, всё содержимое документа оказывается зашифрованным криптостойкими алгоритмами. Распаковка такого zip-архива не даст злоумышленнику никакой пользы, поскольку файлы будут представлять из себя электронное конфетти.

Лишь введя пароль, можно корректно расшифровать защищённый документ. И если автор документа забыл пароль, то файл можно считать утерянным.

Отсюда следует вывод, что не стоит забывать пароль.

Частично редактируемые документы


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

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

Для защиты от преднамеренного изменения — необходимо установить пароль.

Документы «Только для чтения»


Данный режим не имеет ничего общего с функцией операционной системы, в которой есть атрибут файла (любого) «только для чтения», не позволяющий открывать файл для записи.

Режим «только для чтения» функционирует в двух вариантах. Первый — когда необходимо защитить документ от случайного изменения, второй — когда необходимо защитить от преднамеренных изменений.

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

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

Защищённый режим «только для чтения» прекрасно подходит для согласования документов. Например — договоров. Файл договора защищается подобным образом и отсылается контрагенту. Контрагент свободно исправляет всё, что хочет. При этом он сам видит все вносимые корректировки и не может этот режим отключить. Затем контрагент возвращает отредактированный договор вам, и вы сразу видите все правки. Автор избавлен от необходимости посимвольно сравнивать два файла, в поисках запятой в «казнить нельзя помиловать».

Есть одна особенность функционирования режима «только для чтения» — когда в документ вставлены поля. При работе с таким документом ввод данных в поля не считается редактированием. Подобным образом можно создавать формы для заполнения.

Экспорт в PDF


Для создания окончательных редакций документов, которые не подлежат дальнейшему изменению, предназначен формат PDF. Экспорт в этот формат поддерживается во всех модулях OOo.

Объектная модель

 

Объект


В OOo действует принцип — всё есть объект.

У каждого объекта есть имя.
У каждого объекта может быть родитель и может быть потомок.
У каждого объекта есть состояние и свойства.

Какое следствие вытекает из этих трёх утверждений? Очень простое — всё, и абзац, и таблица, и график, и рисунок, и вообще любой элемент документа является объектом.

Имя объекта. Не бывает безымянных объектов. Следовательно, любому вставленному в документ объекту должно быть присвоено имя. За неукоснительным исполнением этого правила следит сам OOo, автоматически присваивая имена в момент добавления объекта в документ. Например, если в тексте вставлено 53 таблицы, то все они будут иметь имена вида «ТаблицаX», где «X» — это номер объекта в порядке его создания. То же самое относится и к рисункам, OLE-объектам, врезкам и т. д. Все эти объекты отображаются в Навигаторе. Следовательно, если документ сложный со множеством объектов, то им предпочтительно самостоятельно давать осмысленные имена, чтобы в дальнейшем можно было легко ориентироваться в документе. На это надо затратить немного времени, которое затем сторицей окупается скоростью навигации.

Состояния объекта — если он не выделен, то он не активен. Если он выделен (курсор установлен на этом объекте), то он активен и можно им манипулировать — например, обратиться к его свойствам через контекстное меню. С родителями, потомками и наследованием тоже всё просто. Например — абзац. При наборе текста после нажатия [Enter] создаётся новый (условно говоря — дочерний) абзац с теми же атрибутами, что и предыдущий (так же условно говоря — родительский).

Наследование


Вот основные принципы, по которым функционирует наследование.

  1. Наследование всегда идёт сверху вниз, и никогда наоборот. То есть, от родителя к потомку.
  2. Все унаследованные свойства объекта можно изменить. При этом изменение, сделанное в потомке, имеет преимущество над «получаемым в наследство» — унаследованным свойством.


Что это значит на практике?

Допустим, имеется текст с тремя уровнями заголовков, размеченный стилями «Заголовок 1», «Заголовок 2», «Заголовок 3», «Основной текст», «Цитата» и «Подпись». Для стиля «Цитата» установили зелёный цвет шрифта. Весь остальной текст — чёрный. И тут возникает необходимость изменить чёрный цвет на синий. Для этого модифицируется один единственный стиль «Базовый», так как он является родителем для всей системы стилей. При этом параметр цвета в стиле «Цитата» не изменится и останется «зелёным».

Метаобъект


Кроме объекта, в объектной модели существует ещё метаобъект.

Метаобъект представляет собой контейнер, содержащий группу объектов.

Любой документ является метаобъектом, содержащим объекты текст, графику и т. д. Картинка с подписью — это метаобъект «врезка», содержащий «изображение» и «текст». Метаобъект «график» содержит объекты «координатные оси» «подписи» «кривые данных». У метаобъекта, как и у объекта, есть свойства, через которые можно управлять всей группой объектов, входящих в метаобъект. Например, можно переместить метаобъект «врезка с картинкой и подписью». При этом, разумеется, переместятся и картинка, и подпись. При создании графических элементов часто доступны операции группировки и разгруппировки. При выполнении операции группировки создаётся метаобъект, включающий в себя объекты — элементы, из которых состоит группа. При выполнении операции разгруппировки происходит уничтожение метаобъекта с извлечением из него всех входящих в него объектов. В большинстве случаев есть возможность тем или иным способом управлять объектами внутри метаобъекта.

Прямым следствием аспекта «Объектной модели» является концепция стилей в OOo. Данная концепция охватывает все фундаментальные элементы документа — символ, абзац, список, врезку и страницу. Следовательно, для каждого из этих элементов создана своя категория стилей. И именно на тотальном использовании стилей покоится философия OOo.

Без использования стиля в OOo не создаётся ни один объект. Явно или не явно, но каждый объект основывается на стиле.

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

Отсюда же проистекает и концепция шаблонов как метаобъекта, хранящего в себе не только стили, но и структуру электронного документа в целом.

Офисный пакет используется для подготовки документов (прописная истина). Как бы ни было велико предприятие, на каждом рабочем месте количество видов документов всегда конечно. Это договора, приказы, отчёты, служебные письма и т. д. Практика показала, что практически везде подготовка документов происходит по одной схеме:

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


То есть — каждый раз изобретается велосипед. Интересный вопрос — чем грозят подобные «изобретения», и что происходит с производительностью труда? А происходит вот что:

  • Уже созданный и утверждённый документ открывается на редактирование и из него удаляется критически важная информация. В случае аварии документ будет уничтожен.
    Это технологическая «выгода» от «изобретения».
  • Часто возникает ситуация, когда данные из документа удалены не полностью и попадают с новым документом к другому адресату. Так, не редко клиенты узнают цены, которые предложены другим клиентам. То есть происходит утечка конфиденциальной информации.
    Это коммерческая «выгода» от «изобретения».
  • Открывая ранее созданный файл, клерк вынужден его ещё раз внимательно прочитывать, чтобы понять, что из него надо удалить. Затем второй проход — удаление информации. Далее — третий проход — ввод новых данных. Таким образом, на подготовку документа тратится в три раза больше времени, чем требуется.
    Это производительная «выгода» от «изобретения»


Не слишком ли дорого обходится каждый документ?

Итак, тезис — клерк не изобретатель.

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

Отсюда следующий тезис — у клерка своя работа.

Это значит, что клерк должен взять готовую форму и заполнить её. Именно для этого предназначены шаблоны. Они минимум в три раза повышают производительность труда клерка.

И ещё один штрих к портрету.

Во времена пишущих машинок бланки организаций заказывались в типографиях и на всём предприятии сей бланк был един. Когда настала эра PC и лазерных принтеров, на каждом рабочем месте стала рисоваться «своя» форма бланка организации, сделанная по принципу «кто в лес, кто по дрова». Добиться единообразия формы стало практически невозможно. И так стало не только с бланками, но и с формами других общих документов.

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

Таким образом, философия OOo — это философия шаблонов и стилей.

Логика интерфейса


Интерфейс — это то, что видит пользователь в первую очередь. Именно с интерфейса начинается ознакомление с любой программой. Говоря об интерфейсе OOo, следует напомнить о его родителях. Это немецкая фирма StarDivision, а педантичность и аккуратность немцев всем известна.

Риторический вопрос: «Кто может объяснить, почему формат страницы должен находиться в меню „Файл?“». В OpenOffice.org вы не найдёте подобных казусов. Для изучения OOo нет необходимости описывать каждый пункт меню системы — необходимо лишь понять главный принцип построения меню, и всё, что нужно, будет найдено мгновенно. Построение меню так же подчиняется объектной модели, как и всё остальное в OOo.

Здесь не встретишь таких парадоксов, как формат страницы в меню «Файл» или работа с исправлениями в меню «Сервис».

В OOo, всё, что относится к внесению корректировок в документ — находится в меню «Правка», что бы ни потребовалось вставить (объекты или связанные данные) — это меню «Вставка». Что бы ни потребовалось отформатировать — это в меню «Формат». И формат страницы — в том числе. В меню «Вид» собрано управление отображением документа, вывода на экран панелей инструментов. И так далее, в том же духе.

Совершенно логичным требованием является то, что все области документа должны быть доступны для редактирования без переключения в специальные режимы. OOo выполняет это требование. Его область документа состоит из двух частей — области текста и области колонтитулов. Всё полностью доступно для редактирования. Для доступа к колонтитулу не нужно переключаться в специальный режим. Достаточно щёлкнуть мышью или нажать соответствующую комбинацию клавиш. При этом сразу видно, какое место займёт колонтитул и основной текст.

Ещё один принцип — на экране ничего лишнего или Динамические панели инструментов


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

Усвоив эти принципы философии с OOo становится очень легко работать.

А. Е. Харламенков


(Продолжение: Базовые концепции философии OpenOffice.org)

Выражаю особую благодарность Валерию Леонидовичу Хандросу за помощь в подготовке статьи.

{aridoc engine="google" showDownloadLink="1" width="550" height="450"}documents/002_философия_ооо.pdf{/aridoc}

{tortags,4,1}

Алексей Евгеньевич Харламенков