|
490 | 490 | КонецЕсли;
|
491 | 491 |
|
492 | 492 | МассивКаталогов1С = Новый Массив;
|
493 |
| - |
494 |
| - МассивФайлов = Новый Массив; |
495 | 493 | Для Каждого ВозможныйПуть Из КаталогиУстановкиПлатформы Цикл
|
496 | 494 |
|
497 | 495 | Лог.Отладка("Выполняю попытку поиска версии в каталоге " + ВозможныйПуть);
|
498 | 496 |
|
499 |
| - РезультатПоиска = НайтиФайлы(ВозможныйПуть, ВерсияПлатформы+"*"); |
500 |
| - //Если в данном каталоге установки платформы нет каталого с искомой версией не делать ничего, перейти к следующему возможному пути |
501 |
| - //Если есть каталоги с искомой версией тогда добавить их в общий массив результатов поиска |
502 |
| - Если НЕ РезультатПоиска.Количество() Тогда |
503 |
| - Продолжить; |
504 |
| - Иначе |
505 |
| - |
506 |
| - Для Каждого Каталог ИЗ РезультатПоиска Цикл |
507 |
| - МассивФайлов.Добавить(Каталог); |
508 |
| - КонецЦикла; |
509 |
| - //Зафиксировать возможный путь, как подтвержденный путь где есть версии по заданной маске. |
510 |
| - ПодтвержденныйПуть = ВозможныйПуть; |
511 |
| - КонецЕсли; |
512 |
| - |
| 497 | + МассивФайлов = НайтиФайлы(ВозможныйПуть, ВерсияПлатформы+"*"); |
513 | 498 | Если МассивФайлов.Количество() = 0 Тогда
|
514 | 499 | Лог.Отладка("Не найдено ни одного каталога с версией.");
|
515 |
| - |
516 | 500 | Продолжить;
|
517 | 501 | КонецЕсли;
|
518 | 502 | Если МассивКаталогов1С = Неопределено Тогда
|
519 | 503 | МассивКаталогов1С = МассивФайлов;
|
520 | 504 | Иначе
|
521 | 505 | Для каждого Файл Из МассивФайлов Цикл
|
522 | 506 | МассивКаталогов1С.Добавить(Файл);
|
| 507 | + Лог.Отладка("Нашел платформу 1С %1", Файл.Имя); |
523 | 508 | КонецЦикла;
|
524 | 509 | КонецЕсли;
|
525 | 510 | КонецЦикла;
|
526 | 511 |
|
527 |
| - НужныйПуть = Неопределено; |
| 512 | + НужныйФайлПлатформы = Неопределено; |
528 | 513 |
|
529 |
| - ИменаВерсий = Новый Массив; |
530 |
| - Для Каждого ЭлементМассива Из МассивФайлов Цикл |
531 |
| - правыйСимвол = Прав(ЭлементМассива.Имя,1); |
| 514 | + МассивКаталоговВерсий = Новый Массив; |
| 515 | + Для Каждого ЭлементМассива Из МассивКаталогов1С Цикл |
| 516 | + правыйСимвол = Прав(ЭлементМассива.Имя, 1); |
532 | 517 | Если правыйСимвол < "0" или правыйСимвол > "9" Тогда
|
533 | 518 | Продолжить;
|
534 | 519 | КонецЕсли;
|
535 |
| - ИменаВерсий.Добавить(ЭлементМассива.Имя); |
| 520 | + МассивКаталоговВерсий.Добавить(ЭлементМассива); |
536 | 521 | КонецЦикла;
|
537 | 522 |
|
538 |
| - Если ИменаВерсий.Количество() > 0 Тогда |
539 |
| - МаксВерсия = ИменаВерсий[0]; |
540 |
| - Для Сч = 1 По ИменаВерсий.Количество()-1 Цикл |
541 |
| - //Прежде чем проверять версию на максимум проверить ее на наличие исполняемого файла толстого клиента 1cv8.exe |
542 |
| - НужныйПуть = Новый Файл(ОбъединитьПути(ПодтвержденныйПуть, ИменаВерсий[Сч], "bin\1cv8.exe")); |
543 |
| - Если НужныйПуть.Существует() И МаксВерсия < ИменаВерсий[Сч] Тогда |
544 |
| - МаксВерсия = ИменаВерсий[Сч]; |
| 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 | + НужныйФайлПлатформы = ПроверяемыйФайл; |
545 | 538 | КонецЕсли;
|
546 | 539 | КонецЦикла;
|
547 | 540 |
|
548 |
| - НужныйПуть = Новый Файл(ОбъединитьПути(ПодтвержденныйПуть, МаксВерсия, "bin\1cv8.exe")); |
549 |
| - Лог.Отладка("Версия найдена: " + НужныйПуть.ПолноеИмя); |
| 541 | + Если НужныйФайлПлатформы.Существует() Тогда |
| 542 | + Лог.Отладка("Версия найдена: " + НужныйФайлПлатформы.ПолноеИмя); |
| 543 | + Иначе |
| 544 | + НужныйФайлПлатформы = Неопределено; |
| 545 | + КонецЕсли; |
550 | 546 | КонецЕсли;
|
551 | 547 |
|
552 |
| - Если НужныйПуть = Неопределено Тогда |
| 548 | + Если НужныйФайлПлатформы = Неопределено Тогда |
553 | 549 | ВызватьИсключение "Не найден путь к платформе 1С <"+ВерсияПлатформы+">";
|
554 | 550 | КонецЕсли;
|
555 | 551 |
|
|
559 | 555 | Если НЕ КаталогУстановки.Существует() Тогда
|
560 | 556 | КаталогУстановки = Новый Файл("/opt/1C/v8.3/x86_64");
|
561 | 557 | КонецЕсли;
|
562 |
| - НужныйПуть = Новый Файл(Строка(КаталогУстановки.ПолноеИмя) + "/" + "1cv8"); |
| 558 | + НужныйФайлПлатформы = Новый Файл(Строка(КаталогУстановки.ПолноеИмя) + "/" + "1cv8"); |
563 | 559 | КонецЕсли;
|
564 | 560 |
|
565 |
| - Если Не НужныйПуть.Существует() Тогда |
566 |
| - ВызватьИсключение "Ошибка определения версии платформы. Файл <"+НужныйПуть.ПолноеИмя+"> не существует"; |
| 561 | + Если Не НужныйФайлПлатформы.Существует() Тогда |
| 562 | + ВызватьИсключение "Ошибка определения версии платформы. Файл <"+НужныйФайлПлатформы.ПолноеИмя+"> не существует"; |
567 | 563 | КонецЕсли;
|
568 | 564 |
|
569 |
| - Возврат НужныйПуть.ПолноеИмя; |
| 565 | + Возврат НужныйФайлПлатформы.ПолноеИмя; |
570 | 566 |
|
571 | 567 | КонецФункции
|
572 | 568 |
|
|
0 commit comments