Архитектуры системы программ «1С: Предприятие»
Система «1С: Предприятие» поддерживает два варианта работы: файловый и клиент-серверный.
Файловый вариант работы с информационной базой рассчитан на персональную работу одного пользователя или работу небольшого количества пользователей в локальной сети. В этом варианте все данные информационной базы (конфигурация, база данных, административная информация) располагаются в одном файле (рис. 2.4).
Рис. 2.4. Файловый вариант работы
В файловом варианте тоже можно вести реальную учетную работу, но он не предоставляет всех возможностей по масштабируемости, защите данных, какие имеет клиент-серверный вариант. Поэтому он используется на малых предприятиях.
Клиент-серверный вариант предназначен для использования на средних и крупных предприятиях. Он реализован на основе трехуровневой архитектуры «клиент-сервер» (рис. 2.5)
Рис. 2.5. Трехуровневая архитектура 1С: Предприятия
Клиент-серверный вариант работы - это основной вариант работы в многопользовательской среде с большим объемом данных. Он предоставляет абсолютно все возможности по масштабируемости, администрированию и защите данных. Однако он требует значительных усилий по установке и администрированию.
При этом физически серверная и клиентские части системы 1С: Предприятие 8 могут располагаться как на разных компьютерах, так и на одном. Главное, что пользователь не имеет непосредственного доступа к серверу баз данных, и это позволяет обеспечивать безопасность данных. А в файловом варианте база данных должна находиться на некотором общем сетевом ресурсе, доступном пользователям.
Система 1С: Предприятие изначально рассчитана на клиент-серверный вариант работы. Хотя можно разрабатывать конфигурацию в файловом варианте работы и она будет работать и в клиент-серверном варианте без дополнительных доработок.
Это достигается за счет того, что конфигурация разрабатывается всегда исходя из клиент-серверной архитектуры. В системе 1С:Предприятие просто нет возможности разрабатывать ее и по-другому. И в том случае, когда используется файловый вариант работы, система при исполнении прикладного решения просто «имитирует» наличие сервера на клиентском компьютере.
Клиент-серверная архитектура разделяет всю работающую систему на три различные части, определенным образом взаимодействующие между собой, - Клиент, Сервер 1С: Предприятия и Сервер баз данных.
Клиентское приложение - это программа, часть системы 1С:Предприятие. Основное ее назначение - организация пользовательского интерфейса, отображение данных с возможностью их изменения. Кроме этого, клиентское приложение может исполнять код на встроенном языке (то есть какие-то алгоритмы разработчика), но оперирует при этом лишь очень ограниченным пространством типов встроенного языка. Такой подход позволяет клиентскому приложению быть очень «легким», не требовать много ресурсов, обращаться к Интернету и работать даже в среде веб-браузеров.
Клиентское приложение взаимодействует с сервером 1С:Предприятия. Сервер 1С:Предприятия - это тоже программа, часть системы 1С :Предприятие.
Одна из основных задач этой программы - передавать запросы от клиентского приложения к серверу баз данных и возвращать обратно клиенту результаты этих запросов.
Другая задача сервера - исполнение большинства алгоритмов на встроенном языке, подготовка данных для отображения форм, отчетов и т.д. То есть, все сложные вычисления, требующие непосредственной работы с данными, исполняются именно на сервере. При этом на сервере доступно практически все пространство типов встроенного языка 1С:Предприятия, за исключением, чисто интерфейсных типов, потому что у сервера нет никакой интерфейсной части, так как он общается не с пользователями, а только с другими программами: клиентским приложением и с сервером баз данных.
Сервер баз данных - это тоже программа. Она уже не является частью 1С:Предприятие, это специализированная программа, поставляемая сторонними производителями. Ее основное назначение организация и ведение баз данных - структурированных наборов данных, описывающих характеристики каких-либо физических или виртуальных систем. В настоящее время система 1С: Предприятие может работать со следующими серверами баз данных: Microsoft SQL Server, PostgreSQL, IBМ DB2, Oracle Database. File DBMS.
У каждого общего модуля конфигурации, существует набор свойств: Клиент (управляемое приложение), Сервер и Внешнее соединение. Значения этих свойств (истина/ложь) определяют, где будут скомпилированы экземпляры модулей.
Все, что разработано и написано в конфигурации пока только некая «заготовка». Платформа запускаемая в режиме 1С:Предприятие, превращает все это в программу, которую уже можно исполнить на компьютере, - компилирует. При этом есть разные части системы, в которых исполняется код – сервер и клиентские приложения. Поэтому для общих модулей необходимо в явном виде указать, на какой «стороне» они должны быть скомпилированы - на сервере или клиенте.
Если установить свойство Клиент (управляемое приложение), то экземпляры этого модуля будут скомпилированы только на стороне клиента в контекстах тонкого клиента и веб-клиента. Если у модуля установлено только свойство Сервер, то модуль будет скомпилирован только на стороне сервера.
Клиентских приложений – три: Толстый клиент (1cv8.exe), Тонкий клиент(1cv8с.exe) и Веб-клиент.
«Толстым» клиент называется потому, что может исполнять всю функциональность встроенного языка, в том числе работать с типами данных СправочникОбъект.<имя>, ДокументОбъект.<имя>. Он требует значительных ресурсов на компьютере пользователя.
Тонкий клиент требует значительно меньше ресурсов, так как он исполняет ограниченный набор функциональности встроенного языка, предназначенный лишь для отображения и изменения данных в оперативной памяти. Вся работа с базой данных выполняется на стороне сервера.
Веб-клиент не существует в виде файла, потому что он исполняется не в среде операционной системы, а в среде интернет-браузера. Пользователю достаточно всего лишь запустить свой браузер, ввести адрес веб-сервера, на котором опубликована информационная база и веб-клиент скачается к нему на компьютер и начнет исполняться.
Форма (документа или справочника) существует и на сервере, и на клиенте одновременно. Поэтому для каждой процедуры, которая существует в модуле формы, нужно указывать в явном виде контекст ее исполнения: на сервере или на клиенте. Наличие директив &НаКлиенте или &НаСервере или &НаСервереБезКонтекста связано с тем, что при использовании встроенного языка в модуле формы клиентский код должен быть четко отделен от серверного. Таким образом, указав одну из директив, разработчик в явном виде программирует серверную или клиентскую части.
В модуле формы одновременно можно поместить процедуры с различными директивами исполнения и передавать выполнение кода с клиента на сервер. Также из клиентской процедуры модуля формы можно вызвать процедуру общего модуля, которая может выполняться как на клиенте, так и на сервере, в зависимости от установленных свойств модуля Тонкий клиент или Сервер.
После запуска прикладного решения выполнение кода всегда начинается на клиенте. В процессе работы выполнение кода может быть передано на сервер посредством вызова процедуры общего модуля, скомпилированного на сервере.
При вызове процедуры или функции её поиск осуществляется сначала на клиенте. Если скомпилированный контекст клиента не содержит данную процедуру, то поиск продолжается на стороне сервера. Если вызываемая процедура будет найдена, то выполнение кода будет передано на сервер. После завершения процедуры выполнение кода продолжится на клиенте.
2.4. Платформенно-зависимая модель «1С: Предприятие»
Среда разработки «1С: Предприятия» – Конфигуратор, обеспечивает создание приложений на основе платформенно–зависимой модели. Собственно модель соответствует структуре конфигурации, которая доступна программисту для разработки и просмотра в специальном инструменте – окне дерева конфигурации. Дерево конфигурации состоит из объектов – элементов модели. Различают три вида объектов.
Основные объекты обеспечивают собственно моделирование. Каждый основной объект моделирует какую-либо сущность предметной области. К ним относятся справочники, документы, отчеты, регистры и т.д.
Подчиненные объекты отражают структуру и формируют поведение основных объектов. К ним относятся, например, реквизиты, табличные части, формы, макеты. Важнейшими из них являются реквизиты. Сущности обладают некоторыми свойствами, часть из которых является важными для построения правильной модели. Такие свойства отражаются в модели при помощи ряда инструментов, важнейшими из которых являются реквизиты. Реквизиты основных объектов – суть свойства сущностей предметной области.
Табличные части – это таблицы реквизитов. Они призваны моделировать сложные свойства, которые не могут быть представлены одним параметром.
Общие объекты является вспомогательными и обеспечивают моделирование свойств конфигурации в целом.
В процессе работы разработчик создает общие и основные объекты, настраивает их подчиненные объекты. При этом он просто отражает при помощи объектов структуру и состояние предметной области. Здесь важно подчеркнуть, что виды основных объектов созданы так, чтобы максимально эффективно моделировать именно задачи учета и документооборота.
При этом при создании и настройке объектов автоматически выполняется значительный объем работы. Формируются программные объекты – дублеры основных объектов, изменяются существующие программные объекты, добавляются элементы управления и т.д. То есть на основе платформенно- зависимоймодели (ПЗМ) создается конкретная реализация на базе платформы «1С: Предприятие».
Рис.2.6. ПЗМ «1С: Предприятие»
В рамках ПЗМ «1С: Предприятие» выделяют следующие модели.
Объектная модель представляет структуру и состав предметной области. Она состоит из основных объектов, предназначенных для моделирования документооборота и учета в целом. Использует важнейшие основные объекты: документ, справочник, регистр, отчет.
Процессная модель описывает бизнес-процессы предметной области. Состоит из специфических основных объектов: бизнес-процессов и задач.
Объекты объектной и процессной моделей тесно связаны с программным кодом конфигурации. Для каждого основного объекта автоматически создается соответствующий одноименный программный объект, с которым может работать разработчик в процессе создания программного кода конфигурации. Кроме этого, создаются или изменяются разнообразные вспомогательные программные объекты (рис. 2.7).
Рис.2.7. Взаимосвязь программных и основных объектов
Например, для каждого вида основных объектов в конфигурации существует объект коллекции. Например, Справочники – это коллекция менеджеров всех справочников, через которую можно обращаться к любому справочнику:
Справочники.Справочник1.НекотороеСвойство
В то же время создание каждого основного объекта приводит к созданию новой таблицы в базе данных, связанной с конфигурацией. Совокупность таблиц представляет собой табличную модель, с которой разработчик взаимодействует при создании запросов.
|