Skip to content

Commit

Permalink
Merge pull request #74 from 240596448/smartTags-patch
Browse files Browse the repository at this point in the history
Smart tags patch:  исправление неверного чтение опций корня и падения.
  • Loading branch information
khorevaa authored Dec 18, 2023
2 parents 64192f1 + 0e59a5c commit 8ddf764
Showing 1 changed file with 20 additions and 36 deletions.
56 changes: 20 additions & 36 deletions src/Классы/smartTags.os
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@

ПараметрыКонфигурации = ПолучитьПараметрыКонфигурацииИзИсходников(КаталогИсходныхФайлов);

Возврат ПараметрыКонфигурации.Version;
Возврат ПараметрыКонфигурации["Version"];

КонецФункции // ПрочитатьВерсиюИзИсходников()

Expand All @@ -226,7 +226,7 @@
ВызватьИсключение СтрШаблон("Файл <%1> не найден у указанном каталоге.", ФайлКонфигурации.ПолноеИмя);
КонецЕсли;

ПараметрыКонфигурации = Новый Структура;
ПараметрыКонфигурации = Новый Соответствие;

Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ФайлКонфигурации.ПолноеИмя);
Expand All @@ -237,8 +237,6 @@
КонецЕсли;
КонецЦикла;

Чтение.Прочитать();

МассивДоступныхСвойств = Новый Массив;
МассивДоступныхСвойств.Добавить("Vendor");
МассивДоступныхСвойств.Добавить("Version");
Expand All @@ -247,48 +245,34 @@
МассивДоступныхСвойств.Добавить("Name");

Пока Не (Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента И Чтение.ЛокальноеИмя = "Properties") Цикл

КлючИЗначение = ПрочитатьОпцию(Чтение);

Если МассивДоступныхСвойств.Найти(КлючИЗначение.Ключ) = Неопределено Тогда

Ключ = Чтение.ЛокальноеИмя;
Если НЕ Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента
Или МассивДоступныхСвойств.Найти(Ключ) = Неопределено Тогда
Чтение.Прочитать();
Продолжить;
Иначе
Чтение.Прочитать();
Если Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
Значение = Чтение.Значение;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Значение = "";
Иначе
Продолжить;
КонецЕсли;
ПараметрыКонфигурации.Вставить(Ключ, Значение);
Лог.Отладка("Читаю опцию: %1
| Значение: %2", Ключ, Значение);
КонецЕсли;

ПараметрыКонфигурации.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);

КонецЦикла;

Чтение.Закрыть();

Возврат ПараметрыКонфигурации;

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

// Функция читает опцию из ЧтениеXML
//
Функция ПрочитатьОпцию(Знач Чтение)

Перем Ключ;
Перем Значение;

Ключ = Чтение.ЛокальноеИмя;

Чтение.Прочитать();
Если Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
Значение = Чтение.Значение;
Чтение.Прочитать();
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Значение = "";
КонецЕсли;

Лог.Отладка("Читаю опцию: %1
| Значение: %2", Ключ, Значение);

Чтение.Прочитать();

Возврат Новый Структура("Ключ,Значение", Ключ, Значение);

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

Процедура Инициализация()

Лог = Логирование.ПолучитьЛог(ИмяЛога());
Expand Down

0 comments on commit 8ddf764

Please sign in to comment.