1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-27 02:43:54 +02:00

Доработки интерфейса CLI

This commit is contained in:
Anton Titovets 2024-12-15 15:05:12 +03:00
parent 54cae9c018
commit 9151e8ee2a
10 changed files with 5994 additions and 5886 deletions

File diff suppressed because it is too large Load Diff

View File

@ -867,7 +867,7 @@
КБайт = 1024;
МБайт = КБайт * КБайт;
Сообщить(OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт));
OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт);
ВыполнитьСборкуМусора();
ОсвободитьОбъект(ТекущиеДанные);

View File

@ -674,7 +674,7 @@
КБайт = 1024;
МБайт = КБайт * КБайт;
Сообщить(OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт));
OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт);
ВыполнитьСборкуМусора();
ОсвободитьОбъект(ТекущиеДанные);

View File

@ -1718,7 +1718,7 @@
КБайт = 1024;
МБайт = КБайт * КБайт;
Сообщить(OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт));
OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт);
ВыполнитьСборкуМусора();
ОсвободитьОбъект(ПромежуточныйРезультат);
@ -1831,7 +1831,7 @@
КБайт = 1024;
МБайт = КБайт * КБайт;
Сообщить(OPI_Инструменты.ИнформацияОПрогрессе(ПрочитаноБайт, ОбщийРазмер, "МБ", МБайт));
OPI_Инструменты.ИнформацияОПрогрессе(ПрочитаноБайт, ОбщийРазмер, "МБ", МБайт);
ВыполнитьСборкуМусора();
ОсвободитьОбъект(ТекущиеДанные);

View File

@ -2060,9 +2060,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@ -36,6 +36,7 @@
//@skip-check module-structure-top-region
//@skip-check module-structure-method-in-regions
//@skip-check wrong-string-literal-content
//@skip-check use-non-recommended-method
#Область СлужебныйПрограммныйИнтерфейс
@ -889,8 +890,12 @@
КонецФункции
Функция ИнформацияОПрогрессе(Знач Текущее, Знач Всего, Знач ЕдИзм, Знач Делитель = 1) Экспорт
Процедура ИнформацияОПрогрессе(Знач Текущее, Знач Всего, Знач ЕдИзм, Знач Делитель = 1) Экспорт
Если Не ЭтоOneScript() Тогда
Возврат;
КонецЕсли;
Целое = 100;
Текущее = Окр(Текущее / Делитель, 2);
Всего = Окр(Всего / Делитель, 2);
@ -900,11 +905,24 @@
СтрВсего = ЧислоВСтроку(Всего);
СтрПроцент = ЧислоВСтроку(Процент);
Информация = СтрТекущее + "/" + СтрВсего + " " + ЕдИзм + " ( " + СтрПроцент + "% )";
Возврат Информация;
КонецФункции
Прогресс = "Прогресс [" + СтрПроцент + "%" + "] ▐";
Информация = "▌ " + СтрТекущее + "/" + СтрВсего + " " + ЕдИзм;
// Прогресс бар
ДлинаПолоски = 30;
Счетчик = 0;
Показатель = Цел(Текущее / Всего * ДлинаПолоски);
Пока Счетчик < ДлинаПолоски Цикл
Буфер = Буфер + ?(Счетчик < Показатель, "█", " ");
Счетчик = Счетчик + 1;
КонецЦикла;
ВывестиТекстВТекущуюСтроку(Прогресс, , Истина);
ВывестиТекстВТекущуюСтроку(Буфер, "Зеленый");
ВывестиТекстВТекущуюСтроку(Информация);
КонецПроцедуры
#КонецОбласти
@ -1281,6 +1299,36 @@
КонецПроцедуры
Процедура ВывестиТекстВТекущуюСтроку(Знач Текст, Знач Цвет = "", Знач ВНачало = Ложь) Экспорт
Если Не ЭтоOneScript() Тогда
Консоль = Неопределено;
ЦветКонсоли = Новый Соответствие;
КонецЕсли;
Кодировка = Консоль.КодировкаВыходногоПотока;
ПотовкВывода = Консоль.ОткрытьСтандартныйПотокВывода();
ЗаписьВывода = Новый ЗаписьДанных(ПотовкВывода, Кодировка);
Если НЕ ЗначениеЗаполнено(Цвет) Тогда
Цвет = ЦветКонсоли.Белый;
КонецЕсли;
Если ТипЗнч(Цвет) = Тип("Строка") Тогда
Консоль.ЦветТекста = ЦветКонсоли[Цвет];
Иначе
Консоль.ЦветТекста = Цвет;
КонецЕсли;
Если ВНачало Тогда
Ескейп = Символы.ВК;
ЗаписьВывода.ЗаписатьСимволы(Ескейп);
КонецЕсли;
ЗаписьВывода.ЗаписатьСимволы(Текст);
КонецПроцедуры
Функция ВыполнитьЗапросСТелом(Знач URL, Знач Вид, Знач Параметры = "", Знач ДопЗаголовки = "", Знач JSON = Истина,
Знач ПолныйОтвет = Ложь, Знач ФайлОтвета = Неопределено)

View File

@ -865,9 +865,9 @@
ТекущаяПозиция = СледующаяПозиция;
// !OInt КБайт = 1024;
// !OInt МБайт = КБайт * КБайт;
// !OInt Сообщить(OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт));
КБайт = 1024;
МБайт = КБайт * КБайт;
OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт);
// !OInt ВыполнитьСборкуМусора();
// !OInt ОсвободитьОбъект(ТекущиеДанные);

View File

@ -672,9 +672,9 @@
Возврат РезультатПроверки;
КонецЕсли;
// !OInt КБайт = 1024;
// !OInt МБайт = КБайт * КБайт;
// !OInt Сообщить(OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт));
КБайт = 1024;
МБайт = КБайт * КБайт;
OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт);
// !OInt ВыполнитьСборкуМусора();
// !OInt ОсвободитьОбъект(ТекущиеДанные);

View File

@ -1716,9 +1716,9 @@
ПромежуточныйРезультат = ПолучитьОбъектЦеликом(ОсновныеДанные, ЗаголовокИсточника);
ЗаписьФайла.Записать(ПромежуточныйРезультат);
// !OInt КБайт = 1024;
// !OInt МБайт = КБайт * КБайт;
// !OInt Сообщить(OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт));
КБайт = 1024;
МБайт = КБайт * КБайт;
OPI_Инструменты.ИнформацияОПрогрессе(ТекущаяПозиция, ОбщийРазмер, "МБ", МБайт);
// !OInt ВыполнитьСборкуМусора();
// !OInt ОсвободитьОбъект(ПромежуточныйРезультат);
@ -1829,9 +1829,9 @@
МассивТегов.Добавить(ETag);
// !OInt КБайт = 1024;
// !OInt МБайт = КБайт * КБайт;
// !OInt Сообщить(OPI_Инструменты.ИнформацияОПрогрессе(ПрочитаноБайт, ОбщийРазмер, "МБ", МБайт));
КБайт = 1024;
МБайт = КБайт * КБайт;
OPI_Инструменты.ИнформацияОПрогрессе(ПрочитаноБайт, ОбщийРазмер, "МБ", МБайт);
// !OInt ВыполнитьСборкуМусора();
// !OInt ОсвободитьОбъект(ТекущиеДанные);

View File

@ -36,6 +36,7 @@
//@skip-check module-structure-top-region
//@skip-check module-structure-method-in-regions
//@skip-check wrong-string-literal-content
//@skip-check use-non-recommended-method
#Область СлужебныйПрограммныйИнтерфейс
@ -889,8 +890,12 @@
КонецФункции
Функция ИнформацияОПрогрессе(Знач Текущее, Знач Всего, Знач ЕдИзм, Знач Делитель = 1) Экспорт
Процедура ИнформацияОПрогрессе(Знач Текущее, Знач Всего, Знач ЕдИзм, Знач Делитель = 1) Экспорт
Если Не ЭтоOneScript() Тогда
Возврат;
КонецЕсли;
Целое = 100;
Текущее = Окр(Текущее / Делитель, 2);
Всего = Окр(Всего / Делитель, 2);
@ -900,11 +905,24 @@
СтрВсего = ЧислоВСтроку(Всего);
СтрПроцент = ЧислоВСтроку(Процент);
Информация = СтрТекущее + "/" + СтрВсего + " " + ЕдИзм + " ( " + СтрПроцент + "% )";
Возврат Информация;
КонецФункции
Прогресс = "Прогресс [" + СтрПроцент + "%" + "] ▐";
Информация = "▌ " + СтрТекущее + "/" + СтрВсего + " " + ЕдИзм;
// Прогресс бар
ДлинаПолоски = 30;
Счетчик = 0;
Показатель = Цел(Текущее / Всего * ДлинаПолоски);
Пока Счетчик < ДлинаПолоски Цикл
Буфер = Буфер + ?(Счетчик < Показатель, "█", " ");
Счетчик = Счетчик + 1;
КонецЦикла;
ВывестиТекстВТекущуюСтроку(Прогресс, , Истина);
ВывестиТекстВТекущуюСтроку(Буфер, "Зеленый");
ВывестиТекстВТекущуюСтроку(Информация);
КонецПроцедуры
#КонецОбласти
@ -1281,6 +1299,36 @@
КонецПроцедуры
Процедура ВывестиТекстВТекущуюСтроку(Знач Текст, Знач Цвет = "", Знач ВНачало = Ложь) Экспорт
Если Не ЭтоOneScript() Тогда
Консоль = Неопределено;
ЦветКонсоли = Новый Соответствие;
КонецЕсли;
Кодировка = Консоль.КодировкаВыходногоПотока;
ПотовкВывода = Консоль.ОткрытьСтандартныйПотокВывода();
ЗаписьВывода = Новый ЗаписьДанных(ПотовкВывода, Кодировка);
Если Не ЗначениеЗаполнено(Цвет) Тогда
Цвет = ЦветКонсоли.Белый;
КонецЕсли;
Если ТипЗнч(Цвет) = Тип("Строка") Тогда
Консоль.ЦветТекста = ЦветКонсоли[Цвет];
Иначе
Консоль.ЦветТекста = Цвет;
КонецЕсли;
Если ВНачало Тогда
Ескейп = Символы.ВК;
ЗаписьВывода.ЗаписатьСимволы(Ескейп);
КонецЕсли;
ЗаписьВывода.ЗаписатьСимволы(Текст);
КонецПроцедуры
Функция ВыполнитьЗапросСТелом(Знач URL, Знач Вид, Знач Параметры = "", Знач ДопЗаголовки = "", Знач JSON = Истина,
Знач ПолныйОтвет = Ложь, Знач ФайлОтвета = Неопределено)