Skip to content

Instantly share code, notes, and snippets.

@khorevaa
Last active November 29, 2017 17:21
Show Gist options
  • Save khorevaa/ab1a502eaabeffc6152ec3c589b7f8b0 to your computer and use it in GitHub Desktop.
Save khorevaa/ab1a502eaabeffc6152ec3c589b7f8b0 to your computer and use it in GitHub Desktop.
// Функция читает параметры конфигурации из каталога исходников
//
Функция ПолучитьПараметрыКонфигурацииИзИсходников(КаталогИсходныхФайлов)
ФайлКонфигурации = Новый Файл(ОбъединитьПути(КаталогИсходныхФайлов, "Configuration.xml"));
Если Не ФайлКонфигурации.Существует() Тогда
ВызватьИсключение СтрШаблон("");
КонецЕсли;
ПараметрыКонфигурации = Новый Структура;
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ФайлКонфигурации.ПолноеИмя);
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента И Чтение.Имя = "Properties" Тогда
Прервать;
КонецЕсли;
КонецЦикла;
//Чтение на следующий элемент
Чтение.Прочитать();
МассивДоступныхСвойств = Новый Массив;
МассивДоступныхСвойств.Добавить("Vendor");
МассивДоступныхСвойств.Добавить("Version");
МассивДоступныхСвойств.Добавить("UpdateCatalogAddress");
МассивДоступныхСвойств.Добавить("Comment");
МассивДоступныхСвойств.Добавить("Name");
Пока Не (Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента и Чтение.ЛокальноеИмя = "Properties") Цикл
КлючИЗначение = ПрочитатьОпцию(Чтение);
Если МассивДоступныхСвойств.Найти(КлючИЗначение.Ключ) = Неопределено Тогда
Продолжить;
КонецЕсли;
ПараметрыКонфигурации.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
Чтение.Закрыть();
Возврат ПараметрыКонфигурации;
КонецФункции
// Функция читает опцию из ЧтениеXML
//
Функция ПрочитатьОпцию(Знач Чтение)
Перем Ключ;
Перем Значение;
Ключ = Чтение.ЛокальноеИмя;
Чтение.Прочитать();
Если Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
Значение = Чтение.Значение;
Чтение.Прочитать();
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Значение = "";
Иначе
КонецЕсли;
// Сообщить(СтрШаблон("Читаю опцию: %1
// | Значение: %2",Ключ,Значение));
Чтение.Прочитать();
Возврат Новый Структура("Ключ,Значение", Ключ, Значение);
КонецФункции
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment