Принципиальные замечания по системе
… машина, становясь совершеннее, делает свое дело все скромнее и незаметнее …
… совершенство достигается не тогда, когда уже нечего прибавить, но когда уже ничего нельзя отнять …
… по изобретению, доведенному до совершенства, не видно, как оно создавалось …
Антуан де Сент-Экзюпери, "Планета людей"
Разрабатывая систему комплексной автоматизации разработчики заложили концептуальные и системные основы, на которых далее выстраивались все создаваемые программные модули. При этом было принято решение, которое на долгие годы обеспечило нам возможность развития системы без необходимости начинать с нуля любую разработку или переход на другую платформу.
Поскольку таких основополагающих принципов не так уж и много, приведем их здесь с небольшими комментариями.
Работа "от документа"
Именно в этом заключается одно из главных отличий ИС ЛокОФФИС от большинства других учётных программ. Сам термин нами понимается таким образом, что в базе данных ВСЯ вводимая информация должна храниться только в привязке к первичным документам (кроме, разумеется, каталогов), а все справки, отчеты, контрольные параметры, текущие подсказки о сальдо, остатках, потребностях и пр. рассчитываются на основании этих данных. Существенным преимуществом подобного подхода является дополнительная возможность обеспечить максимальную достоверность вводимой информации. Если при начальном заполнении, например, личной карточки на нового сотрудника фирмы программа в состоянии отследить такую ошибку, как несоответствие дат рождения и приема на работу (допустим, оператор ненароком укажет, что человек родился позже начала трудовой деятельности), то гораздо сложнее, а иногда и невозможно выявить ошибки, связанные с неверным вводом числовых или символьных сведений, особенно если они вводятся впервые. Лучший способ уменьшить количество ошибок на входе – поставить пользователя в такое положение, чтобы он сам же и проверял себя. Можно, конечно, после ввода порции данных постоянно спрашивать оператора, проверил ли он вводимые данные, уверен ли в их корректности и подтверждает ли окончательно запись информационного блока в базу данных. Не говоря о том, что это будет раздражать любого нормального человека (даже при наличии у него желания контролировать ввод), такая формальная процедура приведет с неизбежностью к столь же формальной проверке. Более правильно, на наш взгляд, руководству фирмы организовать работу с системой так, чтобы документ формировал именно тот сотрудник, который его (документ) и подписывает, - в этом случае ответственность за подготовленный счет, накладную, платежное поручение заставит его еще раз просмотреть уже отпечатанную форму, тем более, если это происходит в процессе телефонного или визуального общения с контрагентом.
Отсутствие повторного ввода одних и тех же данных
Информация должна храниться в единой базе данных и не должна дублироваться. Если, например, количество отпущенного товара будет храниться в записи о накладной и еще в записи о карточке складского учета по данному товару, то рано или поздно в этих записях произойдет информационное расхождение, зачастую с трудом выявляемое и сложно устранимое. Поэтому ответ на простой вопрос о текущем наличии товара на складе потребует от разработчиков предварительного принятия решения о том, откуда брать (считать) сведения об остатках – из КСУ или из документов (накладных), а также о том, какая запись "главнее" или "правильнее", чтобы "плясать" от нее во время синхронизации данных. Сам собой напрашивается вывод о первичности документа, в данном случае – накладной.
Старательное соблюдение условия единственности места хранения информации наряду с использованием принципа работы "от документа" позволяет пользователю получать на его запросы в любой момент времени актуальные и истинные ответы без предварительного запуска процедур типа "закрытие дня", "промежуточные расчеты" и тому подобное.
Естественно, что при интенсивном обращении к первичным документам должны быть обеспечены необходимые производительность и отказоустойчивость системы.
Высокое быстродействие и надежность
Что касается быстродействия, то самым простым способом решения данной задачи поначалу представляется путь, основанный на постоянном обновлении оборудования, тем более, что и с каждой новой версией продуктов фирмы Microsoft возникает такое же желание. И если всякий раз новая техника будет некоторое время радовать своими скоростными характеристиками, то по мере заполнения базы данных начнут сказываться совсем другие факторы, и пользователь начнет ощущать нарастающий дискомфорт ожидания отклика системы, что, возможно, заставит его задуматься о глубинных качествах используемой программы.
В свою очередь, надежная работа любой комплексной информационной системы для пользователя определяется тем, что он не испытывает стрессов от появления неожиданных ситуаций именно в тот момент, когда он готов и хочет работать.
Если же база данных регулярно разрушается, если при компьютерном сбое на локальной станции в момент изменения информации или при нештатном завершении работы потребуется вмешательство администратора для запуска утилит восстановления, трудовой порыв может смениться оправданным скепсисом по отношению к конкретным разработчикам в частности и ко всем программистам вообще.
В идеале администратор БД вообще не нужен, а функции резервного копирования может исполнять автомат или любой назначенный сотрудник, круг обязанностей которого гораздо шире. К сожалению, надежная работа системы расхолаживает пользователей, и, пока не был нами реализован автомат сетевого резервирования, администраторы делали копии БД в те редкие моменты, когда у них до этого доходили руки.
Прежде всего заслуживают внимания вопросы, относящиеся к принципам, которые бы обеспечивали ежедневно надежную и быструю работу системы.
Основополагающими здесь являются:
- используемые инструментальные средства,
- применяемая СУБД,
- наличие системных функций и библиотек,
- особое внимание программистов к этим вопросам.
ИС ЛокОФФИС реализована на профессиональном языке программирования "Си", для хранения и доступа к данным используется самая быстрая СУБД RDM Embedded (Raima Database Manager) фирмы Raima Corp. USA. Именно использованием этих средств объясняется высочайшая производительность системы при исключительной устойчивости к отказам.
Гибкость и настраиваемость
Cистема прежде всего ориентирована на использование ее в коммерческих структурах, ведущих оптовую и розничную торговлю с разветвленной сетью филиалов и, возможно, имеющих в своем составе производственные структуры. Это в некотором смысле определяет специфику решаемых задач, однако, неминуемо каждый клиент в той или иной степени является уникальным или считает себя таковым, поэтому необходимо его обеспечить возможностью простой и самостоятельной настройки под себя.
ИС ЛокОФФИС является существенно настраиваемой системой – все параметры, которые могут варьироваться либо в соответствии с потребностями клиента, либо в связи с изменениями законодательных актов, вынесены в специальные пункты меню, закрытые, если это необходимо, от рядовых пользователей специальными прерогативами доступа.
Так как, кроме этого, все выходные печатные формы (накладные, счета, договора, платежные поручения, кассовые ордера, прайс-листы, …) могут быть настроены в произвольном виде, а для подготовки нужных отчетов по товародвижению имеется развитая система запросов, и использование всех этих возможностей не требует изучения хоть чего-то, напоминающего язык программирования, то любой нормальный человек в состоянии наладить систему под себя, не прибегая к вызову специалистов, во-первых, и производя нужные настройки по мере необходимости, во-вторых.
Расширение функциональных возможностей
Поскольку наш законодатель не дремлет и постоянно совершенствует правовую систему, а наш клиент при этом умудряется развиваться и сам изобретает способы улучшения качества своей работы, мы все это обязаны принимать и отрабатывать, учитывая собственные наработки, постоянно возрастающие опыт и знания и перспективность функций, реализуемых в системе.
За время своего существования на рынке (с 1992 года) ЛокОФФИС превратился из 13-модульной системы в комплекс, состоящий из более 30 модулей.
Только благодаря исходным принципиальным постулатам, изначально заложенным в основу всех наших разработок, удалось обеспечить версионную преемственность.
Среди наших клиентов есть такие, кто использует ЛокОФФИС более 16 лет и оперирует с данными за весь период эксплуатации системы.
Функционал комплекса позволяет производить учет финансов, составлять библиотеки данных, осуществлять учет товаров в алгоритме, адаптированном под интересы вашего бизнеса, исходя из конкретной поставленной задачи. Принцип такого подхода позволяет оптимизировать расчеты и придать более наглядную и простую форму материалу, получаемому на выходе. Сведенная база статистических данных и документации используется всеми приложениями, не требуя повторного ввода исходных документов. Программа для учета финансов задействует для составления окончательного отчета обновляемую базу, которую контролирует программа для учета товаров. В свою очередь, программа для склада отслеживает непосредственный товарооборот поступающей и сбываемой продукции.
Пакет программ ЛокОФФИС предусматривает интегрированную работу с любым аналогичным или схожим по предназначению программным обеспечением – наиболее распространенными продуктами от 1C, элементами цифровой отчетности, программами сопровождения различной электронной аппаратуры.
Защита информации и разграничение прав доступа
В процессе работы с системой каждый факт хозяйственной деятельности предприятия запоминается в базе данных, и чем больше документов порождается ежедневно, тем быстрее растет общий объем БД. По мере накопления информации пользователя начинают все острее тревожить как минимум три вопроса, являющихся следствием банального наблюдения, сформулированного в предыдущей фразе.
Первый вопрос состоит в том, как эти данные надежно сохранить?
Было бы чрезвычайно обидно из-за форс-мажорных обстоятельств в один не самый прекрасный момент лишиться всей истории жизни фирмы за несколько лет.
Второй вопрос – как сделать невозможным просмотр данных любопытствующими конкурентами и прочими внешними организациями?
Наконец, возникает потребность открывать собственным сотрудникам данные и возможность их корректировки с различной степенью подробности и в разных объемах.
Резервное копирование базы данных является необходимой процедурой, которая выполняется зачастую автоматически с помощью как стандартных утилит сетевого программного обеспечения, так и утилит, предоставляемых разработчиками. Операция является очевидной и применяется при использовании любых систем.
Защита информации
от просмотра и анализа сотрудниками посторонних организаций обеспечивается в ИС ЛокОФФИС несколькими способами.
Во-первых, сама структура базы данных и формат файлов, в которых информация хранится, таковы, что понять содержимое без специальных средств, а с помощью стандартных просмотрщиков, не представляется возможным. Поэтому несанкционированное копирование БД с целью ее изучения на стороне без использования программ, входящих в поставку, становится бессмысленным. Сами же программы, в свою очередь, защищены от пиратского копирования и использования как схемной (HASP-ключи), так и встроенной программной защитой. Кроме того, по специальному заказу VIP-клиентов разработчики могут сформировать для фирмы свой, уникальный описатель базы данных, после чего использование стандартных программ системы ЛокОФФИС для анализа содержимого данной базы становится также невозможным. Наконец, остаются и организационные меры, такие, как хранение информации на съемных дисках.
Разграничение прав доступа
сотрудников предприятия к данным как с задачами ввода и корректировки документов, так и с целью построения справок и аналитических отчетов с зачастую конфиденциальными сведениями реализовано в системе с помощью различных механизмов.
В самых первых версиях была предусмотрена всего лишь парольная защита, использовавшаяся при запуске программы, каждый модуль мог иметь свой пароль. По мере интенсивного функционального развития системы этого оказалось явно недостаточно, поскольку каждое приложение наполнялось новыми рабочими режимами, справками и настройками, где безответственные действия кого угодно могли уже привести к тяжелым последствиям. Модульная парольная защита сохранилась в качестве дополнительной, но уже не главной степени защиты.
С самых первых версий сохранилась также возможность запуска программ в режиме, который был в свое время назван "босс-режимом". Этот механизм закрывает пользователю любые возможности внесения изменений в базу данных. При этом все справки, рабочие экраны, режимы настроек открыты, пользователь может, к примеру, изменить название товара, но при последующем входе в каталог он увидит, что сохранилось старое наименование. Режим, таким образом, позволяет все видеть, но ничего не разрешает поменять. Возможно управление доступом с каждой рабочей станции к своему набору модулей и баз данных. Такой список задается администратором системы в "карте пользователей", доступ к которой он имеет возможность закрыть личным паролем.
Развитая система разграничения прав сотрудников реализована в подсистеме ПРЕРОГАТИВЫ ДОСТУПА. При ее использовании каждый сотрудник фирмы, работающий в ИС ЛокОФФИС, имеет личный пароль, который определяет доступное лично ему функциональное и информационное подпространство в системе. В настоящий момент это таблица из более 200 запретов (разрешений) разного уровня. Сотрудник (менеджер) может быть ограничен в правах до такой степени, что ему будет разрешено только сформировать накладную на отгрузку только с одного склада с разрешением ввода лишь продаваемого количества, но с запретом изменения цен, а после печати документа он не сможет его изменить. Вероятность обмена личными паролями между сотрудниками невелика, поскольку любой сформированный документ содержит ссылку на автора, и вряд ли кому-то захочется нести ответственность за скидки, предоставленные клиенту от его имени другим лицом.
Работа с филиалами и удаленными офисами
В последнее время все чаще у клиентов, которые расширяют свою деятельность, возникают проблемы ведения полного учета на предприятии. Структура фирмы становится все разветвленнее, появляются удаленные склады и филиалы, организуется собственное производство. Степень автономности подразделений может меняться, даже у одного предприятия, от полной зависимости от центрального офиса до абсолютной самостоятельности в своей работе. В том случае, когда филиалы независимы, учет их деятельности может быть реализован путем использования своих личных баз данных. Получение объединенных справок и сводок по многим базам решается в ИС ЛокОФФИС с помощью подсистемы КОНСОЛИДАЦИЯ, состоящей из трех модулей. Основная идея заключается в том, что с нужной пользователю периодичностью в обобщающий центр передаются из разных мест копии баз данных, в центре они объединяются в единую БД, по которой далее, используя стандартные модули и функции ИС ЛокОФФИС, пользователь строит любые отчеты. Подсистема реализует и другие, более интеллектуальные функции, позволяющие объединять базы данных с сохранением единых справочников товаров и клиентов, общего каталога складов, подразделений, банков и касс, что позволяет проанализировать не только общие продажи, обороты и остатки, но и взаимоотношения с контрагентами. Естественно, что сотрудник, работающий с подобными тонкими режимами, должен быть более подготовленным и разбираться со структурой базы.
В случае необходимости вести единые данные по многим точкам возникает задача передачи информации из одной БД в другую. Наиболее оперативным способом является использование методов, реализующих подключение удаленных точек непосредственно к единой базе данных (работа On-line). В этом случае никаких репликаций не требуется, все пользователи работают с единой БД, и информация в базе является актуальной на любой момент. Реализуется работа с единой БД с помощью стандартных пакетов как через ИНТЕРНЕТ, так и по коммутируемым каналам связи. Правда, такое удовольствие стоит немало, нужно платить и за дополнительное компьютерное оборудование, и за траффик, и за лицензионные пакеты, реализующие подобную связь с головным офисом.
Для передачи документов из одной базы данных в другую в режиме Off-line, когда обновление информации производится с нужной пользователю дискретностью, в ИС ЛокОФФИС используются специальные подсистемы удаленной связи – УДАЛЕННЫЙ СКЛАД и УДАЛЕННЫЙ ФИЛИАЛ. Первая из них обеспечивает обмен складскими документами (накладными) и каталогами товаров, вторая позволяет передавать не только накладные, но и любые другие типы документов – кассовые ордера, банковские документы, договора, счета, заказы и т.д. Файл с отобранными для передачи документами создается сотрудником либо с помощью отдельной программы, либо в специальном режиме и через электронную почту или на дискете пересылается в нужную точку. Там запускается программа приема информации, и документы импортируются в базу, при этом все элементы каталогов, использованные в документах и отсутствующие в базе-приемнике автоматически в нужные каталоги добавляются. Если связь "офис-филиал" предполагает двусторонний обмен документами, то для каждого каталога (товары, клиенты и т.п.) возможно выделение своего поддиапазона автокодов, что устраняет перекрытие одних элементов справочников другими. Эту задачу решает модуль СТРУКТУРИЗАЦИЯ, входящий в подсистему КОНСОЛИДАЦИЯ.
Кратко описанная выше технология, обеспечивающая корректную взаимосвязь баз данных, с успехом используется фирмами, которые ведут не только оптовую торговлю, но и имеют разветвленную сеть розничных магазинов, каждый из которых является удаленным складом или филиалом и отправляет в офис отчет о результатах торговли в виде накладных, в которых объединены все чеки, и кассовых документов (выручка).
Примером использования модулей передачи документов для решения обратной задачи – формирования из одной общей БД нескольких баз данных – может служить использование технологии "торговли несколькими нашими фирмами с общего склада", реализованной в подсистеме ТОВАР. При соответствующих настройках документы, формируемые на "общем складе" и имеющие в нем единую нумерацию, "привязываются" к той "нашей фирме", от лица которой выписывается накладная. По каждой "нашей фирме" в этом случае дополнительно ведется своя нумерация накладных и счетов-фактур. Далее в любой момент, когда это необходимо, с помощью программ приема-передачи автоматически выделяется подмножество записей по каждому юридическому лицу, и документы распределяются по базам данных "наших фирм" для выполнения по ним бухгалтерских проводок и построения отчетности.
Учет пожеланий и доработки под клиентов
Для собственных нужд нами была разработана специальная система ("Система сборки") отслеживания версий ИС ЛокОФФИС, учета взаимоотношений с клиентами и автоматизации формирования дистрибутивов. Она состоит из трех модулей, каждый из которых служит выполнению конкретной задачи, и модуля управления доступом сотрудников ЛокИСа к различным режимам системы сборки (программа ведения прерогатив).