Продолжается подписка на наши издания! Вы не забыли подписаться?

Фирма “РеПКА”

Бизнес–Конструктор “КОРИФЕЙ”:
МАГИЯ СПРАВОЧНИКОВ


Данная статья продолжает серию публикаций о бизнес–конструкторе “Корифей”. В предыдущей статье (опубликована в номере 3/99) описаны встроенные в бизнес–конструктор средства автоматического ситуационного контроля и анонсирован настоящий материал.

Общие сведения

Для читателей, не знакомых с этими публикациями, отметим, что БК “Корифей” является конструктором, полностью выполненным стандартными средствами СУБД Oracle (конструкторами принято называть инструментальные программные средства, рассчитанные на конфигурирование в разрезе индивидуальных потребностей заказчика, подобно тому, как из типовых деталей детского конструктора можно изготовить различные устройства). Первое успешное внедрение версии 1 закончено в марте 1991 года, версия 12.3 названа в числе финалистов престижного международного конкурса “Бизнес-Софт`97”. БК “Корифей” включает в себя поддержку 16-мерного расширяемого аналитического пространства, встроенные технологии хранилищ данных (Data Warehouse), средства оперативного анализа, объектно-ориентированный макроязык, 2 рассчитанных на непрограммиста генератора отчетов (отчеты в произвольных стандартах, в том числе GAAP), развитые средства регламентации доступа, средства интеграции с другими программными продуктами сторонней разработки, неограниченное количество настраиваемых пользователем справочников, поддерживает технологию виртуальных АРМ и так далее. БК “Корифей” выполнен по инверсной (относительно стандартной) технологии, благодаря чему этап постановки задачи, когда учитываются специфические потребности пользователя, совмещен с периодом внедрения и промышленной эксплуатации у заказчика. Попутно обеспечивается стопроцентная независимость пользователя программы от разработчика, поскольку обученный персонал заказчика может наращивать функциональность самостоятельно в любом необходимом направлении.

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

Что такое справочник

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

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

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

Обобщенная структура обычного справочника представляется следующей (см. рис. 1):

Обязательная часть

Переменная часть

Ключ (уникальный код)

Наименование

Свойство 1

Свойство 2

...

Свойство N

Рис. 1

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

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

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

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

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

Требования к идеальному справочнику

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

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

Традиционные модульные программы или конструктор?

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

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

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

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

Как расширяются справочники

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

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

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

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

Такой возможностью обладают программы-конструкторы, в частности БК “Корифей”, в котором настройка справочников (добавление новых, модернизация существующих) является стандартной обязанностью администратора системы или привилегированного пользователя, которому администратор предоставит права доступа к соответствующим пунктам главного меню.

Устройство справочников в БК “Корифей”

Чтобы полностью исключить необходимость изменения программного кода при выполнении действий по адаптации справочников к новым условиям, устройство справочников БК “Корифей” отличается от вышеописанного: вместо одной таблицы используются две (в первой /главной/ таблице содержится обязательная часть справочника, а во второй /подчиненной/ таблице размещена переменная часть). Таким образом, переменная часть настраиваемого справочника БК “Корифей” перевернута на 90 градусов (вместо горизонтали используется вертикаль). Общий принцип построения такой двухтабличной структуры изображен ниже (рис. 2).

Обязательная часть

Ключ (уникальный код)

Наименование

Переменная часть

Ключ

Свойство1

Ключ

Свойство2

Ключ

...

Ключ

СвойствоN

Рис. 2

При использовании подобной структуры справочника из двух таблиц преимуществами является как неограниченное количество свойств в составе переменной части (отметим, что максимальное количество столбцов таблицы в любой СУБД ограничено), так и отсутствие необходимости модернизировать программу для поддержки работы с новыми (введенными самим пользователем) свойствами объектов, накапливаемых в справочнике. Другими словами, новая потребность пользователя удовлетворяется стандартными средствами БК “Корифей” в момент своего возникновения.

Примечание. Словарь базы данных Oracle устроен с преимущественным использованием подобных вышеприведенной структур таблиц. Поэтому скорость поиска в подобном двухтабличном справочнике при грамотной настройке сервера Oracle достаточно высока. В то же время при необходимости двухтабличная вертикальная структура легко сворачивается в горизонталь при помощи представлений (view), создаваемых пользователем средствами встроенного в СУБД Oracle языка SQL.

Возможности БК “Корифей” по структурированию данных внутри справочника

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

В то же время состав реквизитов переменной части каждого такого подсправочника в общем случае может быть различным. В связи с этим в БК “Корифей” заложена возможность задания нескольких альтернативных наборов свойств/реквизитов (вариантов состава свойств) для объектов одного и того же справочника.

Таким образом пользователь получает возможность выбора подходящего набора свойств для каждого вводимого в справочник объекта. Это позволяет применять БК “Корифей” для решения управленческих задач, напрямую не связанных с бухгалтерией (например, с технологической подготовкой производства, планово-аналитическими вопросами и так далее).

Как на частный случай описанного подхода обратим внимание на интересное следствие — поскольку каждый подсправочник может рассматриваться как самостоятельный справочник вне связи с другими, мы получаем удобный инструмент расширения размерности аналитического пространства БК “Корифей”, который не требует преобразования ранее накопленных данных.

Отметим, что разные варианты состава свойств/реквизитов переменной части могут быть использованы и без разбиения справочника на подсправочники, что существенно расширяет область применения справочников БК “Корифей”.

Надежность как следствие повышения уровня автоматизации

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

Множественность и многозначность.

На рис. 3 приведен пример применения разных вариантов реквизитов (свойств) в переменной части справочника поставщиков.

Поставщики (Обязательная часть)

Код

Наименование

СЕЛЬХОЗПРОДУКТ

АО “Сельхозпродукт”

ИВАНОВ

Фермер Иванов

Поставщики (Переменная часть)

Код

Вар.

Свойство

Значение

СЕЛЬХОЗПРОДУКТ

1

Адрес

123456, Калуга, ул. Вокзальная, д.2

СЕЛЬХОЗПРОДУКТ

1

ИНН

9187654321

СЕЛЬХОЗПРОДУКТ

1

Директор

Сергеев Михаил Викторович

СЕЛЬХОЗПРОДУКТ

1

WWW

http://www.selhozprodukt.ru

СЕЛЬХОЗПРОДУКТ

1

ТОВАР

ГРЕЧКА

СЕЛЬХОЗПРОДУКТ

1

ТОВАР

МАСЛО ПОДСОЛНЕЧНОЕ

СЕЛЬХОЗПРОДУКТ

1

ТОВАР

ПШЕНИЦА

СЕЛЬХОЗПРОДУКТ

1

ТОВАР

ГОРОХ

ИВАНОВ

2

Адрес

123654, Московская область, село Михайловка, ул. Центральная, 5

ИВАНОВ

2

ФИО

Иванов Иван Иванович

ИВАНОВ

2

ИНН

916123556677

ИВАНОВ

2

E-MAIL

IVANOV@FARMER.RU

ИВАНОВ

2

ТОВАР

СВИНИНА

ИВАНОВ

2

ТОВАР

КАРТОФЕЛЬ

Рис. 3

Сопоставляя варианты (наборы свойств) 1 и 2, видим, что они отличаются как по общему количеству, так и по составу свойств одновременно. Часть свойств (Адрес, ИНН, ТОВАР) присутствует в обоих вариантах, другая (Директор, ФИО, WWW, E-MAIL) имеется только в одном из вариантов, поскольку в другом не имеет смысла.

Заметим, что свойство ТОВАР повторяется в первом варианте 4 раза, а во втором только 2. Можно сделать вывод, что в общем случае заранее неизвестно, сколько экземпляров свойства ТОВАР будет у поставщика. Поэтому БК “Корифей” предусматривает возможность РАЗМНОЖЕНИЯ ЭКЗЕМПЛЯРОВ СВОЙСТВ конкретного объекта, которые администратор системы объявил множественными.

Встречаются случаи, когда свойство имеет несколько разнотипных значений одновременно (например, свойство Адрес может состоять из реквизитов Индекс, Область, Район, Населенный_Пункт, Улица, Дом, при этом Индекс — шестизначная цифра, Дом — четырехзначная цифра, все остальные — символьные разной длины), то есть является многозначным. При размножении такого многозначного свойства в базе данных БК “Корифей” создается и заполняется дополнительный экземпляр каждого входящего в него реквизита.

Справочники как средство комплектации

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

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

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

Товары для продажи (Обязательная часть)

Код

Наименование

СТУЛ

СТУЛ МЯГКИЙ

СТОЛ

СТОЛ ПИСЬМЕННЫЙ ОДНОТУМБОВЫЙ

ШКАФ

ШКАФ КНИЖНЫЙ ЗАСТЕКЛЕННЫЙ

КАБИНЕТ

КОМПЛЕКТ МЕБЕЛИ ДЛЯ КАБИНЕТА

Товары для продажи (Переменная часть)

Код

Свойство

Реквизит

N Экз.

Название

Значение

СТУЛ

1

1

1

ВИД

ТОВАР

СТОЛ

1

1

1

ВИД

ТОВАР

ШКАФ

1

1

1

ВИД

ТОВАР

КАБИНЕТ

1

1

1

ВИД

КОМПЛЕКТ

КАБИНЕТ

2

1

1

КОД

СТУЛ

КАБИНЕТ

2

2

1

КОЛ–ВО

3

КАБИНЕТ

2

1

2

КОД

СТОЛ

КАБИНЕТ

2

2

2

КОЛ–ВО

1

КАБИНЕТ

2

1

3

КОД

ШКАФ

КАБИНЕТ

2

2

3

КОЛ–ВО

1

Рис. 4

Обратите внимание, что свойство 1 (ВИД) присутствует везде в одном экземпляре и состоит из одного единственного реквизита (не является ни множественным, ни многозначным), а свойство 2 (КОД, КОЛ-ВО) состоит из двух реквизитов и имеет несколько экземпляров по количеству предметов в составе комплекта (то есть является множественным и многозначным одновременно).

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

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

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

Поскольку БК “Корифей” не накладывает никаких ограничений на количество комплектов в справочнике, возможно иерархическое вложение одних комплектов в другие. Например, комплект мебели для всей квартиры может включать в себя комплект-прихожую, комплект-кухню и комплект-спальню. При этом рекомендуется для редактирования состава комплектов создавать отдельные хозяйственные операции, в которых необходимо предусмотреть алгоритмическую блокировку ЗАЦИКЛИВАНИЯ, то есть проверку на одновременное наличие встречных ссылок различных комплектов друг на друга.

Другие применения справочников -
Контроллинг и бюджетирование

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

В этих и подобных им случаях справочники могут использоваться в качестве хранилища данных “как надо”, а сопоставление с реальным положением дел “как есть” автоматически выполнит подсистема ситуационного контроля “Пульс” (описана в предыдущем номере журнала).

Возможно также использование системы взаимосвязанных справочников для хранения информации “как надо” и “как есть” одновременно. При этом варианте ускоряется обработка, но пропадает весьма полезная возможность БК “Корифей”— поддержка параллельной работы разных пользователей в различных учетных периодах, поскольку накопительная информация “как есть” относится к последнему моменту работы.

Проиллюстрируем разницу в подходах на примере всем известной главной книги.

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

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

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

В заключение отметим, что поиск по коду (наиболее частая поисковая операция) в двухтабличном справочнике выполняется быстрее, чем в обычном однотабличном, поскольку объем обрабатываемой информации в таблице с обязательной частью составляет не более 50 % от общего объема дисковой памяти, занимаемого справочником в целом (в случае применения уникального индекса на поле КОД в таблице с обязательной частью, как это сделано в БК “Корифей”, скорость поиска еще более возрастет).

Многострочность значений
Технологии документооборота

В информационных технологиях документооборота широко распространена практика автоматического формирования текста документов из типовых фрагментов текста программно-алгоритмическим путем (в базе данных хранится набор различных формулировок на все случаи жизни, а выходной документ создается автоматически путем последовательного включения подходящих типовых формулировок с одновременным добавлением нетиповой информации). Хранение таких типовых формулировок в виде отдельных фрагментов текста справочниками БК “Корифей” обеспечивается за счет возможности задания многострочных значений символьных реквизитов.

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

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

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

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

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

Многострочный реквизит в справочнике типовых фрагментов

@ПРЕДПРИЯТИЕ, в лице @ДОЛЖНОСТЬ @ДИРЕКТОР, с одной стороны, и @МЫ, с другой стороны, заключили настоящий договор о нижеследующем...

Значения для подстановки (частично введены пользователем, остальное — из справочника постоянных значений или глобальных параметров системы)

Идентификатор подстановки

Подставляемое вместо него значение

@ПРЕДПРИЯТИЕ

АО “Сельхозпродукт”

@ДОЛЖНОСТЬ

Генерального директора

@ДИРЕКТОР

Сергеева Михаила Викторовича

@МЫ

ООО “Сервис” в лице директора Корифеева Корифея Корифеевича

В результирующем документе получилось

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

Рис. 5

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

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

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

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

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

Интеграция со сторонними программными средствами

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

В то же время средства БК “Корифей” позволяют при необходимости создавать и поддерживать работу с дополнительными таблицами (или представлениями — view) в базе данных, создаваемыми пользователем для решения собственных специфических задач (чтобы сделать эти таблицы доступными из макроязыка, администратору или имеющему соответствующие привилегии доступа пользователю достаточно в диалоге ввести данные об этих таблицах и представлениях в макрокаталог базы данных БК “Корифей”, а также задать права доступа к ним для других пользователей Oracle). Такие таблицы также могут использоваться в качестве справочников узкоспециализированного назначения (без автоматической поддержки вышеописанной двухтабличной модели, которая в таких случаях по опыту работы обычно бывает не нужна).

Таким образом, БК “Корифей” может интегрироваться с другими программными продуктами, используемыми заказчиком, при поддержке возможности совместного применения одних и тех же справочников.

Многомерная аналитика

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

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

Например, отпуск материалов на производственные нужды осуществляется со склада номер 5 кладовщиком Петровым для выполнения работ по договору номер 895Б/99, а получает материалы кладовщик 1-го цеха Иванов, причем указанное действие выполняется в рамках государственной программы и частично финансируется из госбюджета (то есть для отчета перед заказчиком потребуется составить смету фактических затрат, иначе возмещение из бюджета получить не удастся), кроме того, для данного вида деятельности предусмотрены налоговые льготы. Соответственно, проводка, описывающая данную ситуацию, кроме обычных данных (дебетовый и кредитовый субсчета, дата, сумма, физическое количество, если учет ведется в натуральных измерителях) должна содержать всю перечисленную информацию (рис. 6).

Аналитика

Значение

Пояснение

подразделение

склад 5

откуда

материально-ответственные лица

кладовщик Петров

откуда

подразделение

цех 1

куда

материально-ответственные лица

кладовщик Иванов

куда

номенклатура

нитроэмаль

что

договора

895б/99

уточнение

финансирование

госбюджет

уточнение

вид деятельности

льготируемый

уточнение

Рис. 6

Все указанные в таблице данные уточняют смысл указанной проводки и используются параллельно с аналитикой субсчетов, причем каждое значение в своей области. Прибегая к графической аналогии, одна и та же проводка одновременно содержит в себе информацию о положении и перемещении по разным координатным осям (ось “Подразделение” отражает перемещение из точки “Склад 5” в точку “Цех 1”, ось “Материально ответственные лица” содержит перемещение из точки “кладовщик Петров” в точку “кладовщик Иванов” и так далее).

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

Различные координатные оси (“Подразделение”, “Материально ответственные лица” и др.) представляются средствами БК “Корифей” в виде отдельных настраиваемых пользователем аналитических справочников, а проводка содержит в закрепленных за каждым из этих справочников полях ссылки на хранящиеся в справочниках соответствующие записи (код записи про кладовщика Иванова, код записи о Складе 5 и так далее).

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

Аналитику с двумя признаками в проводке на один аналитический справочник назовем дебет-кредитной аналитикой (“Подразделение”, “Материально ответственные лица” и другие), а с одним аналитическим признаком — общепроводочной аналитикой (“Договор”, “Вид деятельности” и другие). Отметим, что общепроводочная аналитика задает одну точку соответствующей оси координат (положение), а дебеткредитная — пару точек (перемещение). Поэтому общепроводочную аналитику теоретически можно заменить на дебет-кредитную, у которой точки “откуда” и “куда” совпадают (перемещение равно нулю), то есть два аналитических признака в проводке имеют одно и то же значение.

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

В БК “Корифей” предусмотрена возможность задания в проводке до 6 общепроводочных и 10 дебеткредитных аналитических признаков одновременно (всего 26 аналитических полей). Поэтому (6+10=16) мы говорим о поддержке Бизнес-Конструктором “Корифей” 16-мерного аналитического пространства.

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

С учетом того, что максимальный размер аналитического признака составляет 20 символьных позиций (по две дополнительных позиции на каждый подсправочник), то максимальная степень их вложенности составляет 10, размерность аналитического пространства в этом случае будет 16 * 10 = 160, а (по одной дополнительной позиции на подсправочник) максимально возможная размерность аналитического пространства БК “Корифей” равна 320. Другими словами, БК “Корифей” обеспечивает возможность решать учетно-аналитические задачи в трехсотдвадцатимерном аналитическом пространстве. При этом признаками для выделения нужных данных из общего накопленного объема могут служить не только сами значения аналитик, но и их всевозможные сочетания (которые в принципе можно рассматривать как дополнительные к существующим оси координат). При необходимости в качестве общепроводочных аналитических признаков дополнительно к указанным шести можно использовать другие поля проводки, например, метку варианта, признак утверждения, код учетной организации и другие. Поэтому реальная совокупная размерность аналитического пространства будет несколько выше.

Заметим, что дебетовая и кредитовая ссылки на план счетов в проводке (номера счетов по дебету и кредиту) в свете описанного подхода можно рассматривать как еще одну дебет-кредитную аналитику специального назначения, код учетной организации — как дополнительную общепроводочную аналитику и так далее. В свете описанных возможностей аналитика субсчетов (БК “Корифей” поддерживает до 10 уровней вложения субсчетов) будет использоваться преимущественно для задания условно постоянных “точек отсчета” (с учетом ограничений Минфина на разбиение плана счетов по субсчетам), в то время, как остальные аналитические признаки будут отвечать за более динамично изменяющиеся специфические условия бизнеса.

Заключение

В заключение хочется отметить, что возможности применения справочников БК “Корифей” далеко не исчерпываются описанными в статье. Однако перечисленного, как мне кажется, достаточно, чтобы оценить перспективность и мощность данного инструмента для решения финансово–аналитических, управленческих, технологических и других задач с полноценным учетом индивидуальных особенностей развивающегося предприятия.

Статья подготовлена по состоянию на сентябрь 1999 года, поэтому к моменту ее публикации описанные возможности БК “Корифей”, скорее всего, будут частично расширены. Следующая статья будет посвящена работе БК “Корифей” в среде Internet/Intranet.

Александр Медведев,
Руководитель проекта “Корифей”



Copyright © 1994-2016 ООО "К-Пресс"