-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Возможность инициализации требуемой версии платформы 1С Предприятие и сообщение об ошибке в случае ее отсутствия #130
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: Соколов Василий <[email protected]> * Не загружались расширения в режиме обновления БД - перенос в ветку девелоп (oscript-library#128) * Убрал лишние параметры для обновления БД хранилища описано тут oscript-library#125 * Не загружались расширения в режиме обновления БД closes oscript-library#125 closes vanessa-opensource/vanessa-runner#400 Co-authored-by: Nikita Gryzlov <[email protected]> Co-authored-by: Andrei Ovsiankin <[email protected]> Co-authored-by: mors <[email protected]> * установил номер версии + увеличил зависимости Co-authored-by: Nikita Gryzlov <[email protected]> Co-authored-by: abirambul <[email protected]> Co-authored-by: Соколов Василий <[email protected]> Co-authored-by: Andrei Ovsiankin <[email protected]> Co-authored-by: mors <[email protected]>
…ъекта для возможности передавать желаемую версию платформы
Все ок, только не пойму, откуда столько сторонних изменений от @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.