электронная
Бесплатно
печатная A5
261
12+
Компьютеризация бухгалтерии ЦЭМИ — теория и практика

Бесплатный фрагмент - Компьютеризация бухгалтерии ЦЭМИ — теория и практика

Как создаются и эксплуатируются АРМы

Объем:
92 стр.
Возрастное ограничение:
12+
ISBN:
978-5-4474-6789-0
электронная
Бесплатно
печатная A5
от 261
Купить по «цене читателя»

Скачать бесплатно:

Предисловие

На фоне сегодняшних достижений в области информатики факт компьютеризации бухгалтерии академического института сам по себе достаточно банален, чтобы писать на эту тему книгу. Что же побудило нас это сделать и что может представлять научно-методический интерес? На наш взгляд, это разработанное в институте уникальное программное обеспечение, которое может оказаться интересным и для широкого читателя, и для специалистов. В подтверждение этому следует привести два факта. Во-первых, в 2000 году в президиум РАН поступила официальная информация от казначейства, в которой компьютеризация бухгалтерии ЦЭМИ в результате проверки институтов РАН была признана лучшей. Во-вторых, в определенный момент руководство института совместно с бухгалтерией провели эксперимент по созданию запасного варианта бухгалтерского программного комплекса, для чего пригласили специалистов из фирм, создающих промышленное программное обеспечение бухгалтерий. Был заключен договор для проведения обследования и выработки предложений по фирменному обслуживанию институтской бухгалтерии. Однако положительный результат получить не удалось. Оказалось, что достигнутый в институте уровень автоматизации бухгалтерии значительно отличается в лучшую сторону от того, что предлагают фирмы. В институте все бухгалтерские программы максимально настроены на удобство каждого сотрудника бухгалтерии. Ни одна фирменная программа в типовой поставке не обеспечивает этого, а заказной вариант, адаптированный под нужды конкретного предприятия, стоит очень дорого или же просто не входит в состав фирменных услуг.

Как же удалось создать и долгое время поддерживать в рабочем состоянии хорошо адаптированную бухгалтерскую систему? Чтобы это понять, надо вспомнить историю появления системы ВИК. Идея родилась на семинаре, который провел академик В. Л. Макаров в 1985 году. Директор инициировал что-то вроде мозгового штурма по теме «Концепция АРМ в сфере управления». В числе прочих прозвучали тезисы, которые звучали примерно так:

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

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

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

В общем, речь шла о создании фантастического «завода» по промышленному производству «дешевых и разнообразных» автоматизированных рабочих мест. Высказанные на семинаре тезисы запомнились и стали в дальнейшем возникать в контексте повседневных дел.

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

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

Так сложилось, что мы не смогли объяснить актуальность концепции системы ВИК своим коллегам, которые, не обнаружив привычных канонов, критиковали нас за «кустарщину». Так, в свое время нас сильно критиковали за отказ от формата DBF. Ну и где он, этот формат, сегодня?

Для многих так и остался загадкой тот факт, что программный комплекс «Бухгалтерия ЦЭМИ» не только успешно функционирует в течение 20 лет, но по своему информационному потенциалу оказывается более продвинутым, чем многие фирменные продукты. Изменились компьютеры, операционные системы, языки программирования. А в бухгалтерии на экранах компьютеров по-прежнему такие же простые и понятные таблички, которые появились в первых наших бухгалтерских приложениях. Разумеется, изменений появилось достаточно много, но не принципиальных, а текущих, в рамках принятых много лет назад стандартов. Комплекс развивается и функционирует по той же технологии, которая была много лет назад. Если бы коллеги отбросили свой консерватизм и преклонение перед авторитетами западных фирм, они бы этому не удивлялись. Просто у нас оказалась разная система ценностей. Они больше заботятся о научных амбициях, мы же — о практической пользе, даже если она, по их мнению, достигнута «кустарно».

Но следует признать, что мы не учли главного. Мы начали работу в СССР в рамках последнего пятилетнего плана. И в своих целевых установках не учли происходящие перемены. Мы не могли понять, что коммерческие цели часто берут верх над техническим здравым смыслом и что это закономерно. Однажды мы делали сообщение по ВИКу в одном из программистских КБ. Сообщение встретили гробовым молчанием, а потом один из слушателей сказал: «Если мы возьмем эту систему, то через полгода нас всех уволят. Работы у нас не будет». Мы тогда поняли, что судьба нашей работы как промышленного проекта плачевна. Оказалось, что все мужчины-программисты встретили ВИК в штыки, как мускулистые землекопы встречают хороший экскаватор. И только благодаря поддержке руководства института нам удалось провести 20-летний эксперимент и убедиться в правильности нашего выбора. Ни в одном программном бухгалтерском комплексе новые отчетные формы не делались с такой скоростью, как в среде ВИК. Совсем неспроста наш программный комплекс в одно время оказался лучшим в Академии наук. Результаты нашего длительного эксперимента дают нам надежду, что его результаты могут оказаться интересными и сегодня. В этой книге мы старались в популярной форме изложить те простые идеи, которые сделали ВИК на практике «системой выживания» прикладных управленческих задач.

Наша работа не была бы успешной без активного и доброжелательного участия коллектива бухгалтерии. Мы выражаем искреннюю благодарность ее работникам, и особенно главному бухгалтеру Елене Николаевне Бизюк, которая не только проявила заинтересованность в наших результатах, но была постановщиком большинства задач. Мы благодарим сотрудников нашей группы Рыбину Татьяну Александровну, Парини Ирину Евгеньевну, чей труд был важным вкладом в наш успех.

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

Часть первая. Что такое ВИК и зачем он нужен

Оболочка — основа системы

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

1. Справочники

1.1. Список автомобилей

1.2. Список организаций клиентов

1.2.1. Магазины

1.2.1.1. «Магнит»

1.2.1.2. «Шанс»

1. 2.2. Кафе

1.2.2.1. «Лакомка»

1.2.2.2. «Зеленый пеликан»

1.3. Список поставщиков

1.3.1. Молокозавод

1.3.2. Хлебозавод

2. Регистрация заявок

3. Формирование накладных и счетов-фактур

Для работы обычно используется структура в сокращенном виде, когда на экране в полном составе присутствуют список разделов только актуального уровня и имена всех разделов-предшественников. Так в нашем примере будет выглядеть структура в сокращенном виде, когда диспетчер просматривает подпункты раздела «1.2.1. Магазины»:

1. Справочники

1.2. Список организаций клиентов

1. 2.1. Магазины

1.2.1.1. «Магнит»

1.2.1.2. «Шанс»

На рис. 1 показан экран диспетчерского пункта в момент просмотра магазинов.

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

Рис. 1. Простмотр магазинов

Приведем пример развития программы. Допустим, что у нас имеются стандартная программа для подготовки накладных и счетов-фактур и стандартная программа PrintText. exe для вывода текстового файла на принтер, имя которого надо указать первым параметром программы. Добавим к структуре нашего примера два новых пункта.

3. Создание накладных и счетов-фактур

4. Вывод накладных и счетов-фактур на принтер

Рассмотрим, как настраивается 4 пункт (рис. 2).

Рис. 2. Мы ввели два новых пункта

Откроем текстовый файл этого пункта и запишем такой текст в первую строку этого файла:

PrintText. exe Rezult. txt

Теперь, чтобы напечатать накладные и счета-фактуры, надо нажать Enter в 4-м пункте структуры.

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

Структура удобно и легко формируется, корректируется, просматривается как с помощью клавиш, так и с помощью мышки. Приведем основные операции для работы со пунктами структуры.

Операции просмотра структуры, которыми пользуются и конечные пользователи и программисты:

— двигаться по списку пунктов одного уровня,

— опуститься в подпункт,

— подняться из подпункта.

Операции изменения структуры, которые работают только в режиме программирования:

— создать новый,

— удалить (вместе с подпунктами),

— вырезать (перенести в буфер вместе с подпунктами),

— копировать (копировать в буфер вместе с подпунктами),

— извлечь (перенести из буфера в структуру вместе с подпунктами),

— редактировать свойства пункта.

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

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

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

Остановимся подробнее на том, как можно организовать автоматический запуск последовательности программ. Описанные выше возможности структуры позволяют удобно работать пользователю лишь в режиме диалога. Чтобы выполнить какое-то законченное действие, надо найти нужный пункт и кликнуть его. Если получение результата требует выполнения нескольких пунктов, то пользователь должен кликнуть все эти пункты. Возникает некоторое противоречие. Программисту удобнее разбить процесс получения нужного результата на последовательность более простых операций. Напротив, пользователю было бы удобное выполнить для этого лишь один пункт. Как быть? Был придуман простой способ преодоления этого противоречия. Покажем на примере. В приведенном ниже примере запрограммирована обработка запроса — выбрать из базы данных список сотрудников по некоему признаку отбора и напечатать их анкеты. Программист может для этого создать и запрограммировать следующие пункты:

Ввести признаки отбора.

Выполнить выборку нужных строк в рабочий файл.

Отсортировать строки этого файла по алфавиту.

Сформировать анкеты из выбранных строк.

Просмотр анкет и вывод их на принтер.

Выполняя последовательно эти пять пунктов, можно обработать запрос. Однако пользователю так работать неудобно. Для обработки каждого запроса ему надо кликнуть пять пунктов. Чтобы сделать работу более удобной, надо немного модифицировать структуру и использовать автоматический запуск. Как это сделать? Сначала надо создать новый пункт «Выборка из базы и формирование анкет», а первые четыре пункта примера перенести в его подпункты. Затем необходимо ввести параметры запуска. Для наглядности параметры запуска вводятся в наименования пунктов. Получим следующую структуру:

:? Выборка из базы и формирование анкет

1.1. * Ввести признаки отбора

1.2. * Выполнить выборку нужных строк в рабочий файл

1.3. * Отсортировать строки этого файла по алфавиту

1.4. * Сформировать анкеты из выбранных строк

2. Просмотр анкет и вывод их на принтер

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

1:? Выборка из базы и формирование анкет

2. Просмотр анкет и вывод их на принтер

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

Представление данных и библиотека модулей

Данные в системе ВИК представляются в виде многострочных таблиц. Строки разбиты на показатели (столбцы). Каждая таблица хранится в отдельном файле. Устройство любой таблицы полностью описывается неким текстом, который называется макетом таблицы. В макетах присутствуют: имя файла, имена, размеры и типы показателей, параметры вида таблицы на экране, информация для модулей, обрабатывающих данные. Между таблицами могут быть установлены иерархические отношения, которые описываются также в макетах таблиц. Отношения между таблицами конструируются из множества элементарных связей, указанных в макетах. Элементарная связь — это связь показателя таблицы с другой таблицей, которую можно назвать подтаблицей. Покажем на примере суть элементарной связи.

В макете исходной таблицы можно указать ссылку второго показателя на макет подтаблицы. Если кликнуть фамилию, то на экране должны появиться соответствующие подтаблицы. Таблица и ее подтаблицы показаны на рис. 3, 4, 5.

Совокупность таблиц, связанных отношениями подчинения, образует иерархическую базу данных. С помощью макетов таблиц и элементарных связей между ними могут быть созданы разнообразные иерархические базы данных. Для работы с такими базами имеется библиотека стандартных программ, каждая из которых выполняет определенную типовую операцию над таблицами (файлами) базы данных. Основной и самой важной является программа, предназначенная для работы с базами данных в режиме диалога. Эту программу называют просмотром базы данных, однако кроме просмотра она предоставляет пользователям самые широкие возможности для работы с данными, включая создание новых таблиц, ввод и вывод данных, автоматическую калькуляцию и контроль, сортировку, контекстный поиск и пр. Для автоматической калькуляции в макетах таблиц на специальном языке пишутся локальные программы. Язык очень простой, он представляет собой условную вычислительную машину, очень прост для программирования. Например, запись вида <3 3 4 5> расшифровывается так. Первое число, код операции, 3 — умножение, далее 3 — первый сомножитель из третьей колонки, затем 4 — второй сомножитель из четвертой колонки, и наконец, 5 — результат в пятой колонке. Запись означает: перемножить показатели третьей и четвертой колонок и послать результат в пятую. Типичный случай регистрации покупок — вводится количество и цена, а результат получается автоматически. Программа калькуляции запускается при любом нажатии клавиши и работает мгновенно, так как выполняется только для текущей строки. Набор операций для локальных программ достаточно разнообразен, чтобы сделать работу конечного пользователя весьма комфортной. Например, есть операция вывода текстового (графического, звукового) сообщения, позволяющая запрограммировать сообщение об ошибке. Кроме программы просмотра библиотека содержит программы для типовых преобразований файлов базы данных.

Рис. 3. Исходная таблица

Рис. 4. Подтаблица для Иванова

Рис. 5. Подтаблица для Сидорова

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

Автоматический расчет. Программа просматривает все строки базы данных и выполняет все локальные программы. Вычислительные возможности подробно описаны в [4].

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

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

Формирование иерархической базы. Программа создает и заполняет данными новую иерархическую базу. Данные берутся из входной таблицы. В задании записываются макеты создаваемой базы и макет входной таблицы. В макете показателей входной таблицы указано их место в новой таблице.

Выгрузка. Данные вместе с информацией об их месте в иерархии выгружаются из базы в текстовый файл.

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

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

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

Копирование файлов.

Удаление файлов.

Вывод файла на принтер.

Создание архивных копий.

Восстановление из архивных копий.

Обработка данных в формате Excel.

Особое место занимает последняя программа, позволяющая передать данные в Excel. Задание к этой программе пишется на наглядном языке, который позволяет имитировать простую работу пользователя в Excel. Приведем простой пример такого здания:

ExcelProg

:Создать Otchet. xls

:Записать 2 4 Отчет по зарплате

:Записать 3 4 Сумма

:Записать 3 5 20000 руб.

:Покрасить: 2 4 3 5 желтый

:Сохранить

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

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

1.:? Выполнить расчеты

1.1. * Выгрузить из базы исходные данные для ЛП

1.2. * Запустить стандартный симплекс-метод

1.3. * Загрузить результаты в базу

Другим примером могут служить ситуации с передачей отчетов в вышестоящие органы в виде компьютерных файлов. В бухгалтерских АРМ нам приходилось часто писать маленькие программы для «причесывания» отчетных файлов, форматы которых так любят менять вышестоящие органы.

Программирование и эксплуатация АРМ

Концепция системы ВИК предопределяет вполне четкую технологию программирования. Эта технология предполагает наличие множества модулей, часть из которых могут быть типовыми, часть — созданными для одноразового использования. А оболочка используется как удобный инструмент для запуска нужных модулей.

Следует отметить, что программирование в системе ВИК весьма и весьма технологично. Программист хорошо видит и читает любой АРМ, он может прервать свою работу в любой момент, легко ее продолжить даже после большого перерыва, подключиться к работе над АРМ, даже если начинал работу другой программист. В ВИКе ни разу не возникали трудности и неразрешимые проблемы с тем, чтобы разобраться и продолжить работу с имеющимся АРМ.

При создании конкретного АРМ структуру с ее файлами помещают в отдельную папку. Содержимое этой папки по существу можно воспринимать как записанный на языке ВИК текст программы, реализующей данный конкретный АРМ. Именно с этой структурой и ее файлами имеют дело программисты. Они создают и модифицируют структуру, записывают в файлы пунктов имена программ, которые должны запускаться в этих пунктах, параметры для этих программ, адреса исходных данных и результатов. В то же время в файлах пунктов структуры могут размещаться данные, предназначенные для конечного пользователя. Например, в файл пункта можно поместить текстовый документ, представляющий результат работы предыдущего пункта, для того чтобы пользователь посмотрел на него, прежде чем вывести на принтер.

…………………

1. Формирование предварительного отчета по сдельной зарплате

2. Посмотреть предварительный отчет (F3)

3. Вывести предварительный отчет на принтер

……………………………

При запуске первого пункта результат направляется в файл второго пункта. Пользователь может нажать F3 и посмотреть результат. Иногда в результат надо что-то добавить вручную, например фамилию работника, подготовившего отчет.

Понятно, что конечному пользователю АРМ не нужно иметь доступ к текстовым файлам, которые являются текстами заданий. В нашем примере тексты первого и третьего пунктов должны быть доступны только программисту. Для разграничения прав конечного пользователя и программиста оболочка имеет два штатных режима — режим программирования и режим эксплуатации. В первом режиме доступны все средства, во втором ограничивается доступ ко всем средствам, обеспечивающим изменение структуры и функций АРМ. В большинстве случаев этих штатных режимов вполне достаточно для нормальной работы. Следует пояснить, что мы разделяем конечного пользователя и программиста по их роли в создании и эксплуатации АРМ, так как бывают случаи, когда эти роли исполняет один человек. В отдельных случаях продвинутый конечный пользователь может сам вводить изменения в тексты заданий, получив инструкцию у программиста по телефону или электронной почте. Это существенно облегчает жизнь им обоим. Так, например, добавить в АРМ предварительный просмотр отчета перед выводом его на принтер вполне под силу конечному пользователю. Бывали случаи, когда на просьбу бухгалтера внести изменение в программу ему по телефону передавалась примерно такая фраза: «В пункте 3.1.4 открыть файл, в 41 строке все стереть и ввести цифры 1304050201». Бухгалтер вносил исправление, сообщал, что все в порядке, и продолжал работать.

Если же ведется разработка сложного комплекса автоматизированных рабочих мест, при этом рабочих мест достаточно много и работа ведется коллективом программистов, можно использовать дополнительные служебные функции, позволяющие настроить разделение доступа более тщательно. К примеру, имеется возможность затруднить включение режима программирования в данном АРМ, а именно настроить оболочку так, чтобы для включения этого режима нужно было ввести имя и пароль программиста. Имеются средства, обеспечивающие безопасность АРМ при оперативном вмешательстве в его работу программиста. Представим себе ситуацию, когда конечный пользователь просит программиста внести небольшое изменение в АРМ непосредственно на своем рабочем компьютере. Например, пользователь просит ввести некоторые изменения в расчеты. Программист вводит свои имя и пароль, открывает режим программирования и делает эти изменения. Оболочка заранее настроена на то, чтобы при включении режима программирования автоматически создавалась страховочная копия рабочей папки, а после завершения работы и при переходе в режим эксплуатации заносились в протокол текущая дата и имя страховочного. Если при вмешательстве программиста были допущены ошибки, то сохраняется возможность вернуться к исходному состоянию.

Из вышесказанного следует, что система ВИК обеспечивает быстрый и эффективный стиль программирования, и мы, создавая эту систему, как бы пропагандируем такой стиль. Действительно, действие происходит так. Программист заходит на минутку в офис. Пользователь спрашивает его: «Можешь мне устроить просмотр текста перед печатью?» Программист: «Легко. Вот смотри, уже готово». Пользователь: «А если что-то сломалось?» Программист, уходя: «Нажимай пункт „Отменить изменения“…» Если бы АРМ был реализован в виде традиционного exe-файла, то программисту надо было бы посмотреть исходный текст, найти в этом тексте процедуру вывода на принтер и разбираться с этой процедурой, чтобы добавить в нее команды вывода данных на экран. В нашем примере достаточно нажать на клавишу F3, чтобы узнать имя выводимого файла, создать в структуре новый пункт, записать в него задание для вывода этого файла на экран, причем все это, не трогая остального. Да, действительно, мы предлагаем систему, позволяющую быстро создавать и запускать в эксплуатацию АРМ, быстро его дополнять, изменять, улучшать непосредственно в процессе эксплуатации. Мы предлагаем делать это при продуктивном сотрудничестве программиста и конечного пользователя, при котором не успеет пользователь что-то попросить, как программист это уже сделал. Мы призываем не ждать, когда будет составлено полное техническое задание, и сразу начинать работу над тем, что понятно и ясно. Прошло 20 лет, но мы, авторы, не перестаем удивляться и восхищаться тем, с какой легкостью вносятся дополнительные функции или изменяются существующие. Делаешь страховочную копию. Открываешь действующий АРМ, ничего не трогаешь из того, что работает. Создаешь в нужном месте новый пункт структуры, его рабочие подпункты. В текстовых файлах этих подпунктов прописываешь новые инструкции, как правило, по известным, привычным рецептам. Часто значительная часть инструкций просто копируется из других пунктов этого же АРМа. Действительно, если в АРМе уже есть подготовка и печать сводных форм, то чтобы сделать новую форму, можно скопировать все инструкции в новые пункты и просто внести в них нужные настройки.

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

Особенности некоторых проектных решений

При разработке среды ВИК имели место определенные осознанные тенденции выбора конкретных проектных решений. Они также были продиктованы необходимостью усилить «живучесть» разрабатываемых приложений. Перечислим основные из них.

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

Распределение ресурсов. Файлы программного комплекса могут располагаться на любой совокупности технических средств: и на локальном компьютере, и на сервере локальной сети, и на сайте в интернете. Практически речь конечно идет о разумном уровне распределения ресурсов, который устанавливается, исходя из конкретных условий и здравого смысла.

Подключение рабочих мест в режиме «разъема». Под рабочим местом подразумевается приложение, предоставленное в постоянное распоряжение конкретному работнику. В среде ВИК нет никаких условий и ограничений для организации таких рабочих мест. Если возникает необходимость взять на работу нового сотрудника и определить его обязанности, то это можно делать, не нарушая рабочего ритма и функционирования всего комплекса. Как включение вилки в розетку.

Управление доступом

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

Рис. 6. Новый АРМ «Регистрация отчетов по грантам»
Бесплатный фрагмент закончился.
Купите книгу, чтобы продолжить чтение.
электронная
Бесплатно
печатная A5
от 261
Купить по «цене читателя»

Скачать бесплатно: