-
Notifications
You must be signed in to change notification settings - Fork 17
/
Расширение.os
182 lines (131 loc) · 9.06 KB
/
Расширение.os
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
///////////////////////////////////////////////////////////////////////////////
//
// Описание модуля
//
///////////////////////////////////////////////////////////////////////////////
Перем ОписаниеКонфигурации;
Перем СтруктураКаталогов;
Перем ПараметрыЧтения;
Перем ПараметрыЗаписи;
///////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС
///////////////////////////////////////////////////////////////////////////////
// Читает описание структуры конфигурации
// * Описание конфигурации
// * Определяет местоположение описаний (файлов и каталогов)
//
Процедура ПрочитатьСтруктуру() Экспорт
ЧтениеКонфигурации.ПрочитатьСтруктуруКонфигурации(ПараметрыЧтения);
ЗаписьКонфигурации.УстановитьПризнакИзменений(ПараметрыЗаписи, Ложь);
КонецПроцедуры
// Добавляет новый объект в конфигурацию
//
// Параметры:
// ТипОбъекта - Строка - Тип объекта конфигурации, см ТипыОбъектовКонфигурации, ОбъектыКонфигурации.md
// ОписаниеОбъекта - Структура, Строка - Данные объекта или его имя
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Функция ДобавитьОбъект(ТипОбъекта, ОписаниеОбъекта) Экспорт
ОбъектКонфигурации = РедакторКонфигурации.ДобавитьОбъект(ОписаниеКонфигурации, ТипОбъекта, ОписаниеОбъекта);
ЗаписьКонфигурации.ПриДобавленииОбъекта(ОбъектКонфигурации);
Возврат ОбъектКонфигурации;
КонецФункции
// Добавляет объект базовой конфигурации в расширение
//
// Параметры:
// ОбъектРодительскойКонфигурации - СтрокаТаблицыЗначений - Описание объекта родительской конфигурации
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - Описание объекта расширения. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Функция ДобавитьОбъектВРасширение(ОбъектРодительскойКонфигурации) Экспорт
ОбъектКонфигурации = РедакторРасширения.ДобавитьОбъектВРасширение(ОписаниеКонфигурации, ОбъектРодительскойКонфигурации);
ЗаписьКонфигурации.ПриДобавленииОбъекта(ОбъектКонфигурации);
Возврат ОбъектКонфигурации;
КонецФункции
// Записывает данные на диск
//
Процедура Зафиксировать() Экспорт
ЗаписьКонфигурации.Зафиксировать(ПараметрыЗаписи);
КонецПроцедуры
// Читает описание переданного объекта, его свойства и параметры
//
// Параметры:
// ОбъектКонфигурации - СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Процедура ПрочитатьОписаниеОбъекта(ОбъектКонфигурации) Экспорт
ЧтениеКонфигурации.ПрочитатьОписание(ОбъектКонфигурации);
КонецПроцедуры
// Сохраняет описание переданного объекта, его свойства и параметры
//
// Параметры:
// ОбъектКонфигурации - СтрокаТаблицыЗначений - Описание объекта конфигурации. См. СтруктурыОписаний.ТаблицаОписанияОбъектовКонфигурации
//
Процедура ЗаписатьОписаниеОбъекта(ОбъектКонфигурации) Экспорт
ЗаписьКонфигурации.СохранитьОписание(ОбъектКонфигурации);
КонецПроцедуры
// Возвращает описание конфигурации
//
// Возвращаемое значение:
// ДанныеКонфигурации - Описание конфигурации
//
Функция ОписаниеКонфигурации() Экспорт
Возврат ОписаниеКонфигурации;
КонецФункции
// Возвращает объект для работы с иерархией каталогов расширения
//
// Возвращаемое значение:
// СтруктураКаталоговКонфигурации - объект для работы с иерархией каталогов расширения
//
Функция СтруктураКаталогов() Экспорт
Возврат СтруктураКаталогов;
КонецФункции
///////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС
///////////////////////////////////////////////////////////////////////////////
// Возвращает служебные параметры для чтения данных с диска
//
// Возвращаемое значение:
// Структура - Параметры чтения
//
Функция ПараметрыЧтения() Экспорт
Возврат ПараметрыЧтения;
КонецФункции
// Возвращает служебные параметры для записи данных на диск
//
// Возвращаемое значение:
// Структура - Параметры записи
//
Функция ПараметрыЗаписи() Экспорт
Возврат ПараметрыЗаписи;
КонецФункции
// Выполняет поиск модулей конфигурации
// Найденные модули будут доступны ОписаниеКонфигурации().Модули
//
Процедура НайтиМодули() Экспорт
ЧтениеКонфигурации.НайтиМодулиКонфигурации(ПараметрыЧтения);
КонецПроцедуры
// Выполняет чтение вложенных подсистем и привязку их к объектам конфигурации
//
Процедура ЗаполнитьПодсистемыОбъектовКонфигурации() Экспорт
ЧтениеКонфигурации.ЗаполнитьПодсистемыОбъектовКонфигурации(ПараметрыЗаписи);
КонецПроцедуры
// Читает и выполняет анализ содержимого модуля
// Устанавливает реквизиты "НаборБлоков" и "Содержимое"
// Параметры:
// СтрокаМодуль - СтрокаТаблицыЗначений - Базовое описание модуля
//
Процедура ПрочитатьСодержимоеМодуля(СтрокаМодуль) Экспорт
ЧтениеКонфигурации.ПрочитатьСодержимоеМодуля(СтрокаМодуль);
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
///////////////////////////////////////////////////////////////////////////////
Процедура ПриСозданииОбъекта(пСтруктураКаталогов)
ОписаниеКонфигурации = Новый ДанныеКонфигурации(ЭтотОбъект);
СтруктураКаталогов = пСтруктураКаталогов;
ПараметрыЧтения = ЧтениеКонфигурации.СоздатьПараметрыЧтения(ЭтотОбъект, "Extension");
ПараметрыЗаписи = ЗаписьКонфигурации.СоздатьПараметрыЗаписи(ЭтотОбъект, "Extension");
КонецПроцедуры