Skip to content

Функция запуска проверки конфигурации #137

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

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions src/v8runner.os
Original file line number Diff line number Diff line change
Expand Up @@ -1459,6 +1459,102 @@

КонецПроцедуры

Функция ПроверкаКонфигурации(Проверки, ИмяРасширения = "") Экспорт
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Мне кажется, было бы удобнее, чтобы пользователь метода не запоминал все возможные настройки и получал приемлемый результат. Например, есть какой-то метод, который возвращает предзаполненные "Проверки" наиболее употребимым составом проверок.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ну а какие предзаполненные? у меня, например, тослтый клиент, у меня свои предзаполненные. у остальных - тонкие клиенты и там свои. ну и есть же старая ВыполнитьСинтаксическийКонтроль, там как раз предзаполненность для всех.

да и мы же не для пользователей пишем, а для суровых бородатых прогеров.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

можно, наверное, при пустом массиве ставить проверки такие же, как в конфигураторе по умолчанию ставятся - проверку лог. целостности, поиск некорректных ссылок, тонкий клиент, сервер и расширенную проверку.
но это будет долгая проверка - у меня при установленной расширенной проверке джоба работает около часа.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

я также хотел предложить, чтобы был публичный метод, возвращающий соответствие с возможными ключами

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

исправлено. @EvilBeaver закрываем обсуждение?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Как именно исправлено? где?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Как именно исправлено? где?

@EvilBeaver исправлено в c268631

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

нет описания публичной функции


Перем Параметры, ДопустимыеКлючи, КлючПроверки, КлючЗапуска;

Параметры = СтандартныеПараметрыЗапускаКонфигуратора();

Параметры.Добавить("/CheckConfig");

ДопустимыеКлючи = КлючиПроверкиКонфигурации();

Для Каждого Проверка Из Проверки Цикл
КлючПроверки = ДопустимыеКлючи.Получить(СокрЛП(Проверка));

Если КлючПроверки <> Неопределено Тогда
КлючЗапуска = ?(НРег(КлючПроверки) = "-extension", СтрШаблон("%1 %2", КлючПроверки, ИмяРасширения), КлючПроверки);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сонара на тебя нет )
тернарные операторы не юзаем.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2.1 регистр важен ИМХО

1С-ка в каких-то версиях ругалась, если ключ в другом регистре.
могли и исправить, конечно.

2 предлагаю явно написать СтрШаблон("-Extension %1", ИмяРасширения)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Артур, чего это мы ?() вдруг не юзаем? Вложенные - да, а тут обычный

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

сонар бсл и на обычный тернарник ругается. и я с ним согласен, код гораздо менее читабелен.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Запрет тернарника по умолчанию выключен.

Параметры.Добавить(КлючЗапуска);
КонецЕсли;
КонецЦикла;

ВыполнитьКоманду(Параметры);

Возврат Истина;
КонецФункции

Функция КлючиПроверкиКонфигурации() Экспорт
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а где описание публичной функции? )


Перем ДопустимыеКлючи;

ДопустимыеКлючи = Новый Соответствие;
ДопустимыеКлючи.Вставить("ПроверкаЛогическойЦелостностиКонфигурации", "-ConfigLogIntegrity");
ДопустимыеКлючи.Вставить("ПоискНекорректныхСсылок", "-IncorrectReferences");
ДопустимыеКлючи.Вставить("ТонкийКлиент", "-ThinClient");
ДопустимыеКлючи.Вставить("ВебКлиент", "-WebClient");
ДопустимыеКлючи.Вставить("Сервер", "-Server");
ДопустимыеКлючи.Вставить("ВнешнееСоединение", "-ExternalConnection");
ДопустимыеКлючи.Вставить("ВнешнееСоединениеКлиентСервер", "-ExternalConnectionServer");
ДопустимыеКлючи.Вставить("МобильноеПриложениеКлиент", "-MobileAppClient");
ДопустимыеКлючи.Вставить("МобильноеПриложениеСервер", "-MobileAppServer");
ДопустимыеКлючи.Вставить("ТолстыйКлиентУправляемоеПриложение", "-ThickClientManagedApplication");
ДопустимыеКлючи.Вставить("ТолстыйКлиентУправляемоеПриложениеКлиентСервер", "-ThickClientServerManagedApplication");
ДопустимыеКлючи.Вставить("ТолстыйКлиентОбычноеПриложение", "-ThickClientOrdinaryApplication");
ДопустимыеКлючи.Вставить("ТолстыйКлиентОбычноеПриложениеКлиентСервер", "-ThickClientServerOrdinaryApplication");
ДопустимыеКлючи.Вставить("ПоставкаМодулейБезИсходныхТекстов", "-DistributiveModules");
ДопустимыеКлючи.Вставить("ПоискНеиспользуемыхПроцедурИФункций", "-UnreferenceProcedures");
ДопустимыеКлючи.Вставить("ПроверкаСуществованияНазначенныхОбработчиков", "-HandlersExistence");
ДопустимыеКлючи.Вставить("ПоискПустыхОбработчиков", "-EmptyHandlers");
ДопустимыеКлючи.Вставить("РасширеннаяПроверка", "-ExtendedModulesCheck");
ДопустимыеКлючи.Вставить("ПоискИспользованияМодальности", "-CheckUseModality");
ДопустимыеКлючи.Вставить("ПоискИспользованияСинхронныхВызовов", "-CheckUseSynchronousCalls");
ДопустимыеКлючи.Вставить("ПоискНеподдерживаемойФункциональности", "-UnsupportedFunctional");
ДопустимыеКлючи.Вставить("ВыполнитьЗаданныеПроверкиДляВсехРасширений", "-AllExtensions");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Может покороче назвать как-то? ПроверкаВсехРасширений/ПроверкаРасширений?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

можно наделать в соответствии сколько угодно записей. я добавил так, как это в конфигураторе у меня называется.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну а зачем нам неиспользуемые ключи и синонимы?

ДопустимыеКлючи.Вставить("ВыполнитьЗаданныеПроверкиДляУказанногоРасширения", "-Extension");

ДопустимыеКлючи.Вставить("ЛогическаяЦелостность", "-ConfigLogIntegrity");
ДопустимыеКлючи.Вставить("НекорректныеСсылки", "-IncorrectReferences");
ДопустимыеКлючи.Вставить("ВнешнееСоединениеСервер", "-ExternalConnectionServer");
ДопустимыеКлючи.Вставить("ТолстыйКлиентУправляемоеПриложениеСервер", "-ThickClientServerManagedApplication");
ДопустимыеКлючи.Вставить("ТолстыйКлиент", "-ThickClientOrdinaryApplication");
ДопустимыеКлючи.Вставить("ТолстыйКлиентСервер", "-ThickClientServerOrdinaryApplication");
ДопустимыеКлючи.Вставить("МодулиБезИсходныхТекстов", "-DistributiveModules");
ДопустимыеКлючи.Вставить("НеиспользуемыеПроцедурыИФункции", "-UnreferenceProcedures");
ДопустимыеКлючи.Вставить("НазначенныеОбработчики", "-HandlersExistence");
ДопустимыеКлючи.Вставить("ПустыеОбработчики", "-EmptyHandlers");
ДопустимыеКлючи.Вставить("ИспользованиеМодальности", "-CheckUseModality");
ДопустимыеКлючи.Вставить("ИспользованиеСинхронныхВызовов", "-CheckUseSynchronousCalls");
ДопустимыеКлючи.Вставить("НеподдерживаемаяФункциональность", "-UnsupportedFunctional");
ДопустимыеКлючи.Вставить("ВсеРасширения", "-AllExtensions");
ДопустимыеКлючи.Вставить("Расширение", "-Extension");

ДопустимыеКлючи.Вставить("ConfigLogIntegrity", "-ConfigLogIntegrity");
ДопустимыеКлючи.Вставить("IncorrectReferences", "-IncorrectReferences");
ДопустимыеКлючи.Вставить("ThinClient", "-ThinClient");
ДопустимыеКлючи.Вставить("WebClient", "-WebClient");
ДопустимыеКлючи.Вставить("Server", "-Server");
ДопустимыеКлючи.Вставить("ExternalConnection", "-ExternalConnection");
ДопустимыеКлючи.Вставить("ExternalConnectionServer", "-ExternalConnectionServer");
ДопустимыеКлючи.Вставить("MobileAppClient", "-MobileAppClient");
ДопустимыеКлючи.Вставить("MobileAppServer", "-MobileAppServer");
ДопустимыеКлючи.Вставить("ThickClientManagedApplication", "-ThickClientManagedApplication");
ДопустимыеКлючи.Вставить("ThickClientServerManagedApplication", "-ThickClientServerManagedApplication");
ДопустимыеКлючи.Вставить("ThickClientOrdinaryApplication", "-ThickClientOrdinaryApplication");
ДопустимыеКлючи.Вставить("ThickClientServerOrdinaryApplication", "-ThickClientServerOrdinaryApplication");
ДопустимыеКлючи.Вставить("DistributiveModules", "-DistributiveModules");
ДопустимыеКлючи.Вставить("UnreferenceProcedures", "-UnreferenceProcedures");
ДопустимыеКлючи.Вставить("HandlersExistence", "-HandlersExistence");
ДопустимыеКлючи.Вставить("EmptyHandlers", "-EmptyHandlers");
ДопустимыеКлючи.Вставить("ExtendedModulesCheck", "-ExtendedModulesCheck");
ДопустимыеКлючи.Вставить("CheckUseModality", "-CheckUseModality");
ДопустимыеКлючи.Вставить("CheckUseSynchronousCalls", "-CheckUseSynchronousCalls");
ДопустимыеКлючи.Вставить("UnsupportedFunctional", "-UnsupportedFunctional");
ДопустимыеКлючи.Вставить("AllExtensions", "-AllExtensions");
ДопустимыеКлючи.Вставить("Extension", "-Extension");

Возврат ДопустимыеКлючи;
КонецФункции

Процедура ЗапуститьВРежимеПредприятия(Знач КлючЗапуска = "", Знач УправляемыйРежим = Неопределено, Знач ДополнительныеКлючи = Неопределено) Экспорт
ПараметрыСвязиСБазой = ПолучитьПараметрыЗапуска();
ПараметрыСвязиСБазой[0] = "ENTERPRISE";
Expand Down