Архитектура «1С:Предприятия»

 

Система «1С:Предприятие» в широком смысле представляет собой совокупность четырех составляющих (рис. 1.1):

¦ технологической платформы;

¦ прикладных решений различного масштаба и различной направленности, созданных на основе технологической платформы;

¦ методики создания прикладных решений;

¦ информационно-технологической поддержки пользователей и разработчиков.

Рис. 1.1. Структура «1С:Предприятия»

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

ПЛАТФОРМА И ПРИКЛАДНЫЕ РЕШЕНИЯ

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

СРЕДСТВА РАЗРАБОТКИ В СОСТАВЕ ПЛАТФОРМЫ

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

¦ среда исполнения,

¦ среда разработки.

Рис. 1.2. Структура технологической платформы «1С:Предприятия»

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

МЕТАДАННЫЕ – СПОСОБ ОПИСАНИЯ ПРИКЛАДНОГО РЕШЕНИЯ

Прикладное решение «1С:Предприятия» не пишется в прямом смысле слова на языке программирования. При создании прикладных решений «1С:Предприятия» используется более абстрактная технология – технология метаданных. Метаданные представляют собой иерархическую структуру объектов, полностью описывающую все прикладное решение. Эта структура называется «дерево объектов конфигурации» (рис. 1.3).

Рис. 1.3. Дерево объектов конфигурации прикладного решения

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

МЕТАДАННЫЕ И ВСТРОЕННЫЙ ЯЗЫК

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

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

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

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

Рис. 1.4. Глобальный интерфейс прикладного решения

МЕТАДАННЫЕ – СПОСОБ ОПИСАНИЯ ПРИКЛАДНОГО РЕШЕНИЯ

Каждый такой шаблон (прототип) содержит определенную базовую реализацию объекта конфигурации (рис. 1.5).

Рис. 1.5. Состав прототипа (шаблона) объекта конфигурации

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

СОЗДАНИЕ ПРИКЛАДНЫХ РЕШЕНИЙ НА ОСНОВЕ МОДЕЛИ

Важной особенностью системы «1С:Предприятие» является то, что для описания структуры прикладного решения разработчик использует не произвольные, а строго определенные объекты конфигурации. Платформа «1С:Предприятие» содержит ограниченный набор прототипов (шаблонов) объектов конфигурации. Среди этих шаблонов есть, например, шаблон справочника, документа, регистра накопления, бизнес - процесса и т. д. Когда разработчик добавляет в дерево объектов конфигурации новый объект конфигурации, этот объект наследует базовую реализацию прототипа (рис. 1.6):

Рис. 1.6. Добавление нового объекта конфигурации

При добавлении нового объекта конфигурации платформа основывается на «знаниях» о базовом классе объектов (рис. 1.7):

¦ платформа «знает», какие таблицы (состав полей, количество таблиц, их взаимная связь) нужно будет создать в хранилище данных при сохранении конфигурации;

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

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

¦ определяются стандартные действия, которые система может выполнять с данными этого объекта конфигурации;

¦ и т. д.

Рис. 1.7. Добавление нового объекта конфигурации

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

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

ОБЪЕКТНЫЕ И НЕОБЪЕКТНЫЕ ДАННЫЕ

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

Подобное деление определяет два различных подхода к работе с данными. Данные, имеющие объектную природу, хранятся в базе данных в виде объектов. Например, объектом является элемент справочника или конкретный документ. Каждый объект ценен для системы уже одним фактом своего существования и имеет уникальный идентификатор – ссылку. Могут измениться любые данные объекта, но это будет все тот же объект. Удалив объект, его нельзя создать заново. Даже если для нового объекта будут установлены те же данные, это будет уже другой объект с точки зрения «1С:Предприятия», обладающий другим уникальным идентификатором.

Данные, имеющие необъектную природу, хранятся в базе данных в виде записей. Каждая запись полностью описывается значениями своих полей и не имеет какого-либо уникального идентификатора. Поэтому для «1С:Предприятия» собственно факт существования записи не важен. Можно удалить запись, а затем создать новую, с такими же значениями полей – состояние базы данных с точки зрения логики прикладного решения от этого не изменится.

ТРИ СПОСОБА ПРЕДСТАВЛЕНИЯ ДАННЫХ

Для всех прикладных данных (как объектных, так и необъектных) «1С:Предприятие» поддерживает три способа представления данных (рис. 1.8):

¦ хранение в базе данных,

¦ представление во встроенном языке,

¦ отображение в формате XML.

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

Рис. 1.8. Три способа представления данных

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

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

СКВОЗНАЯ ТИПИЗАЦИЯ

Важной особенностью работы с данными является то, что в «1С:Предприятии» реализована общая система типов встроенного языка, полей баз данных и интерфейса. Иными словами, разработчик одинаковым образом определяет поля базы данных, переменные встроенного языка, реквизиты форм и одинаковым образом работает с ними (рис. 1.9).

Рис. 1.9. Общая система типов

В результате разработчику не приходится заботиться о преобразованиях между типами данных, поддерживаемыми той или иной СУБД, типами, поддерживаемыми встроенным языком, и типами, используемыми для построения интерфейсных решений.

ПОДДЕРЖКА СОСТАВНЫХ ТИПОВ ДАННЫХ

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

СМЕШАННЫЙ ПОДХОД К МАНИПУЛИРОВАНИЮ ДАННЫМИ

«1С:Предприятие» обеспечивает два способа доступа к данным – объектный (для чтения и записи) и табличный (только для чтения). В объектной модели разработчик оперирует объектами встроенного языка. В этой модели обращения к объекту, например документу, происходят как к единому целому – он полностью загружается в память, вместе с вложенными таблицами, к которым можно обращаться средствами встроенного языка как к коллекциям записей и т. д. (рис. 1.10).

Рис. 1.10. Объектный доступ к данным

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

Рис. 1.11. Табличный доступ к данным

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

ВСТРОЕННЫЙ ЯЗЫК

Встроенный язык имеет много общих черт с другими языками, такими как Pascal, Java Script, Basic, что облегчает его освоение начинающими разработчиками. Однако он не является прямым аналогом какого-либо перечисленного языка. Вот лишь некоторые наиболее значимые особенности встроенного языка:

¦ мягкая типизация (тип переменной определяется типом значения, которое она содержит, и может изменяться в процессе работы);

¦ отсутствие программного описания прикладных типов (они создаются при добавлении объектов метаданных);

¦ не требуется предварительное описание процедур/функций, если их вызов выполняется раньше их описания;

¦ событийная ориентированность встроенного языка;

¦ поддерживается обработка исключительных ситуаций;

¦ все операторы имеют как русское, так и английское написание, которое можно использовать одновременно;

¦ используется интерпретатор с предварительной компиляцией (перед исполнением модули, содержащие текст на встроенном языке, преобразуются во внутренний код);

¦ кеширование скомпилированных модулей в памяти.

ЯЗЫК ЗАПРОСОВ

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

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

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

¦ Автоматическое упорядочивание. Режим автоматического упорядочивания позволяет выводить информацию в наиболее правильном («естественном») порядке;

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

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

¦ Стандартные SQL операции. В языке запросов поддерживаются стандартные для SQL операции, такие как объединение (Union), соединение (Join) и т. д.;

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

¦ Пакетные запросы. Пакетные запросы позволяют более удобно рабо - тать с временными таблицами за счет того, что создание временной таблицы и ее использование помещаются в один запрос. Пакетный запрос представляет собой последовательность запросов, разделенных символом «;». Запросы исполняются один за другим. Результатом выполнения пакетного запроса в зависимости от используемого метода будет являться либо результат, возвращаемый последним запросом пакета, либо массив результатов всех запросов пакета в той последовательности, в которой следуют запросы в пакете.

ПРИКЛАДНЫЕ РЕШЕНИЯ, НЕЗАВИСИМЫЕ ОТ ИСПОЛЬЗУЕМОГО ХРАНИЛИЩА ДАННЫХ

Платформа изолирует разработчика от понятий и подробностей более низкоуровневых технологий. При создании прикладных решений разработчик «1С:Предприятия» не обращается к базе данных напрямую. Непосредственно он работает с платформой «1С:Предприятие». При этом он может:

¦ описывать структуры данных в конфигураторе;

¦ манипулировать данными с помощью объектов встроенного языка;

¦ составлять запросы к данным, используя язык запросов.

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

УПРАВЛЯЕМЫЙ ИНТЕРФЕЙС

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

Пользовательский интерфейс «1С:Предприятия» построен по принципу декларативного описания. Он называется «управляемым» потому, что с помощью прав и ролей пользователей, функциональных опций и настроек пользователя платформа автоматически строит командный интерфейс, управляемые формы и отчеты.

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

Рис. 1.12. Основное окно приложения

Рабочий стол – это стандартный раздел программы, содержащий часто используемые документы, отчеты, справочники и т. п. Этот раздел автоматически активизируется при запуске прикладного решения. Это своеобразный «помощник» пользователя. Рабочий стол вводит пользователя в курс дел, отвечает на его вопросы и позволяет ему быстро включиться в работу.

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

Рис. 1.13. Основное окно приложения

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

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

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

Рис. 1.14. Основное и вспомогательное окна приложения

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

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

КОМАНДНЫЙ ИНТЕРФЕЙС

Командный интерфейс – это основное средство навигации пользователя по функциональности прикладного решения. Формирование командного интерфейса выполняется платформой автоматически в зависимости от прав пользователя, видимости команд по ролям, функциональных опций приложения и настроек самого пользователя. Глобальный командный интерфейс в системе «1С:Предприятие» строится на основе иерархии подсистем, созданных разработчиком в конфигурации. Состав подсистем верхнего уровня иерархии отражает наиболее общее разделение функциональности прикладного решения, в интерфейсе приложения он образует разделы глобального командного интерфейса. Структура подсистем определяет всю функциональность прикладного решения и служит основой для построения глобального командного интерфейса приложения (рис. 1.15).

Рис. 1.15. Глобальный интерфейс прикладного решения

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

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

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

При запуске прикладного решения платформа «превращает» полный командный интерфейс приложения в командный интерфейс пользователя, запустившего прикладное решение. Этот процесс включает несколько этапов (рис. 1.16):

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

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

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

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

Рис. 1.16. Автоматическое формирование платформой командного интерфейса для пользователя

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

¦ интерактивные ссылки:

? на объекты информационной базы – на элементы справочников, документы и т. д.;

? отчеты;

? обработки;

? точки навигации – на разделы, формы списков, открывающиеся в основном окне;

¦ неинтерактивные ссылки:

? на реквизит объекта информационной базы (например, реквизит элемента справочника);

? реквизит табличной части объекта информационной базы;

? запись регистра информационной базы;

? реквизит записи регистра информационной базы;

? временное хранилище.

ИНТЕРАКТИВНЫЕ ССЫЛКИ

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

e1cib/data/Документ. ПриходТовара? ref="a9b800055d49b45e11dbb50561cf0dac"

листинг 1.1. Навигационная ссылка

Правила, по которым формируются ссылки, описаны в документации. Формат текстовых ссылок соответствует стандартам RFC 1738, 1808, 2368, 2396, и для того чтобы отличать ссылки «1С:Предприятия» от других (например, http или file), используется идентификатор схемы e1c.

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

листинг 1.2. Внутренняя и внешняя ссылка

// Внутренняя ссылка

e1cib/data/Документ. ПриходТовара? ref="a9b800055d49b45e11dbb50561cf0dac"

// Внешняя ссылка

e1c://filev/C/Bases/Platform82Demo#e1cib/data/Документ. ПриходТовара? ref= "a9b800055d49b45e11dbb50561cf0dac"

Как видно, разница только в начальной части ссылки. У внешней ссылки добавляется идентификатор конкретной базы данных. В примере это файловая база данных (e1c://filev/), расположенная в каталоге C/Bases/Platform82Demo. С точки зрения пользователя, существует три способа использования таких ссылок:

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

¦ внутренние ссылки можно использовать внутри конкретной информационной базы. При этом не важно, каким клиентом пользователи подключены к этой информационной базе. Один пользователь может получить внутреннюю ссылку, передать ее другому пользователю, например, по электронной почте. Другой пользователь может перейти по этой ссылке;

¦ внешние ссылки задуманы для использования вне «1С:Предприятия». Внешние ссылки имеет смысл использовать только для веб-клиента. Один пользователь, подключенный к информационной базе веб-клиентом или тонким клиентом по протоколу http, может получить внешнюю ссылку и передать ее другому пользователю. Другой пользователь может ввести эту ссылку в строку веб-браузера. В результате будет запущен веб-клиент, выполнено соединение с нужной информационной базой и выполнен переход по ссылке. В режиме 1С:Предприятие ссылку можно получить по команде Получить ссылку в основном или во вспомогательном окне (рис. 1.17).

Рис. 1.17. Команда «Получить ссылку»

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

Рис. 1.18. Команда «Перейти по ссылке»

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

¦ ПолучитьНавигационнуюСсылку(),

¦ ПолучитьНавигационнуюСсылкуИнформационнойБазы(),

¦ ПолучитьПредставленияНавигационныхСсылок(),

¦ ПерейтиПоНавигационнойСсылке(),

¦ НайтиОкноПоНавигационнойСсылке().

НЕИНТЕРАКТИВНЫЕ ССЫЛКИ

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

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

Рис. 1.19. История работы пользователя

Перейти к окну История можно с помощью кнопки История в информационной панели или через Главное меню ? Сервис ? История в основном или вспомогательных окнах приложения (рис. 1.20).

Рис. 1.20. Переход к истории работы пользователя

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

Рис. 1.21. Последние измененные объекты в информационной панели

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

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

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

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

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

листинг 1.3. Обработчик команды «ИзменитьТовары»

&НаКлиенте

Процедура ИзменитьТовары(Команда)

Количество = ИзменитьЭлементы(); Элементы. Список. Обновить();

ПоказатьОповещениеПользователя("Обработано " + Количество + " элемента", "e1cib/navigationpoint/desktop", "Список товаров");

КонецПроцедуры

Сначала вызовем функцию ИзменитьЭлементы(). Ее пока нет, мы ее напишем позже. Она будет изменять наименование элементов справочника Товары и вернет нам количество измененных элементов. После этого мы обновим список справочника, расположенный в форме, чтобы увидеть новые наименования – Элементы. Список. Обновить(). И в заключение мы выведем оповещение, которое сообщит пользователю количество измененных элементов и будет содержать ссылку на рабочий стол – e1cib/navigationpoint/desktop, чтобы пользователь, если он находится в другом разделе программы, мог быстро перейти к рабочему столу и посмотреть выполненные изменения. После этого добавим недостающую функцию ИзменитьЭлементы(), листинг 1.4.

листинг 1.4. Функция «ИзменитьЭлементы()»

&НаСервереБезКонтекста

Функция ИзменитьЭлементы() Экспорт

Количество = 0;

Выборка = Справочники. Товары. Выбрать(. "Код");

Пока Выборка. Следующий() Цикл

ОбъектТовар = Выборка. ПолучитьОбъект(); ОбъектТовар. Наименование = "Новый товар" + Количество; ОбъектТовар. Записать();

ИсторияРаботыПользователя. Добавить(Выборка. Ссылка); Количество = Количество + 1;

КонецЦикла;

Возврат Количество;

КонецФункции

Функция очень простая. Выбираются все элементы справочника Товары. Каждому элементу изменяется наименование, и он записывается. После этого в историю добавляется запись об изменении этого элемента справочника – ИсторияРаботыПользователя. Добавить(Выборка. Ссылка). Функция возвращает количество измененных элементов. Теперь в результате выполнения команды ИзменитьТовары в списке справочника Товары наименования всех товаров будут изменены. Запись об изменении каждого товара будет добавлена в историю, а в конце работы будет выведено одно оповещение. Можно было бы выводить оповещения каждый раз после изменения очередного элемента справочника, но это бессмысленно, так как визуально все эти оповещения «сольются» в одно. Поэтому выводится одно «итоговое» оповещение в конце работы.

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

Чтобы увидеть список избранного, нужно открыть меню Избранное в основном или во вспомогательном окне приложения (рис. 1.22).

Рис. 1.22. Список избранного

Рис. 1.23. Добавление ссылок в избранное

Также ссылки в избранное можно добавить с помощью команды главного меню – Сервис ? Добавить в избранное (рис. 1.24).

Рис. 1.24. Добавление ссылок с помощью команды главного меню

Еще один способ добавления ссылок – с помощью кнопки Добавить в избранное, которая есть в диалогах получения ссылки и перехода по ссылке (рис. 1.25).

Рис. 1.25. Добавление ссылки из диалога получения ссылки

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

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

Рис. 1.26. Настройка избранного

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

ИСПОЛЬЗОВАНИЕ ИНФОРМАЦИИ ИЗ МЕТАДАННЫХ

Интерфейсные механизмы «1С:Предприятия» широко используют информацию из метаданных для того, чтобы автоматизировать процесс разработки интерфейса и уменьшить необходимость детальной настройки, выполняемой разработчиком. Объекты конфигурации имеют множество интерфейсных свойств (таких как Представление объекта, Представление списка, Маска, Формат и пр.). Настроив их, разработчик может управлять отображением объекта в интерфейсе и его интерактивным поведением в процессе работы прикладного решения.

РАСШИРЕНИЯ ФОРМ И ЭЛЕМЕНТОВ УПРАВЛЕНИЯ

«1С:Предприятие» использует механизм расширений форм и элементов управления. Расширения содержат набор свойств, методов и событий, которыми дополняется стандартное поведение элементов управления и формы после того, как они связываются с данными. В зависимости от того, какой тип данных отображает элемент управления или форма, платформа будет использовать то или иное расширение. Такой подход позволяет реализовывать индивидуальные особенности поведения формы и элементов управления при работе с различными типами данных. Командный интерфейс также наряду с командами, общими для данного элемента управления или формы, содержит и индивидуальный набор команд, определяемый конкретным типом данных, с которыми связан элемент управления или форма. Например, в форме документа содержится команда Провести, а в форме справочника – нет.

ГЕНЕРАЦИЯ ФОРМ ПО УМОЛЧАНИЮ

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

КЛИЕНТСКИЕ ПРИЛОЖЕНИЯ

Клиентское приложение – это программа, работающая на компьютере пользователя и обеспечивающая интерактивное взаимодействие системы «1С:Предприятие» с пользователем. В системе «1С:Предприятие» существуют три клиентских приложения: толстый клиент, тонкий клиент и веб-клиент.

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

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

Веб-клиент не требует какой-либо предварительной установки на компьютер. В отличие от толстого и тонкого клиентов, он исполняется не в среде операционной системы компьютера, а в среде интернет - браузера (Windows Internet Explorer, Mozilla Firefox, Google Chrome или Safari). В веб-клиенте невозможна разработка прикладных решений.

В сводном виде возможности этих клиентских приложений можно представить следующим образом (табл. 1.1).

Таблица 1.1. Возможности клиентских приложений

 



  • На главную