Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
77 lines (57 sloc) 3.49 KB
#Использовать 1commands
#Использовать tempfiles
#Использовать logos
Перем мКаталогВнешнихПрограмм;
Перем Лог;
Перем ЭтоWindows;
//////////////////////////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС
Процедура ВыгрузитьВерсиюКонфигурации(Знач ФайлХранилища, Знач ВыходнойФайл, Знач НомерВерсии = 0) Экспорт
ЛогTool1CD = ВременныеФайлы.НовоеИмяФайла("txt");
ПрефиксПути = ?(ЭтоWindows = Ложь, "Z:", "");
СтрокаЗапуска = """" + ПутьTool1CD() + """ """ + ПрефиксПути + ФайлХранилища
+ """ -l """ + ПрефиксПути + ЛогTool1CD
+ """ -q -ne -drc "
+ Строка(НомерВерсии)
+" """ + ПрефиксПути + ВыходнойФайл +"""";
ФайлИсходника = Новый Файл(ВыходнойФайл);
ФайлЛога = Новый Файл(ЛогTool1CD);
КодВозврата = "";
Если НЕ ЭтоWindows Тогда
СтрокаЗапуска = "wine "+СтрокаЗапуска;
КонецЕсли;
Лог.Отладка(СтрокаЗапуска);
Команда = Новый Команда;
Команда.УстановитьСтрокуЗапуска(СтрокаЗапуска);
Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8);
Команда.ПоказыватьВыводНемедленно(Истина);
КодВозврата = Команда.Исполнить();
ВыводКоманды = Команда.ПолучитьВывод();
Если ФайлЛога.Существует() Тогда
ТекстЛогаTool1CD = (ПрочитатьФайл(ЛогTool1CD));
УдалитьФайлы(ФайлЛога.ПолноеИмя);
Иначе
ВызватьИсключение "Tool_1CD не выгрузил файл конфигурации." + ВыводКоманды;
КонецЕсли;
Если КодВозврата <> 0 Тогда
Лог.Ошибка(ТекстЛогаTool1CD);
ВызватьИсключение "Tool_1CD вернул код возврата " + КодВозврата;
КонецЕсли;
КонецПроцедуры
//////////////////////////////////////////////////////////////////////////////////////////////////
//
Функция ПутьTool1CD()
Если мКаталогВнешнихПрограмм = Неопределено Тогда
мКаталогВнешнихПрограмм = ОбъединитьПути(ТекущийСценарий().Каталог, "bin", "cTool_1CD.exe");
КонецЕсли;
Возврат мКаталогВнешнихПрограмм;
КонецФункции
Функция ПрочитатьФайл(Знач ИмяФайла)
ЧтениеТекста = Новый ЧтениеТекста(ИмяФайла);
Текст = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
Возврат Текст;
КонецФункции
СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
Лог = Логирование.ПолучитьЛог("oscript.lib.tool1cd");
You can’t perform that action at this time.