Skip to content

Commit 7f64d61

Browse files
committed
Исправлена ошибка с неверным определением платформы 1С #10 #7 #9 #3
1 parent 3245fa8 commit 7f64d61

File tree

1 file changed

+31
-17
lines changed

1 file changed

+31
-17
lines changed

src/v8runner.os

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -504,34 +504,48 @@
504504
Иначе
505505
Для каждого Файл Из МассивФайлов Цикл
506506
МассивКаталогов1С.Добавить(Файл);
507+
Лог.Отладка("Нашел платформу 1С %1", Файл.Имя);
507508
КонецЦикла;
508509
КонецЕсли;
509510
КонецЦикла;
510511

511-
НужныйПуть = Неопределено;
512+
НужныйФайлПлатформы = Неопределено;
512513

513-
ИменаВерсий = Новый Массив;
514-
Для Каждого ЭлементМассива Из МассивФайлов Цикл
515-
правыйСимвол = Прав(ЭлементМассива.Имя,1);
514+
МассивКаталоговВерсий = Новый Массив;
515+
Для Каждого ЭлементМассива Из МассивКаталогов1С Цикл
516+
правыйСимвол = Прав(ЭлементМассива.Имя, 1);
516517
Если правыйСимвол < "0" или правыйСимвол > "9" Тогда
517518
Продолжить;
518519
КонецЕсли;
519-
ИменаВерсий.Добавить(ЭлементМассива.Имя);
520+
МассивКаталоговВерсий.Добавить(ЭлементМассива);
520521
КонецЦикла;
521522

522-
Если ИменаВерсий.Количество() > 0 Тогда
523-
МаксВерсия = ИменаВерсий[0];
524-
Для Сч = 1 По ИменаВерсий.Количество()-1 Цикл
525-
Если МаксВерсия < ИменаВерсий[Сч] Тогда
526-
МаксВерсия = ИменаВерсий[Сч];
523+
Если МассивКаталоговВерсий.Количество() > 0 Тогда
524+
МаксВерсия = МассивКаталоговВерсий[0].Имя;
525+
НужныйФайлПлатформы = Новый Файл(ОбъединитьПути(МассивКаталоговВерсий[0].ПолноеИмя, "bin", "1cv8.exe"));
526+
527+
Для Сч = 1 По МассивКаталоговВерсий.ВГраница() Цикл
528+
ТекущаяВерсия = МассивКаталоговВерсий[Сч].Имя;
529+
Если МаксВерсия < ТекущаяВерсия Тогда
530+
ПутьБин = ОбъединитьПути(МассивКаталоговВерсий[Сч].ПолноеИмя, "bin");
531+
ПроверяемыйФайл = Новый Файл(ОбъединитьПути(ПутьБин, "1cv8.exe"));
532+
Если НЕ ПроверяемыйФайл.Существует() Тогда
533+
Продолжить;
534+
КонецЕсли;
535+
536+
МаксВерсия = ТекущаяВерсия;
537+
НужныйФайлПлатформы = ПроверяемыйФайл;
527538
КонецЕсли;
528539
КонецЦикла;
529540

530-
НужныйПуть = Новый Файл(ОбъединитьПути(ВозможныйПуть, МаксВерсия, "bin\1cv8.exe"));
531-
Лог.Отладка("Версия найдена: " + НужныйПуть.ПолноеИмя);
541+
Если НужныйФайлПлатформы.Существует() Тогда
542+
Лог.Отладка("Версия найдена: " + НужныйФайлПлатформы.ПолноеИмя);
543+
Иначе
544+
НужныйФайлПлатформы = Неопределено;
545+
КонецЕсли;
532546
КонецЕсли;
533547

534-
Если НужныйПуть = Неопределено Тогда
548+
Если НужныйФайлПлатформы = Неопределено Тогда
535549
ВызватьИсключение "Не найден путь к платформе 1С <"+ВерсияПлатформы+">";
536550
КонецЕсли;
537551

@@ -541,14 +555,14 @@
541555
Если НЕ КаталогУстановки.Существует() Тогда
542556
КаталогУстановки = Новый Файл("/opt/1C/v8.3/x86_64");
543557
КонецЕсли;
544-
НужныйПуть = Новый Файл(Строка(КаталогУстановки.ПолноеИмя) + "/" + "1cv8");
558+
НужныйФайлПлатформы = Новый Файл(Строка(КаталогУстановки.ПолноеИмя) + "/" + "1cv8");
545559
КонецЕсли;
546560

547-
Если Не НужныйПуть.Существует() Тогда
548-
ВызватьИсключение "Ошибка определения версии платформы. Файл <"+НужныйПуть.ПолноеИмя+"> не существует";
561+
Если Не НужныйФайлПлатформы.Существует() Тогда
562+
ВызватьИсключение "Ошибка определения версии платформы. Файл <"+НужныйФайлПлатформы.ПолноеИмя+"> не существует";
549563
КонецЕсли;
550564

551-
Возврат НужныйПуть.ПолноеИмя;
565+
Возврат НужныйФайлПлатформы.ПолноеИмя;
552566

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

0 commit comments

Comments
 (0)