44#Использовать 1connector
55#Использовать fs
66#Использовать logos
7+ #Использовать configor
8+ #Использовать "../../internal"
79
810Перем _ТаймаутЗапуска ; // Число - Таймаут запуска сервиса в секундах
911Перем _ТаймаутПроверки ; // Число - Таймаут HTTP-проверки доступности в секундах
275277
276278 _Лог.Отладка("Запуск процесса: %1" , СтрокаКоманды);
277279
278- _Процесс = СоздатьПроцесс(СтрокаКоманды, РабочийКаталог, , , , ПеременныеСреды ());
280+ _Процесс = СоздатьПроцесс(СтрокаКоманды, РабочийКаталог, , , , ПолучитьПараметрыСредыПроцесса ());
279281 _Процесс.Запустить();
280282
281283 Если Синхронно Тогда
393395
394396КонецФункции
395397
398+ Функция ПолучитьПараметрыСредыПроцесса ()
399+
400+ ПеременныеСреды = ПеременныеСреды();
401+ СтартовыйКаталог = СтартовыйСценарий().Каталог;
402+ ПутьККонфигурации = ОбъединитьПути(СтартовыйКаталог, "oscript.cfg" );
403+
404+ Если Не ФС.ФайлСуществует(ПутьККонфигурации) Тогда
405+ Возврат ПеременныеСреды;
406+ КонецЕсли ;
407+
408+ Конфигурация = КонфигурацияОСкрпитВСоответствие(ПеременныеСреды["OSCRIPT_CONFIG" ]);
409+ Если ЗначениеЗаполнено (Конфигурация["lib.system" ]) Тогда
410+ Возврат ПеременныеСреды;
411+ КонецЕсли ;
412+
413+ МенеджерПараметров = Новый МенеджерПараметров();
414+ МенеджерПараметров.УстановитьФайлПараметров(ПутьККонфигурации);
415+ МенеджерПараметров.ДобавитьПровайдерПараметров(Новый ПровайдерПараметровCFG());
416+ МенеджерПараметров.Прочитать();
417+
418+ УстановитьКаталогВКонфигурацию(Конфигурация, "lib.system" , МенеджерПараметров.Параметр("lib.system" ));
419+ УстановитьКаталогВКонфигурацию(Конфигурация, "lib.additional" , МенеджерПараметров.Параметр("lib.additional" ));
420+
421+ ПеременныеСреды["OSCRIPT_CONFIG" ] = КонфигурацияОСкрпитВСтроку(Конфигурация);
422+
423+ Возврат ПеременныеСреды;
424+
425+ КонецФункции
426+
427+ Функция КонфигурацияОСкрпитВСоответствие (Параметры )
428+
429+ Результат = Новый Соответствие();
430+
431+ Если Не ЗначениеЗаполнено (Параметры) Тогда
432+ Возврат Результат;
433+ КонецЕсли ;
434+
435+ КлючиИЗначения = СтрРазделить (Параметры, ";" );
436+
437+ Для Каждого КлючИЗначение Из КлючиИЗначения Цикл
438+ Части = СтрРазделить (КлючИЗначение, "=" );
439+ Если Части.Количество() = 2 Тогда
440+ Результат.Вставить(СокрЛП (Части[0 ]), СокрЛП (Части[1 ]));
441+ КонецЕсли ;
442+ КонецЦикла ;
443+
444+ Возврат Результат;
445+
446+ КонецФункции
447+
448+ Функция КонфигурацияОСкрпитВСтроку (Параметры )
449+
450+ Результат = Новый Массив();
451+
452+ Для Каждого КлючИЗначение Из Параметры Цикл
453+ Если ЗначениеЗаполнено (КлючИЗначение.Значение) Тогда
454+ Результат.Добавить(СтрШаблон ("%1=%2" , НРег (КлючИЗначение.Ключ), КлючИЗначение.Значение));
455+ КонецЕсли ;
456+ КонецЦикла ;
457+
458+ Возврат СтрСоединить (Результат, ";" );
459+
460+ КонецФункции
461+
462+ Процедура УстановитьКаталогВКонфигурацию (Конфигурация , Ключ , Знач Каталог )
463+
464+ Если Не ЗначениеЗаполнено (Каталог) Тогда
465+ Возврат ;
466+ КонецЕсли ;
467+
468+ ПозицияТочкиЗапятой = СтрНайти (Каталог, ";" );
469+ Если ПозицияТочкиЗапятой > 0 Тогда
470+ Каталог = Сред (Каталог, 1 , ПозицияТочкиЗапятой - 1 );
471+ КонецЕсли ;
472+
473+ СтартовыйКаталог = СтартовыйСценарий().Каталог;
474+ НормализованныйПуть = ФС.НормализоватьПуть(ОбъединитьПути(СтартовыйКаталог, Каталог));
475+
476+ Если ФС.КаталогСуществует(НормализованныйПуть) Тогда
477+ Каталог = НормализованныйПуть;
478+ КонецЕсли ;
479+
480+ Конфигурация[Ключ] = Каталог;
481+
482+ КонецПроцедуры
483+
396484#КонецОбласти
0 commit comments