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

Что легче - собрать машину из готовых деталей или разработать свои и создать нестандартное авто? Кому как нравится! Фирма "1С" предлагает универсальный интегрированный "конструктор" - технологию V7 для разработки ее экономических программ.

Истоки

Если наиболее известный продукт фирмы "1С: Бухгалтерия" изначально создавался как универсальная бухгалтерская программа, то два новых продукта - "1С: Торговля" и "1С: Расчет" - уже реализованы в технологии V7. В первом случае программа разработана с использованием представлений об основах бухгалтерского учета; особенности же современного учета рассматривались в качестве настроек программы, которые мог производить и сам пользователь (в результате за пять лет существования программы ни одно нововведение в законодательстве не потребовало изменений собственно программы).

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

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

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

Концепция

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

На среднем слое располагается прикладная подсистема, формирующая предметную направленность программного продукта и включающая в себя такие понятия, как, например, регистры учета (для "1С: Торговля") или журналы расчетов (для "1С: Расчет").

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

Таким образом, программные продукты, базирующиеся на V7, отличаются от программ с жестко определенной логикой работы, предписываемой исходным текстом программы. Однако их нельзя причислить и к универсальным средствам разработки, таким как, скажем, Borland Delphi. Конечно, для обеспечения возможности конфигурирования под различные особенности использования продукты "1С" имеют и настраиваемые структуры данных, и редакторы входных и выходных форм, и встроенный язык программирования. Но в отличие от традиционных систем разработки приложений в качестве категорий, с помощью которых определяется структура хранимой информации, используются не таблицы и поля таблиц, а обобщенные понятия предметной области - справочник, документ, расчет, журнал, регистр и т. п. При этом все базовые операции над ними система выполняет сама. При настройке (конфигурировании) описываются собственно структуры этих объектов и специфические алгоритмы их обработки. В результате конфигурирование, например, системы "1С: Торговля" для учета наличия и движения товаров выполняется значительно быстрее, чем создание приложения для решения той же задачи с помощью какого-либо универсального средства разработки программ.

Конфигурирование системы

Одним из основных условий технологии V7 является разделение всей работы системы на конфигурирование и собственно исполнение. На этапе конфигурирования описываются структуры данных, формы ввода и вывода информации, алгоритмы обработки и другие особенности системы. На этапе исполнения проводится непосредственная работа с данными - заполнение справочников, ввод документов, формирование отчетов.

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

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

Структура данных

Можно сказать, что прикладные системы, созданные на базе V7, могут работать с условно-переменными структурами данных. Это означает, что система поддерживает набор объектов, характерных для какой-либо предметной области (справочники, документы).

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

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

Итак, еще одним из основных условий в технологии является описание структур обрабатываемых данных в категориях предметной области и работа с описанными видами объектов как с типами данных.

Обработка информации

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

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

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

Настройка форм ввода информации

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

Настройка выходных форм

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

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

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

Встроенный язык

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

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

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

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

Механизм запросов

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

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

Пользовательский интерфейс

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

Контроль прав и доступа

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

Авторизация пользователей

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

Система помощи

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

Взаимодействие с другими системами

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

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

Наиболее мощное средство общения с другими системами в технологии V7 - работа в режиме OLE Automation. Продукты на основе V7 могут выступать серверами и контроллерами OLE Automation. При работе в качестве контроллера прикладная система, например "1С: Торговля", может осуществлять доступ к другим приложениям, выступающим серверами OLE Automation. Так, отчеты формируются непосредственно в Excel, или с помощью внешнего средства разработки (например, Visual Basic) пишутся наборы функций, расширяющие возможности встроенного языка.

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

Одним из примеров использования средств взаимодействия с другими программами явилось сопряжение системы "1С: Торговля" с кассовыми аппаратами, которое было выполнено без модификации собственно системы, а исключительно за счет написания соответствующих алгоритмов на встроенном языке с использованием средств OLE Automation.

Расширение возможностей

При разработке технологии V7 была предусмотрена возможность оперативного развития системы. Так, например, уже после выхода "1С: Торговля" для сопряжения ее со сканерами штрих-кодов была разработана дополнительная программа, динамически подключаемая к системе, способная принимать сигналы от сканера и вызывающая необходимые действия пакета "1С: Торговля".

А теперь все вместе

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

В рамках технологии V7 разработан подход, обеспечивающий полностью совместную работу различных продуктов. Он был заложен в технологию V7 с самого начала, однако стал очевидным только после создания второго продукта на базе V7 - "1С: Расчет".

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

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


Сергей Нуралиев, Дмитрий Русанов - сотрудники фирмы "1С". Контактный тел.: (095) 253-89-76.