Skip to content

Commit 5dff72b

Browse files
committed
Упорядочен код выгрузки дополнительных объектов
1 parent 7b8c1a1 commit 5dff72b

File tree

1 file changed

+27
-18
lines changed

1 file changed

+27
-18
lines changed

src/Классы/edtExport.os

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -257,14 +257,35 @@
257257
Возврат ПолноеИмяОбъекта;
258258
КонецЕсли;
259259

260-
Если СтрНайти("Configuration,Language", ТипОбъектаМетаданных) > 0 Тогда
260+
Если ЭтоРодительВерхнегоУровня(ТипОбъектаМетаданных) Тогда
261261
Возврат ТипОбъектаМетаданных;
262262
Иначе
263263
Возврат СтрШаблон("%1.%2", ТипОбъектаМетаданных, ИмяОбъектаМетаданных);
264264
КонецЕсли;
265265

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

268+
Функция ЭтоВложенныйОбъект(ПолноеИмяОбъекта)
269+
270+
ИндексВложенногоТипа = 2;
271+
272+
ЧастиИмени = СтрРазделить(ПолноеИмяОбъекта, ".");
273+
Если ЧастиИмени.Количество() > ИндексВложенногоТипа Тогда
274+
ТипВложенногоОбъекта = ЧастиИмени[ИндексВложенногоТипа];
275+
Иначе
276+
Возврат Ложь;
277+
КонецЕсли;
278+
279+
Возврат (СтрНайти("Form,Template,Recalculation,Subsystem", ТипВложенногоОбъекта) > 0);
280+
281+
КонецФункции
282+
283+
Функция ЭтоРодительВерхнегоУровня(Родитель)
284+
285+
Возврат (СтрНайти("Configuration,Language", Родитель) > 0);
286+
287+
КонецФункции
288+
268289
Функция ИзмененныеОбъектыМетаданных(ПутьКФайлуИзменений)
269290

270291
РегулярноеВыражение = Новый РегулярноеВыражение("^(?>New|Modified):(\S+)\s*$");
@@ -296,16 +317,10 @@
296317

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

299-
Функция ДополнительныеОбъектыКВыгрузке(ВыгруженныеИзменения, ИмяФайлаДампа)
320+
Функция ДополнительныеОбъектыКВыгрузке(ИзмененныеОбъекты, ИмяФайлаДампа)
300321

301322
СписокОбъектов = Новый Массив;
302323

303-
ДочерниеОбъекты = Новый Массив;
304-
ДочерниеОбъекты.Добавить("Form");
305-
ДочерниеОбъекты.Добавить("Template");
306-
ДочерниеОбъекты.Добавить("Recalculation");
307-
ДочерниеОбъекты.Добавить("Subsystem");
308-
309324
ЧтениеXML = Новый ЧтениеXML;
310325
ЧтениеXML.ОткрытьФайл(ИмяФайлаДампа);
311326

@@ -316,21 +331,15 @@
316331
Пока ЧтениеXML.Имя = "Metadata" Цикл
317332

318333
ИмяОбъекта = ЧтениеXML.ЗначениеАтрибута("name");
319-
320334
Родитель = РодительОбъекта(ИмяОбъекта);
321335

322-
Сегменты = СтрРазделить(ИмяОбъекта, ".");
336+
Если ЭтоВложенныйОбъект(ИмяОбъекта) ИЛИ ЭтоРодительВерхнегоУровня(Родитель) Тогда
323337

324-
Если Сегменты.Количество() > 2 И ДочерниеОбъекты.Найти(Сегменты[2]) = Неопределено Тогда
325-
Продолжить;
326-
КонецЕсли;
327-
Изменения = ВыгруженныеИзменения.Получить(Родитель);
328-
Если Изменения <> Неопределено Тогда
329-
330-
Если Изменения.Найти(ИмяОбъекта) = Неопределено Или Родитель = "Configuration" Тогда
338+
Изменения = ИзмененныеОбъекты.Получить(Родитель);
339+
Если Изменения <> Неопределено И Изменения.Найти(ИмяОбъекта) = Неопределено Тогда
331340
СписокОбъектов.Добавить(ИмяОбъекта);
332341
КонецЕсли;
333-
342+
334343
КонецЕсли;
335344

336345
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда

0 commit comments

Comments
 (0)