-
Notifications
You must be signed in to change notification settings - Fork 59
Возможность инициализации требуемой версии платформы 1С Предприятие и сообщение об ошибке в случае ее отсутствия #130
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
base: develop
Are you sure you want to change the base?
Conversation
Убрал лишние параметры для обновления БД хранилища
* Fix oscript-library#127. Исправлена опечатка * Добавлен вывод гиперссылок для комментариев в хранилище (oscript-library#124) * Добавлен вывод гиперссылок для комментариев В версии 8.3.17 добавлен ключ -IncludeCommentLinesWithDoubleSlash для /ConfigurationRepositoryReport. oscript-library#122 * Объявление функции экспортной Co-authored-by: Соколов Василий <abirambul@yandex.ru> * Не загружались расширения в режиме обновления БД - перенос в ветку девелоп (oscript-library#128) * Убрал лишние параметры для обновления БД хранилища описано тут oscript-library#125 * Не загружались расширения в режиме обновления БД closes oscript-library#125 closes vanessa-opensource/vanessa-runner#400 Co-authored-by: Nikita Gryzlov <nixel2007@gmail.com> Co-authored-by: Andrei Ovsiankin <ovsiankin.aa@gmail.com> Co-authored-by: mors <mors@pr365.ru> * установил номер версии + увеличил зависимости Co-authored-by: Nikita Gryzlov <nixel2007@gmail.com> Co-authored-by: abirambul <abirambul@gmail.com> Co-authored-by: Соколов Василий <abirambul@yandex.ru> Co-authored-by: Andrei Ovsiankin <ovsiankin.aa@gmail.com> Co-authored-by: mors <mors@pr365.ru>
…ъекта для возможности передавать желаемую версию платформы
Все ок, только не пойму, откуда столько сторонних изменений от @artbear и @nixel2007. Как сделать, чтобы в PR были только коммиты, присущие ему? |
Я базовую ветку менял, может в этом причина. Могу заново PR сделать, а этот закрыть. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Я не совсем понимаю, где здесь сообщение об ошибке. Нет ни вывода лога, ни выброса исключения.
- Установка версии платформы есть через отдельный сеттер, не совсем понимаю, зачем это делать в конструкторе.
- Перед выполнением команд вызывается метод ПроверитьВозможностьВыполненияКоманды, который в том числе проверяет заполненность пути к платформе. Можно вынести из него проверку на заполненности пути к платформе в сеттер. Тогда можно будет не менять апи конструктора, просто сеттер по версии платформы начнет бросать исключение.
Я проглядел конструктор. Да, не надо менять конструктор, лучше просто встроиться в стандартный функционал установки искомой версии. |
Дело в том, что инициализация выполняется командой Инициализация() внутри которой выполняется поиск любой установленной версии платформы 8.3 вне зависимости от того какая версия указана в параметрах. И если будет найдена любая установленная версия, а требуемой версии не будет установлено на компьютере, то для выполнения команд будет использована она, что противоречит переданным параметрам на мой взгляд. Если инициализировать переданной в параметрах версией сразу, то ошибку в случае ее отсутствия выкинет v8runner позже. Может быть вместе с выводом в отладку кидать исключения прямо в инициализации? |
я вот этот тезис не понимаю. vanessa-runner у экземпляра УправлениеКонфигуратором вызывает метод установки версии платформы. v8runner будет пытаться ее найти и если не найдет, сразу из сеттера выкинет исключение. откуда противоречие? |
Пишу по памяти, прошу простить. Если ничего не путаю, то проблема в функции ПутьКПлатформе1С(Знач Путь = "") файла v8runner.os. |
но ведь vanessa runner всегда передает путь к платформе, если он указан в параметрах? |
Может быть у меня не самый актуальный код. Я смотрю здесь: **ИспользоватьВерсиюПлатформы**:
Процедура ИспользоватьВерсиюПлатформы(Знач МаскаВерсии, Знач Разрядность = Неопределено) Экспорт
Путь = ПолучитьПутьКВерсииПлатформы(МаскаВерсии, Разрядность);
ПутьКПлатформе1С(Путь);
КонецПроцедуры
**ПолучитьПутьКВерсииПлатформы**:
Функция ПолучитьПутьКВерсииПлатформы(Знач ВерсияПлатформы, Знач Разрядность = Неопределено) Экспорт
Если Лев(ВерсияПлатформы, 2) <> "8." Тогда
ВызватьИсключение "Неверная версия платформы <"+ ВерсияПлатформы + ">";
КонецЕсли;
ПутьКПредприятию = Платформа1С.ПутьКПредприятию(ВерсияПлатформы, Разрядность);
Возврат ПутьКПредприятию;
КонецФункции
**ПутьКПредприятию**:
Функция ПутьКПредприятию(Знач НомерВерсии, Знач Разрядность = Неопределено) Экспорт
Возврат ПутьКПриложению(НомерВерсии, ПриложенияПлатформы.Предприятие, Разрядность);
КонецФункции
**ПутьКПриложению**:
Функция ПутьКПриложению(Знач НомерВерсии, Знач ПриложениеПлатформы, Знач Разрядность)
ПутьКФайлу = "";
ВерсияПлатформы = ПолучитьВерсию(НомерВерсии, ПриложениеПлатформы, Разрядность);
Если Не ВерсияПлатформы = Неопределено Тогда
ПутьКФайлу = ВерсияПлатформы.ПутьКПриложению(ПриложениеПлатформы);
КонецЕсли;
Возврат ПутьКФайлу;
КонецФункции отсюда видно кмк что Путь может быть пустым, если не будет найдена версия платформы. |
Спасибо, что научили форматированию :) |
Посыл ПР правильный, лучше выдавать исключение. а вот с реализацией проблемы. возможно, это связано с проблемой неверной инициализации переменной мПутьКПлатформе1С вроде бы был такой ишуз, но я его не нашел ( |
Я малой кровью хотел :) |
Подтверждаю указанные проблемы, нужно исправлять, правда, ПР их полностью не решает ( вообще хочу в ванесса-раннер сделать следующий тикет |
При использовании vanessa runner в случае если передаваемая в параметрах версия платформы отсутствует, то используется одна из других установленных версий, тогда как логичнее было бы выдавать сообщение об ошибке.
Это происходит из-за того что при инициализации ищется любая установленная версия платформы 8.3.