diff --git a/src/СценарииОбработки/СортировкаСоставаПодсистем.os b/src/СценарииОбработки/СортировкаСоставаПодсистем.os
index 4a2f3d1..1e78647 100644
--- a/src/СценарииОбработки/СортировкаСоставаПодсистем.os
+++ b/src/СценарииОбработки/СортировкаСоставаПодсистем.os
@@ -36,6 +36,7 @@
Лог = ДополнительныеПараметры.Лог;
НастройкиСценария = ДополнительныеПараметры.Настройки.Получить(ИмяСценария());
+ ФайлОбработан = Ложь;
Если АнализируемыйФайл.Существует() Тогда
@@ -45,95 +46,85 @@
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
ЭтоЕДТ = ТипыФайлов.ЭтоФайлОписанияПодсистемыEDT(АнализируемыйФайл);
- Если ОтсортироватьПодсистему(АнализируемыйФайл.ПолноеИмя, ЭтоЕДТ) Тогда
-
- ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
-
- КонецЕсли;
+ ФайлОбработан = ОтсортироватьПодсистему(АнализируемыйФайл.ПолноеИмя, ЭтоЕДТ);
- Возврат Истина;
+ Если ФайлОбработан Тогда
+ ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
+ КонецЕсли;
КонецЕсли;
КонецЕсли;
- Возврат Ложь;
+ Возврат ФайлОбработан;
КонецФункции // ОбработатьФайл()
Функция ОтсортироватьПодсистему(Знач ИмяФайла, ЭтоЕДТ)
СодержимоеФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИмяФайла);
- Регексп = РегекспСостав(ЭтоЕДТ);
- ПодчиненныеМетаданные = Регексп.НайтиСовпадения(СодержимоеФайла);
-
- Если ПодчиненныеМетаданные.Количество() = 0 Тогда
-
+
+ РегекспСостав = РегекспСостав(ЭтоЕДТ);
+ СовпаденияСостава = РегекспСостав.НайтиСовпадения(СодержимоеФайла);
+ Если СовпаденияСостава.Количество() = 0 Тогда
Возврат Ложь;
-
КонецЕсли;
+ СовпадениеСостава = СовпаденияСостава[0];
- ИсходнаяСтрока = ПодчиненныеМетаданные[0].Группы[0].Значение;
- ОбъектыМетаданныхСтроки = РегекспМетаданные(ЭтоЕДТ).НайтиСовпадения(ИсходнаяСтрока);
+ СтрокаПоискаМетаданных = ?(ЭтоЕДТ,
+ СовпадениеСостава.Группы[0].Значение, // Всё совпадение (нет общего тега)
+ СовпадениеСостава.Группы[1].Значение); // Текст внутри общего тега Content
+ СовпаденияМетаданных = РегекспМетаданные().НайтиСовпадения(СтрокаПоискаМетаданных);
- // отдельный список с типами, нужен для того, чтобы сохранить порядок при обходе соответствия
- ОбъектыТипаПоПорядку = Новый СписокЗначений;
+ ТаблицаСостава = Новый ТаблицаЗначений;
+ ТаблицаСостава.Колонки.Добавить("СтрокаСостава");
- ОбъектыМетаданных = Новый Соответствие;
- ПоследнийТип = "";
- ОбъектыТипа = Новый СписокЗначений;
- Для Каждого ОбъектМетаданных Из ОбъектыМетаданныхСтроки Цикл
+ Для Каждого СовпадениеМетаданных Из СовпаденияМетаданных Цикл
- ТипМетаданных = ОбъектМетаданных.Группы[1].Значение;
- СтрокаМетаданных = ОбъектМетаданных.Группы[0].Значение;
- ИмяМетаданного = ОбъектМетаданных.Группы[2].Значение;
- Если СтрНачинаетсяС(ИмяМетаданного, ".") Тогда
- ИмяМетаданного = Сред(ИмяМетаданного, 2);
+ Если СтрНайти(СовпадениеМетаданных.Группы[1].Значение, "-") > 0 Тогда // Значение тега (имя метаданных), вероятно это UID (битая ссылка)
+ Продолжить;
КонецЕсли;
- Список = ОбъектыМетаданных.Получить(ТипМетаданных);
+ ТаблицаСостава.Добавить().СтрокаСостава = СовпадениеМетаданных.Группы[0].Значение;
- Если Список = Неопределено Тогда
- Список = Новый СписокЗначений;
- ОбъектыМетаданных.Вставить(ТипМетаданных, Список);
- ОбъектыТипаПоПорядку.Добавить(ТипМетаданных);
- КонецЕсли;
+ КонецЦикла;
- Если Список.НайтиПоЗначению(ОбъектМетаданных.Группы[0].Значение) = Неопределено Тогда
- Список.Добавить(ОбъектМетаданных.Группы[0].Значение, ИмяМетаданного);
+ ТаблицаСостава.Сортировать("СтрокаСостава");
+ ТаблицаСостава.Свернуть("СтрокаСостава");
+
+ РазделительЭлементов = ?(ЭтоЕДТ,
+ Символы.ПС + " ",
+ Символы.ПС + " ");
+ СтрокаЗамены = СтрСоединить(ТаблицаСостава.ВыгрузитьКолонку("СтрокаСостава"), РазделительЭлементов);
+
+ Если ЗначениеЗаполнено(СтрокаЗамены) Тогда
+
+ СтрокаЗамены = РазделительЭлементов + СтрокаЗамены;
+
+ Если Не ЭтоЕДТ Тогда
+ СтрокаЗамены = СтрШаблон(
+ "
+ | %1
+ | ",
+ СтрокаЗамены);
КонецЕсли;
- КонецЦикла;
-
- СтрокаЗамены = "";
- Для Каждого Тип Из ОбъектыТипаПоПорядку Цикл
+ ИначеЕсли Не ЭтоЕДТ Тогда
- ОбъектМетаданных = ОбъектыМетаданных.Получить(Тип.Значение);
+ СтрокаЗамены =
+ "
+ | ";
- ОбъектМетаданных.СортироватьПоПредставлению(НаправлениеСортировки.Возр);
-
- СтрокаЗамены = СтрокаЗамены + ?(ПустаяСтрока(СтрокаЗамены), "", Символы.ПС)
- + СтрСоединить(ОбъектМетаданных.ВыгрузитьЗначения(), Символы.ПС);
-
- КонецЦикла;
-
- Если НЕ ЭтоЕДТ Тогда
- СтрокаЗамены = ПодчиненныеМетаданные[0].Группы[1].Значение + СокрЛП(СтрокаЗамены)
- + ПодчиненныеМетаданные[0].Группы[3].Значение;
КонецЕсли;
- Если СтрСравнить(ИсходнаяСтрока, СтрокаЗамены) = 0 Тогда
-
+ СтрокаЗамены = СтрокаЗамены + Символы.ПС;
+
+ ИсходнаяСтрока = СовпадениеСостава.Группы[0].Значение; // Всё совпадение, которое будем заменять
+ Если СтрСравнить(ИсходнаяСтрока, СтрокаЗамены) = 0 Тогда
Возврат Ложь;
-
- КонецЕсли;
-
- Если ЭтоЕДТ Тогда
- СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, СокрЛП(СтрокаЗамены));
- Иначе
- СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, СтрокаЗамены);
КонецЕсли;
+ СодержимоеФайла = РегекспСостав.Заменить(СодержимоеФайла, СтрокаЗамены);
ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, СодержимоеФайла);
Возврат Истина;
@@ -142,8 +133,10 @@
Функция РегекспСостав(ЭтоЕДТ)
- ПоискДочерних = ?(ЭтоЕДТ, "(?:)([\w\W]+)(?:<\/content>)", "(\s+)(<[\w\W]+>)(\s+<\/Content>)");
- Регексп = Новый РегулярноеВыражение(ПоискДочерних);
+ ПоискСостава = ?(ЭтоЕДТ,
+ "\s*[\w\W]+<\/content>[\t ]*\n*",
+ "\s*([\w\W]+)<\/Content>[\t ]*\n*");
+ Регексп = Новый РегулярноеВыражение(ПоискСостава);
Регексп.ИгнорироватьРегистр = Истина;
Регексп.Многострочный = Истина;
@@ -151,12 +144,9 @@
КонецФункции
-Функция РегекспМетаданные(ЭтоЕДТ)
+Функция РегекспМетаданные()
- ШаблонНачало = ?(ЭтоЕДТ, "^\s*<[\w]+>", "^\s+<[\w:\s=""]+>");
- ШаблонИмяМетаданных = "([a-zA-Z]+)((?:\.(?:[а-яa-zA-ZА-Я0-9_]+))+)";
- ШаблонУИД = "(([a-zA-z0-9\-]+))";
- ПоискМетаданных = СтрШаблон("%1(?:%2|%3)<\/[\w:]+>", ШаблонНачало, ШаблонУИД, ШаблонИмяМетаданных);
+ ПоискМетаданных = "<[^>]+>([^<]*)<\/[^>]+>"; // Разбивка по тегам
Регексп = Новый РегулярноеВыражение(ПоискМетаданных);
Регексп.ИгнорироватьРегистр = Истина;
Регексп.Многострочный = Истина;
diff --git a/tests/fixtures/СортировкаОбъектовВПодсистемах/До/БазовыйФункционал.mdo b/tests/fixtures/СортировкаОбъектовВПодсистемах/До/БазовыйФункционал.mdo
new file mode 100644
index 0000000..a438ef7
--- /dev/null
+++ b/tests/fixtures/СортировкаОбъектовВПодсистемах/До/БазовыйФункционал.mdo
@@ -0,0 +1,20 @@
+
+
+ БазовыйФункционал
+
+ ru
+ Базовый функционал
+
+ true
+ true
+
+ ru
+ Содержит подсистемы с базовым функционалом и инструментами без которых существование системы невозможно.
+
+ 4308b2f2-9e92-486e-8c34-13c11fd5fb49
+ НастройкиПользователей
+ ОбщегоНазначения
+ УправлениеДоступом
+ Преобразования
+ Subsystem.ПодсистемыБСП
+
diff --git a/tests/fixtures/СортировкаОбъектовВПодсистемах/До/Интеграция.xml b/tests/fixtures/СортировкаОбъектовВПодсистемах/До/Интеграция.xml
new file mode 100644
index 0000000..7b62aa6
--- /dev/null
+++ b/tests/fixtures/СортировкаОбъектовВПодсистемах/До/Интеграция.xml
@@ -0,0 +1,41 @@
+
+
+
+
+ Интеграция
+
+
+ ru
+ Интеграция
+
+
+
+ true
+ true
+
+
+ ru
+ Содержит подсистемы
+
+
+
+ Enum.Енум1
+ Enum.Енум2
+ 4308b2f2-9e92-486e-8c34-13c11fd5fb49
+ Enum.Енум7Enum.Енум6
+ExternalDataSource.ТекущаяСУБД.Table.ИнформацияОбОшибках
+
+
+
+
+ Файлы8
+ Файлы7
+ Файлы6
+ Файлы5
+ Файлы1
+ Файлы3
+ Файлы4
+ Файлы2
+
+
+
diff --git a/tests/fixtures/СортировкаОбъектовВПодсистемах/До/НСИ.xml b/tests/fixtures/СортировкаОбъектовВПодсистемах/До/НСИ.xml
new file mode 100644
index 0000000..f2948a3
--- /dev/null
+++ b/tests/fixtures/СортировкаОбъектовВПодсистемах/До/НСИ.xml
@@ -0,0 +1,32 @@
+
+
+
+
+ НСИ
+
+
+ ru
+ НСИ
+
+
+
+ true
+ true
+
+
+ ru
+ Включает в себя подсистемы предоставляющие функционал по хранению и использованию различных классификаторов и нормативно-справочной информации
+
+
+
+
+
+
+ АдресныйКлассификатор
+ Банки
+ Валюты
+ Календари
+ ПрочиеКлассификаторы
+
+
+
\ No newline at end of file
diff --git a/tests/fixtures/СортировкаОбъектовВПодсистемах/ОбменСообщениями.mdo b/tests/fixtures/СортировкаОбъектовВПодсистемах/До/ОбменСообщениями.mdo
similarity index 100%
rename from tests/fixtures/СортировкаОбъектовВПодсистемах/ОбменСообщениями.mdo
rename to tests/fixtures/СортировкаОбъектовВПодсистемах/До/ОбменСообщениями.mdo
diff --git a/tests/fixtures/СортировкаОбъектовВПодсистемах/До/ПодсистемыБСП.xml b/tests/fixtures/СортировкаОбъектовВПодсистемах/До/ПодсистемыБСП.xml
new file mode 100644
index 0000000..bad68f5
--- /dev/null
+++ b/tests/fixtures/СортировкаОбъектовВПодсистемах/До/ПодсистемыБСП.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ ПодсистемыБСП
+
+
+ ru
+ Подсистемы БСП
+
+
+
+ true
+ false
+
+
+ ru
+ Состав подсистем конфигурации БСП.
+Первый уровень - это разделы, второй уровень - это подсистемы.
+Все объекты находятся на уровне подсистем, к разделам прикрепление объектов запрещено.
+
+
+
+
+ e2630219-115c-4995-9a5d-52482cb39909
+
+
+
+ БазовыйФункционал
+ ИзмененияОбъектов
+ Интеграция
+ НСИ
+ ОбменСообщениями
+ ПрикладнойИнструментарий
+ СервисныйИнструментарий
+
+
+
\ No newline at end of file
diff --git a/tests/fixtures/СортировкаОбъектовВПодсистемах/До/УведомленияПриИзмененииОбъектов.mdo b/tests/fixtures/СортировкаОбъектовВПодсистемах/До/УведомленияПриИзмененииОбъектов.mdo
new file mode 100644
index 0000000..be743a1
--- /dev/null
+++ b/tests/fixtures/СортировкаОбъектовВПодсистемах/До/УведомленияПриИзмененииОбъектов.mdo
@@ -0,0 +1,15 @@
+
+
+ Уведомления
+
+ ru
+ Уведомления
+
+ true
+ trueCatalog.ВидыУведомлений CommonModule.Уведомления
+ CommonModule.УведомленияПереопределяемыйCommonModule.УведомленияСервер
+ CommonModule.УведомленияСерверПовтИсп
+ Constant.АдресатыПолучения
+ExternalDataSource.ТекущаяСУБД.Table.ИнформацияОбОшибках
+ Subsystem.ПодсистемыБСП.Subsystem.ОбменСообщениями
+
diff --git a/tests/fixtures/СортировкаОбъектовВПодсистемах/После/БазовыйФункционал.mdo b/tests/fixtures/СортировкаОбъектовВПодсистемах/После/БазовыйФункционал.mdo
new file mode 100644
index 0000000..911128b
--- /dev/null
+++ b/tests/fixtures/СортировкаОбъектовВПодсистемах/После/БазовыйФункционал.mdo
@@ -0,0 +1,19 @@
+
+
+ БазовыйФункционал
+
+ ru
+ Базовый функционал
+
+ true
+ true
+
+ ru
+ Содержит подсистемы с базовым функционалом и инструментами без которых существование системы невозможно.
+
+ НастройкиПользователей
+ ОбщегоНазначения
+ УправлениеДоступом
+ Преобразования
+ Subsystem.ПодсистемыБСП
+
diff --git a/tests/fixtures/СортировкаОбъектовВПодсистемах/Интеграция.xml b/tests/fixtures/СортировкаОбъектовВПодсистемах/После/Интеграция.xml
similarity index 95%
rename from tests/fixtures/СортировкаОбъектовВПодсистемах/Интеграция.xml
rename to tests/fixtures/СортировкаОбъектовВПодсистемах/После/Интеграция.xml
index 6129550..22761d7 100644
--- a/tests/fixtures/СортировкаОбъектовВПодсистемах/Интеграция.xml
+++ b/tests/fixtures/СортировкаОбъектовВПодсистемах/После/Интеграция.xml
@@ -22,9 +22,8 @@
Enum.Енум1
Enum.Енум2
- 4308b2f2-9e92-486e-8c34-13c11fd5fb49
- Enum.Енум7
Enum.Енум6
+ Enum.Енум7
ExternalDataSource.ТекущаяСУБД.Table.ИнформацияОбОшибках
@@ -39,4 +38,4 @@
Файлы2
-
\ No newline at end of file
+
diff --git a/tests/fixtures/СортировкаОбъектовВПодсистемах/После/ПодсистемыБСП.xml b/tests/fixtures/СортировкаОбъектовВПодсистемах/После/ПодсистемыБСП.xml
new file mode 100644
index 0000000..1c7c5cd
--- /dev/null
+++ b/tests/fixtures/СортировкаОбъектовВПодсистемах/После/ПодсистемыБСП.xml
@@ -0,0 +1,36 @@
+
+
+
+
+ ПодсистемыБСП
+
+
+ ru
+ Подсистемы БСП
+
+
+
+ true
+ false
+
+
+ ru
+ Состав подсистем конфигурации БСП.
+Первый уровень - это разделы, второй уровень - это подсистемы.
+Все объекты находятся на уровне подсистем, к разделам прикрепление объектов запрещено.
+
+
+
+
+
+
+ БазовыйФункционал
+ ИзмененияОбъектов
+ Интеграция
+ НСИ
+ ОбменСообщениями
+ ПрикладнойИнструментарий
+ СервисныйИнструментарий
+
+
+
\ No newline at end of file
diff --git a/tests/fixtures/СортировкаОбъектовВПодсистемах/УведомленияПриИзмененииОбъектов.mdo b/tests/fixtures/СортировкаОбъектовВПодсистемах/После/УведомленияПриИзмененииОбъектов.mdo
similarity index 94%
rename from tests/fixtures/СортировкаОбъектовВПодсистемах/УведомленияПриИзмененииОбъектов.mdo
rename to tests/fixtures/СортировкаОбъектовВПодсистемах/После/УведомленияПриИзмененииОбъектов.mdo
index cea45be..907acd6 100644
--- a/tests/fixtures/СортировкаОбъектовВПодсистемах/УведомленияПриИзмененииОбъектов.mdo
+++ b/tests/fixtures/СортировкаОбъектовВПодсистемах/После/УведомленияПриИзмененииОбъектов.mdo
@@ -7,13 +7,12 @@
true
true
- CommonModule.Уведомления
- 4308b2f2-9e92-486e-8c34-13c11fd5fb49
- CommonModule.УведомленияСервер
- Constant.АдресатыПолучения
- CommonModule.УведомленияПереопределяемый
Catalog.ВидыУведомлений
+ CommonModule.Уведомления
+ CommonModule.УведомленияПереопределяемый
+ CommonModule.УведомленияСервер
CommonModule.УведомленияСерверПовтИсп
+ Constant.АдресатыПолучения
ExternalDataSource.ТекущаяСУБД.Table.ИнформацияОбОшибках
Subsystem.ПодсистемыБСП.Subsystem.ОбменСообщениями
diff --git a/tests/ПроверкаСценариевОбработки.os b/tests/ПроверкаСценариевОбработки.os
index 645c2d7..ad85393 100644
--- a/tests/ПроверкаСценариевОбработки.os
+++ b/tests/ПроверкаСценариевОбработки.os
@@ -10,6 +10,7 @@
Перем МенеджерВременныхФайлов;
#Область ПрограммныйИнтерфейс
+
// Основная точка входа
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
@@ -30,7 +31,6 @@
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетТолькоНаписание");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСинхронизацияОбъектовМетаданныхВызываетИсключение");
-
ВсеТесты.Добавить("ТестДолжен_ПроверитьЗагрузкуСценариевПоИмени");
ВсеТесты.Добавить("ТестДолжен_ПроверитьИзменениеТегаКастомизацииФормы");
@@ -85,47 +85,50 @@
#КонецОбласти
-#Область СортировкаСоставаМетаданных
+#Область СортировкаСоставаПодсистем
Процедура ТестДолжен_ПроверитьСортировкуВПодсистемах() Экспорт
ОбъектСценария = ПолучитьСценарий("СортировкаСоставаПодсистем.os");
Настройки = ПолучитьДополнительныеНастройки();
- ИмяФайла = "СортировкаОбъектовВПодсистемах/Интеграция.xml";
- Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла, "Интеграция.xml", "Subsystems");
-
- ТекстДо = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
- Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, Настройки);
- Ожидаем.Что(Результат, Истина).ЭтоИстина();
- ТекстПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
- Ожидаем.Что(ТекстДо, Истина).Не_().Равно(ТекстПосле);
- Ожидаем.Что(СтрЧислоСтрок(ТекстДо), Истина).Равно(СтрЧислоСтрок(ТекстПосле));
-
- ИмяФайла = "СортировкаОбъектовВПодсистемах/УведомленияПриИзмененииОбъектов.mdo";
- Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла, "УведомленияПриИзмененииОбъектов.mdo", "Subsystems");
- ТекстДо = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
- Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, Настройки);
- Ожидаем.Что(Результат, Истина).ЭтоИстина();
- ТекстПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
- Ожидаем.Что(ТекстДо, Истина).Не_().Равно(ТекстПосле);
- Ожидаем.Что(СтрЧислоСтрок(ТекстДо), Истина).Равно(СтрЧислоСтрок(ТекстПосле));
+ ВременныйКаталог = ПолучитьИмяВременногоФайла();
+ СоздатьКаталог(ВременныйКаталог);
+ ТестовыйКаталог = ОбъединитьПути(ВременныйКаталог, "subsystems");
+ СоздатьКаталог(ТестовыйКаталог);
- ИмяФайла = "СортировкаОбъектовВПодсистемах/ОбменСообщениями.mdo";
- Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла, "ОбменСообщениями.mdo", "Subsystems");
+ ПодкаталогФикстур = ОбъединитьПути(КаталогТестовыхФикстур(), "СортировкаОбъектовВПодсистемах");
+ ПодкаталогФайловДо = ОбъединитьПути(ПодкаталогФикстур, "До");
+ ПодкаталогФайловПосле = ОбъединитьПути(ПодкаталогФикстур, "После");
+
+ Для каждого ТестовыйФайл Из НайтиФайлы(ПодкаталогФайловДо, ПолучитьМаскуВсеФайлы()) Цикл
- ТекстДо = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
- Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, Настройки);
- Ожидаем.Что(Результат, Истина).ЭтоИстина();
- ТекстПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
- Ожидаем.Что(ТекстДо, Истина).Равно(ТекстПосле);
- Ожидаем.Что(СтрЧислоСтрок(ТекстДо), Истина).Равно(СтрЧислоСтрок(ТекстПосле));
+ ИмяФайла = ТестовыйФайл.Имя;
+
+ ФайлПослеЭталон = Новый Файл(ОбъединитьПути(ПодкаталогФайловПосле, ИмяФайла));
+ ФайлДолженИзмениться = ФайлПослеЭталон.Существует();
+ Если Не ФайлДолженИзмениться Тогда
+ ФайлПослеЭталон = ТестовыйФайл;
+ КонецЕсли;
+
+ ОбрабатываемыйФайл = Новый Файл(ОбъединитьПути(ТестовыйКаталог, ИмяФайла));
+ КопироватьФайл(ТестовыйФайл.ПолноеИмя, ОбрабатываемыйФайл.ПолноеИмя);
+
+ Результат = ОбъектСценария.ОбработатьФайл(ОбрабатываемыйФайл, "", Настройки);
+ Ожидаем.Что(Результат, "Проверка обработки файла " + ИмяФайла).Равно(ФайлДолженИзмениться);
+
+ ТекстПосле = ФайловыеОперации.ПрочитатьТекстФайла(ОбрабатываемыйФайл.ПолноеИмя);
+ ТекстПослеЭталон = ФайловыеОперации.ПрочитатьТекстФайла(ФайлПослеЭталон.ПолноеИмя);
+ Ожидаем.Что(ТекстПосле, "Проверка результата файла " + ИмяФайла).Равно(ТекстПослеЭталон);
+
+ КонецЦикла;
+
+ МенеджерВременныхФайлов.УдалитьФайл(ВременныйКаталог);
КонецПроцедуры
#КонецОбласти
-
#Область ИсправлениеНеКаноническогоНаписания
Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл() Экспорт
@@ -174,6 +177,7 @@
#КонецОбласти
#Область ОтключениеПолнотекстовогоПоиска
+
Процедура ТестДолжен_ПроверитьЧтоСценарийОтключенияПолнотекстовогоПоискаИмеетМетодПолученияНастроек() Экспорт
ОбъектСценария = ПолучитьСценарий("ОтключениеПолнотекстовогоПоиска.os");
@@ -491,7 +495,6 @@
#КонецОбласти
-
#КонецОбласти
#Область Служебные
@@ -731,4 +734,4 @@
КонецПроцедуры
-#КонецОбласти
\ No newline at end of file
+#КонецОбласти