-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
223 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"diagnostics": { | ||
"parameters": { | ||
"IncorrectLineBreak": { | ||
"listOfIncorrectFirstSymbol": ";" | ||
} | ||
} | ||
} | ||
} |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
// BSLLS-off | ||
|
||
Перем ПоказатьСообщенияЗагрузки; // сообщения о порядке загрузки пакетов | ||
Перем ВыдаватьОшибкуПриЗагрузкеУжеСуществующихКлассовМодулей; // сообщения о повторной загрузке | ||
|
||
Процедура ПриЗагрузкеБиблиотеки(Путь, СтандартнаяОбработка, Отказ) | ||
Вывести(" | ||
|ПриЗагрузкеБиблиотеки " + Путь); | ||
|
||
Если Осень <> Неопределено Тогда | ||
ПутьДоЗаготовки = ОбъединитьПути(Путь, "src/Заготовки/ИнициализацияПриложения.os"); | ||
ПодключитьСценарий(ПутьДоЗаготовки, "ИнициализацияПриложения"); | ||
Осень.ДобавитьЗаготовкуДляАвтоИнициализации("ИнициализацияПриложения"); | ||
|
||
мКаталог = ОбъединитьПути(Путь, "src/Классы"); | ||
ОбработатьКаталогКлассов(мКаталог, СтандартнаяОбработка, Отказ); | ||
Иначе | ||
ВызватьИсключение "Некорректный порядок импорта библиотек. Сначала подключите autumn"; | ||
КонецЕсли; | ||
|
||
КонецПроцедуры | ||
|
||
Процедура ОбработатьКаталогКлассов(Знач Путь, СтандартнаяОбработка, Отказ) | ||
|
||
КаталогКлассов = Новый Файл(Путь); | ||
|
||
Если КаталогКлассов.Существует() Тогда | ||
Файлы = НайтиФайлы(КаталогКлассов.ПолноеИмя, "*.os"); | ||
Для Каждого Файл Из Файлы Цикл | ||
Вывести(СтрШаблон(" класс (по соглашению) %1, файл %2", Файл.ИмяБезРасширения, Файл.ПолноеИмя)); | ||
СтандартнаяОбработка = Ложь; | ||
ДобавитьКлассЕслиРанееНеДобавляли(Файл.ПолноеИмя, Файл.ИмяБезРасширения); | ||
КонецЦикла; | ||
КонецЕсли; | ||
|
||
КонецПроцедуры | ||
|
||
Процедура ДобавитьКлассЕслиРанееНеДобавляли(ПутьФайла, ИмяКласса) | ||
Вывести("Добавляю класс, если ранее не добавляли " + ИмяКласса); | ||
Если ВыдаватьОшибкуПриЗагрузкеУжеСуществующихКлассовМодулей Тогда | ||
Вывести("Добавляю класс " + ИмяКласса); | ||
ДобавитьКласс(ПутьФайла, ИмяКласса); | ||
Возврат; | ||
КонецЕсли; | ||
|
||
КлассУжеЕсть = Ложь; | ||
Попытка | ||
Объект = Новый(ИмяКласса); | ||
КлассУжеЕсть = Истина; | ||
Исключение | ||
СообщениеОшибки = ОписаниеОшибки(); | ||
ИскомаяОшибка = СтрШаблон("Конструктор не найден (%1)", ИмяКласса); | ||
КлассУжеЕсть = СтрНайти(СообщениеОшибки, ИскомаяОшибка) = 0; | ||
КонецПопытки; | ||
Если Не КлассУжеЕсть Тогда | ||
|
||
Вывести("Добавляю класс, т.к. он не найден - " + ИмяКласса); | ||
ДобавитьКласс(ПутьФайла, ИмяКласса); | ||
|
||
Иначе | ||
Вывести("Пропускаю загрузку класса " + ИмяКласса); | ||
|
||
КонецЕсли; | ||
КонецПроцедуры | ||
|
||
Процедура Вывести(Знач Сообщение) | ||
Если ПоказатьСообщенияЗагрузки Тогда | ||
Сообщить(Сообщение); | ||
КонецЕсли; | ||
КонецПроцедуры | ||
|
||
Функция ПолучитьБулевоИзПеременнойСреды(Знач ИмяПеременнойСреды, Знач ЗначениеПоУмолчанию) | ||
Рез = ЗначениеПоУмолчанию; | ||
РезИзСреды = ПолучитьПеременнуюСреды(ИмяПеременнойСреды); | ||
Если ЗначениеЗаполнено(РезИзСреды) Тогда | ||
РезИзСреды = СокрЛП(РезИзСреды); | ||
Попытка | ||
Рез = Число(РезИзСреды) <> 0; | ||
Исключение | ||
Рез = ЗначениеПоУмолчанию; | ||
ТекстСообщения = СтрШаблон("Неверный формат переменной среды %1. Ожидали 1 или 0, а получили %2", | ||
ИмяПеременнойСреды, | ||
РезИзСреды); | ||
Сообщить(ТекстСообщения); | ||
КонецПопытки; | ||
КонецЕсли; | ||
|
||
Возврат Рез; | ||
КонецФункции | ||
|
||
// Если Истина, то выдаются подробные сообщения о порядке загрузке пакетов, классов, модулей, | ||
// что помогает при анализе проблем, очень полезно при анализе ошибок загрузки | ||
// Переменная среды может принимать значение 0 (выключено) или 1 (включено) | ||
// Значение флага по умолчанию - Ложь | ||
ПоказатьСообщенияЗагрузки = ПолучитьБулевоИзПеременнойСреды( | ||
"OSLIB_LOADER_TRACE", Ложь); | ||
|
||
// Если Ложь, то пропускаются ошибки повторной загрузки классов/модулей, | ||
// что важно при разработке/тестировании стандартных библиотек | ||
// Если Истина, то выдается ошибка при повторной загрузке классов библиотек из движка | ||
// Переменная среды может принимать значение 0 (выключено) или 1 (включено) | ||
// Значение флага по умолчанию - Истина | ||
ВыдаватьОшибкуПриЗагрузкеУжеСуществующихКлассовМодулей = ПолучитьБулевоИзПеременнойСреды( | ||
"OSLIB_LOADER_DUPLICATES", Ложь); | ||
|
||
// для установки других значений переменных среды и запуска скриптов можно юзать следующую командную строку | ||
// (set OSLIB_LOADER_TRACE=1) && (oscript .\tasks\test.os) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
Процедура ПриИнициализацииПоделки(Поделка) Экспорт | ||
ДобавитьЖелудиПриложения(Поделка); | ||
КонецПроцедуры | ||
|
||
Процедура ДобавитьЖелудиПриложения(Поделка) | ||
КаталогМодуля = ОбъединитьПути(ТекущийСценарий().Каталог, "../Классы"); | ||
Поделка.ПросканироватьКаталог(КаталогМодуля); | ||
КонецПроцедуры | ||
|
||
&Заготовка | ||
Процедура ПриСозданииОбъекта() | ||
|
||
КонецПроцедуры |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters