Разработка программного комплекса для конвертации конфигурации платформы "1С:Предприятие" в UML-модель
Автор: Балюк Александр Сергеевич, Попова Виктория Алексеевна
Рубрика: Информатика и вычислительная техника
Статья в выпуске: 4, 2021 года.
Бесплатный доступ
Применение средств для повышения удобства создания программного обеспечения является важным аспектом при организации процесса разработки. В данной работе определяются причины применения механизмов для наглядного представления структуры современных программных систем в графическом виде. Анализируется структура прикладных решений на платформе «1С:Предприятие». Описывается формат «Дерево типов конфигурации». Приводятся этапы разработки программного комплекса для преобразования конфигураций «1С:Предприятие» в объектную модель UML с целью дальнейшей визуализации в виде диаграмм классов.
Конфигурация, система типов, диаграмма классов, структура системы, объектная модель
Короткий адрес: https://sciup.org/148323193
IDR: 148323193 | DOI: 10.18137/RNU.V9187.21.04.P.137
Текст научной статьи Разработка программного комплекса для конвертации конфигурации платформы "1С:Предприятие" в UML-модель
Непрерывное развитие современных информационных систем, использующихся в различных сферах деятельности, влечет за собой усложнение программ ввиду внедрения новых функциональных возможностей, которые необходимы из-за введения законодательством новых стандартов, а также возникновений требований от заказчиков и пользователей.
Расширение функциональности программ вызывает трудности поддержки программного кода, так как сложно отследить взаимосвязь объектов и то, в каком контексте они могут быть использованы.
Чтобы оптимизировать процесс создания программ, разработчики могут применять механизмы для визуального представления структуры информационной системы [4; 8].
В настоящее время в качестве одного из инструментов для визуализации и документирования структуры программного обеспечения используется язык UML [9], который позволяет при помощи диаграмм наглядно представить компоненты системы, как они связаны и взаимодействуют друг с другом и с окружением.
Для программ, написанных на таких языках программирования, как C++, Java, Javascript, Python, существуют средства, например, Star UML и Visual Paradigm, позволяющие выполнять автоматическое конвертирование программного кода в диаграмму классов UML. Та кой процесс называется реверс-инжинирингом программн ого обеспечения [2].
Балюк Александр Сергеевич кандидат физико-математических наук, доцент, доцент кафедры алгебраических и информационных систем института математики и информационных технологий. Иркутский государственный университет, город Иркутск. Сфера научных интересов: сложность вычислений, конечные поля, верификация компьютерных программ. Автор более 20 опубликованных научных работ.
Несмотря на распространенное использование языка UML в процессах разработки программного обеспечения, на текущий момент в открытом доступе не существует средств, позволяющих визуально представлять структуру систем, разработанных на платформе «1С:Предприятие» [1]. В связи с этим возникла идея создания программного комплекса для конвертации конфигурации платформы «1С:Предприятие» в UML-модель для визуализации структурного аспекта системы.
Структура прикладных решений на базе «1С:Предприятие»
В конфигурациях платформы «1С:Предприятие» каждый созданный разработчиком объект относится к одному из типов метаданных:
-
1. «Подсистема», «Общий модуль», «Роль» и др., которые входят в группу «Общие объекты».
-
2. «Справочник», «Документ», «Перечисление», «Регистр сведений», «План видов характеристик» и др., входящих в группу «Прикладные объекты».
Каждый тип метаданных обладает базовой функциональностью, которая определена на платформе «1С:Предприятие». При создании конфигурации разработчики создают общие и прикладные объекты, наследующие всю функциональность соответствующих типов метаданных. Эту функциональность можно переопределить под потребности бизнес-процессов создающейся системы. Важно отметить, что прикладные объекты наследуют функциональность от нескольких типов, которые определены на платформе «1С:Предприятие». Например, прикладной объект метаданных «Справочник» наследует функциональность следующих типов платформы [7]: «СправочникОбъект», «СправочникСсылка», «СправочникВыборка», «СправочникСписок» и «Справоч-никМенеджер».
Все объекты конфигурации имеют свойства, типами которых могут выступать как прикладные объекты конфигурации, так и типы данных встроенного языка платформы «1С:Предприятие». Информация о таких типах содержится во встроенной справке 1С, называющейся «СинтаксисПомощник».
Разработка программного комплекса для конвертации конфигурации платформы ...
Представление конфигурации «1С:Предприятие» в формате XML
Любая конфигурация, разработанная на платформе «1С:Предприятие», может быть выгружена в файлы XML-формата в виде файловой структуры.
После выгрузки конфигурации платформы структура XML-файлов каждого объекта конфигурации различается ввиду их специфики. Например, для объектов типов метаданных «Справочник», «Документ», «Обработка» и «Отчет» определены реквизиты и табличные части, а у всех регистров (сведений, накопления, бухгалтерии и расчета) помимо реквизитов существуют измерения и ресурсы.
К примеру, в XML-файле выгрузки прикладного объекта типа метаданных «Справочник» информация представлена так, как показано на Рисунке 1.
-
1 cMetaDataObject xmlns="..." xmlns:xr="...">
-
2 ccatalog>
-
3 clnternal info
-
4 cxr:GeneratedType name="CatalogObject.Пользователи" category="object"/>
-
5 cxr:GeneratedType name="CatalogRef.Пользователи" category="Ref" />
-
6 . . .
-
7 c/lnternal Info
-
8 cproperties>
-
9 <мате>пользователис/мате>
-
10
-
11
-
12 cxr:standardAttribute name="code"/>
-
13 . . .
-
14 c/standardAttributes>
-
15 c/properties>
-
16 cehi1dobjects>
-
17
-
18 cproperties>
-
19 <мате>датарождениж/мате>
-
20 cType>
-
21 cv8:Type>xs:dateTimec/v8:туре>
-
22 туре>
-
23
-
24
-
25 . . .
-
26
-
27 clnternalInfo>
-
28 . . .
-
29
-
30
... -
31
... -
32
-
33
-
34
-
35
Рисунок 1. XML-описание справочника «Пользователи»
Элементы на рисунке обозначают следующее:
-
• Internal Info – содержит перечисление типов, которые были созданы на платформе «1С:Предприятие» для данного объекта конфигурации;
-
• Properties – определяет стандартные свойства объекта конфигурации, в данном случае Name (наименование) и Standard Attributes (стандартные реквизиты);
-
• Child Objects – перечисляет реквизиты, табличные части, формы, макеты и команды, которые содержит объект конфигурации;
-
• Attribute – обозначает реквизит объекта конфигурации, допустимые типы реквизита перечисляются в элементе Type;
-
• Tabular Section – описывает данные табличной части объекта конфигурации.
Формат XMI
Для графического представления структуры программ в UML наиболее распространенными являются диаграммы классов.
Для хранения UML-моделей и для обмена ими или их частями существует международный стандарт XMI [10], который поддерживается многими графическими редакторами UML.
Элементы UML-модели упаковываются в файл XMI для последующей загрузки в другую UML-модель. В частности, элементы диаграммы классов упаковываются следующим образом.
-
1. Описание класса помещается в элемент packaged Element , атрибутами которого являются xmi:id (идентификатор класса) и name (наименование класса). Атрибуты и операции класса перечисляются во вложенных в packaged Element элементах owned Attribute и owned Operation соответственно.
-
2. Отношение наследования между классами определяется в виде элементов generalization . В таких элементах в атрибуте specific указывается идентификатор класса, наследующего функциональность от класса, значение xmi:id которого записывается в general .
Поскольку XML-файлы выгрузки конфигурации платформы «1С:Предприятие» содержат исчерпывающее описание всех объектов конфигурации, можно выполнить преобразование из этих XML-файлов в XMI-представление, а после этого при помощи UML-редактора отобразить графически структуру конфигурации.
Определение этапов конвертации конфигурации в XMI
XML-файлы выгрузки конфигурации имеют довольно сложную и избыточную структуру для задачи данной работы, поскольку в них присутствуют помимо основных свойств настройки поведения и отображения данных объектов конфигурации, которые не несут информации для графического представления структуры. Сложная структура также обуславливается возможностью полностью восстановить всю конфигурацию из выгруженных файлов.
Поэтому сначала конфигурация была представлена в упрощенном формате [3], а затем было выполнено преобразование промежуточного документа в XMI.
Упрощенный формат для описания объектов конфигурации и типов платформы в рамках данной работы назван «Дерево типов конфигурации» (далее – ДТК).
Таким образом, файл формата ДТК должен состоять:
-
• из типов платформы («ветки дерева») – служат основанием для объектов конфигурации;
-
• объектов конфигурации («листья дерева») – наследуют функциональность типов платформы.
Представление конфигурации в формате дерева типов конфигурации
Для представления конфигурации платформы «1С:Предприятие» в формате ДТК был выбран формат XML [5]. Правила формирования XML-файла с данными конфигурации содержатся в созданной авторами схеме XSD, описание которой приведено далее.
Все объекты конфигурации, а также относящиеся к ним табличные части, формы, макеты и команды представляются в виде элемента context , обязательными атрибутами которого являются наименование ( name ) и идентификатор ( id ), а в качестве необязательного атрибута значится extends – идентификатор элемента context , от которого наследуется функциональность.
Каждое свойство объекта конфигурации описывается в элементе property , а наименование этого свойства указывается в атрибуте name . Свойство может иметь значения нескольких типов, поэтому каждый возможный тип перечисляется внутри property в отдель-
Разработка программного комплекса для конвертации конфигурации платформы ...
ном элементе type , где в одноименном атрибуте type указывается идентификатор элемента context . Элементы type можно назвать множеством допустимых типов свойства.
Табличные части объектов конфигурации являются самостоятельными сущностями, но разработчик может обращаться к ним, как к свойствам объекта конфигурации. Поэтому имя табличной части добавляется к элементу context в качестве свойства ( property ). При этом сама табличная часть определяется как отдельный элемент context .
Методы и события объекта конфигурации могут содержать как обязательные, так и необязательные параметры, которые, как и свойства, могут принимать разные типы значений. В данном случае было решено воспользоваться определением перегрузки методов, что допускает при отличии в количестве или типах параметров создавать разные методы с одним и тем же наименованием. Ввиду этого для каждого возможного набора типов параметров создается элемент param Set , внутри которого перечислены параметры ( param ), где атрибутами каждого из них являются наименование ( name ) и тип ( type ). Поскольку некоторые параметры могут быть необязательными и, соответственно, в них передается пустое значение из места вызова, то в таком случае элемент param указывается без атрибутов. Некоторые методы могут иметь возвращаемое значение, для них в каждый param Set добавляется элемент returnSet , обозначающий множество допустимых типов возвращаемых значений, в котором перечислены элементы return с атрибутом type . Все param Set помещаются в элемент method , у которого имеется атрибут name , обозначающий наименование метода или события.
Согласно определенным выше правилам формируется документ XML, содержащий информацию об объектах конфигурации в таком виде, как показано на Рисунке 2.
-
1 ccontexts>
-
2 ccontext пате="справочникссылка.пользователи" id="СправочникСсылка.Пользователи" ехгепд$="справочникссылка.&1t;имя справочника&дг;"
-
3 cproperty пате="Ссылка">
-
4 ctype туре="справочникссылка.пользователи"/>
-
5 с/р roperty>
б cproperty пате="Код">
-
7 сгуре туре="строка"/>
-
8
-
9 . . .
-
10 c/context>
-
11 ccontext пате="СправочникОбъект.Пользователи" 1^="справочникобъект.пользователи" extends="CnpaBO4HHKO6beKT.&!t;Имя справочника&д1;"
-
12 . . .
-
13 c/context>
-
14 ccontext пате="справочникссылка.&1т;имя справочника&дт;" id="CnpaBO4никСсылка.&1t;Имя справочника&дТ;"
-
15 cproperty пате="код" enName="code">
-
16 ctype Туре="Число"/>
-
17 ctype 1уре="строка"/>
-
18 с/р roperty>
-
19 . . .
-
20 cmethod пате="принадлежитэлементу">
-
21 cparamSet>
22 cparam пате="элемент" 1уре="справочникссылка.&11;имя справочника&д1;"/>
23 creturnSet>
-
24 creturn 1уре="Булево"/>
-
25 c/returnSet>
-
26 c/paramSet>
-
27 c/method>
-
28 . . .
-
29 c/context>
-
30 . . .
-
31 c/contexts>
Рисунок 2. XML-описание справочника «Пользователи» в формате ДТК
Для автоматического формирования XML-описания конфигурации в формате ДТК написана программа на языке программирования «1С:Предприятие». Разбор исходных XML-файлов с данными конфигурации выполнен при помощи запросов языка XPath, а формирование XML-описания в формате ДТК реализовано с использованием механизма XDTO.
Таким образом, все типы, определенные в конфигурации, помещаются в файл формата ДТК. Также был создан файл того же формата, в который были добавлены все типы из справочной информации платформы «1С:Предприятие».
Преобразование формата ДТК в XMI
Преобразование конфигурации из формата ДТК в XMI сделано с помощью правил языка XSLT. Процесс конвертации из XML в XMI выполняется следующим образом.
Каждый элемент context соответствует классу в UML и поэтому определяется в XMI как packaged Element . Свойства элемента ( property ) преобразуются в owned Attribute . Так как у property может быть несколько элементов type , а в нотации UML каждому атрибуту соответствует только один тип, было решено сделать вспомогательный параметризованный тип и представлять его в виде отдельного класса. Например, если в элементе property содержится два элемента type , обозначающие типы «Число» и «Строка», то будет создан класс « Сложный Тип<Число, Строка> », который является типом для этого элемента property . Все элементы method промежуточного формата преобразуются в UML в качестве операций класса. Поскольку в method перечислены всевозможные наборы параметров в виде param Set , в XMI количество операций класса ( owned Operation ) соответствует количеству элементов param Set .
После формирования всех packaged Element , выполняется установка связей между классами. Сначала определяется, какие типы без учета повторений есть в каждом классе у атрибутов и параметров операций. Затем для класса устанавливается отношение зависимости с каждым из классов, наименование которого соответствует определенным на предыдущем этапе типам. Если у элемента context присутствует атрибут extends , то класс packaged Element связывается с классом, имя которого указано в extends , отношением наследования ( generalization ). Связь класса с табличными частями, а также с относящимися к нему формами, командами и макетами определяет отношение агрегации.
Фрагмент разработанных правил XSLT представлен на Рисунке 3.
Запуск преобразования на языке XSLT осуществляется средствами платформы «1С:Предприятие» при помощи объекта «ПреобразованиеXSL».
Тестирование программного комплекса
Чтобы выполнить тестирование разработанного программного комплекса, использовалась свободно распространяемая конфигурация «Библиотека стандартных подсистем».
На Рисунке 4 представлен фрагмент конфигурации в формате UML. Для визуализации применялась программа StarUML, в которую был импортирован сгенерированный файл XMI, описывающий структуру конфигурации.
Разработанный программный комплекс, а также инструкция по его установке, доступны в репозитории проекта [6].
Заключение
В результате работы был создан программный комплекс, позволяющий выполнять преобразование любой конфигурации, разработанной на платформе «1С:Предприятие», в UML-модель с целью графического представления ее структуры. Полученную объект-
Разработка программного комплекса для конвертации конфигурации платформы ...
ную модель можно визуализировать в любом графическом редакторе UML, который поддерживает импорт XMI.
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8 . . .
-
9
... -
10
... -
11 . . .
-
12
-
13
-
14
-
15
-
16
:xmi xmlns:uml="..." xmlns:xmi="..."> -
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
... -
30
-
31
-
32
-
33 . . .
-
34
-
35
Рисунок 3. XSLT-преобразование XML

Рисунок 4. Представление фрагмента БСП
Программный комплекс может стать полезным инструментом в процессе разработки конфигураций платформы «1С:Предприятие», так как его использование позволит экономить время на изучение структуры программной системы.
Список литературы Разработка программного комплекса для конвертации конфигурации платформы "1С:Предприятие" в UML-модель
- С:Предприятие 8.3.17. Документация [Электронный ресурс]. URL: https://its.1c.ru/db/v8317doc (дата обращения: 10.03.2021).
- Ахапкин А.С. Получение архитектуры программного продукта по его исходному тексту // Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики. 2005. № 29. С. 183-185.
- Балюк А.С., Попова В.А. Преобразование конфигурации 1С:Предприятия в UML-модель // Информационные технологии: материалы 59-й Международной научной студенческой конференции (Новосибирск, 12-23 апреля 2021 г.). Новосибирск: ИПЦ НГУ, 2021. С. 30.
- Зверева В.А., Кознов Д.В., Бережной А.С. Обзор подходов управления согласованностью артефактов разработки ПО при использовании UML // Системное программирование. 2006. № 1 (2). С. 240-267.
- Попова В.А., Балюк А.С. Статическая проверка типов для программ, разработанных на платформе "1С:Предприятие" // Вестник Иркутского университета. 2020. № 23. С. 54-55.
- Попова В.А. Программный комплекс для преобразования конфигурации 1С:Предприятия в UML-модель [Электронный ресурс]. URL: https://gitlab.com/converting-1c-to-uml/software-package (дата обращения: 17.05.2021).
- Работа с прикладными объектами средствами встроенного языка [Электронный ресурс]. URL: https://its.1c.ru/db/metod8dev/content/2698/hdoc (дата обращения: 11.03.2021).
- Романов В.Ю. Моделирование свободно-распространяемого программного обеспечения с помощью языка UML // International Journal of open information technologies. 2013. № 27 (1). С. 11-15.
- About the Unified Modeling Language Specification Version 2.5.1. Available at: https://www.omg.org/spec/UML/About-UML/(date of the application: 08.03.2021).
- About the XML Metadata Interchange Specification Version 2.5.1. Available at: https://www.omg.org/spec/XMI/About-XMI/(date of the application: 10.03.2021).