Skip to content

Commit

Permalink
Merge branch 'feature/Improve' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
Pr-Mex committed Aug 10, 2023
2 parents a2f404e + bb2970e commit 394fe8a
Show file tree
Hide file tree
Showing 25 changed files with 806 additions and 101 deletions.
2 changes: 1 addition & 1 deletion VanessaAutomation/Ext/ObjectModule.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@
КонецФункции

Функция ПолучитьВерсиюОбработки(ДобавлятьНазвание = Истина, ТолькоЦифры = Ложь) Экспорт
Версия = "1.2.040.27";
Версия = "1.2.040.28";

Если ТолькоЦифры Тогда
Возврат Версия;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32143,6 +32143,11 @@ Click on the hyperlink for more details.</v8:content>
<CommandName>Form.Command.СоздатьИнструкциюПоОписаниюЭлементов</CommandName>
<ExtendedTooltip name="СоздатьИнструкциюПоОписаниюЭлементовРасширеннаяПодсказка" id="2949"/>
</Button>
<Button name="ОбновитьКешMp3ВКаталогеПоТекущемуКешуMp3" id="4001">
<Type>UsualButton</Type>
<CommandName>Form.Command.ОбновитьКешMp3ВКаталогеПоТекущемуКешуMp3</CommandName>
<ExtendedTooltip name="ОбновитьКешMp3ВКаталогеПоТекущемуКешуMp3РасширеннаяПодсказка" id="4002"/>
</Button>
<Button name="СгенерироватьMp3ПоКаталогуФичИнтерактивнойСправки" id="3230">
<Type>UsualButton</Type>
<CommandName>Form.Command.СгенерироватьMp3ПоКаталогуФичИнтерактивнойСправки</CommandName>
Expand Down Expand Up @@ -44033,5 +44038,18 @@ Click on the hyperlink for more details.</v8:content>
<Action>СохранитьСтандартныйМакетHTML</Action>
<Representation>Picture</Representation>
</Command>
<Command name="ОбновитьКешMp3ВКаталогеПоТекущемуКешуMp3" id="183">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обновить кеш mp3 в каталоге по текущему кешу mp3</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Update mp3 cache in directory with current mp3 cache</v8:content>
</v8:item>
</Title>
<Action>ОбновитьКешMp3ВКаталогеПоТекущемуКешуMp3</Action>
</Command>
</Commands>
</Form>
Original file line number Diff line number Diff line change
Expand Up @@ -2828,43 +2828,138 @@
КонецПроцедуры

&НаКлиенте
Процедура СгенерироватьMp3ПоКаталогуФичИнтерактивнойСправки(Команда)
Процедура ОбновитьКешMp3ВКаталогеПоТекущемуКешуMp3(Команда)

СообщитьПользователю(Локализовать("Кеш mp3 для обновления надо указать в поле КаталогФич."));


ДанныеКешОзвучкиИнтерактивнойСправки = Неопределено;
ПрочитатьДанныеКешОзвучкиИнтерактивнойСправки();
КешИзКоторогоНадоСкопировать = ДанныеКешОзвучкиИнтерактивнойСправки;

СписокКаталогов = Новый СписокЗначений;
СписокФайлов = Новый СписокЗначений;
НайтиФайлыКомандаСистемы(Объект.КаталогФич, СписокКаталогов, СписокФайлов, Истина, "*.feature");
ДанныеКешОзвучкиИнтерактивнойСправки = Неопределено;
ПрочитатьДанныеКешОзвучкиИнтерактивнойСправки(Объект.КаталогФич);
КешКоторыйНадоДополнить = ДанныеКешОзвучкиИнтерактивнойСправки;

ИмяФайлаТест = Неопределено;
Для Каждого Элем Из КешКоторыйНадоДополнить Цикл
ИмяФайлаТест = Элем.Значение.FileName;
ФайлКаталог1 = Новый Файл(ИмяФайлаТест);
ФайлКаталог2 = Новый Файл(ФайлКаталог1.Путь);
ФайлКаталог3 = Новый Файл(ФайлКаталог2.Путь);
Прервать;
КонецЦикла;

СписокФайлов.СортироватьПоПредставлению();
Если ИмяФайлаТест = Неопределено Тогда
ВызватьИсключение Локализовать("В кеше для дополнения нет ни одного файла.");
КонецЕсли;

ПутьКJsonДляЗаписи = ДополнитьСлешВПуть(ФайлКаталог3.ПолноеИмя) + "data.json";

Файл = Новый Файл(ИмяФайлаТест);
КаталогMp3 = Файл.Путь;
СписокКаталогов = Новый СписокЗначений;
СписокФайлов = Новый СписокЗначений;
НайтиФайлыКомандаСистемы(КаталогMp3, СписокКаталогов, СписокФайлов, Истина, "*.mp3");
МаксНомер = -1;
Для Каждого Элем Из СписокФайлов Цикл

ТекФайл = Элем.Значение;
ТекИмя = ТекФайл.ИмяБезРасширения;
Если Число(ТекИмя) > МаксНомер Тогда
МаксНомер = Число(ТекИмя);
КонецЕсли;
КонецЦикла;
Если МаксНомер = -1 Тогда
ВызватьИсключение Локализовать("В кеше для дополнения нет ни одного файла.");
КонецЕсли;

МассивИменФайловДляОбработки = НайтиФичаФайлыУроковДляОбработки();
Для Каждого ИмяФайла Из МассивИменФайловДляОбработки Цикл
Сообщить(ИмяФайла);

Если Найти(СтрЗаменить(НРег(ТекФайл.ПолноеИмя), "/", "\"), "\features\примеры\") > 0 Тогда
Продолжить;
КонецЕсли;

Текст = Новый ЧтениеТекста;
Текст.Открыть(ТекФайл.ПолноеИмя, "UTF-8");
ТекстФайла = Текст.Прочитать();
Текст.Закрыть();

Если Найти(ТекстФайла, "@lessons") = 0 Тогда
Продолжить;
ДанныеОшибки = Неопределено;
Если НЕ ВКешЕстьВсеMp3ДляДаннойФичи(ДанныеКешОзвучкиИнтерактивнойСправки, ИмяФайла) Тогда
Текст = Новый ЧтениеТекста;
Текст.Открыть(ИмяФайла, "UTF-8");
ТекстФайла = Текст.Прочитать();
Текст.Закрыть();

МассивСтрок = _СтрРазделить(ТекстФайла, Символы.ПС);
КолШаговДляОзвучки = 0;
Для Каждого Стр Из МассивСтрок Цикл
Стр = СокрЛП(Стр);
Если Лев(Стр, 1) = "*" Тогда
КолШаговДляОзвучки = КолШаговДляОзвучки + 1;
КонецЕсли;
КонецЦикла;
НомерШага = 0;
ДанныеКэшMp3 = Неопределено;
Для Каждого Стр Из МассивСтрок Цикл
Стр = СокрЛП(Стр);
Если Лев(Стр, 1) = "*" Тогда
НомерШага = НомерШага + 1;

ТекстШага = СокрЛ(Сред(Стр, 2));

Если КешИзКоторогоНадоСкопировать[ТекстШага] <> Неопределено И КешКоторыйНадоДополнить[ТекстШага] = Неопределено Тогда
ДанныеШага = КешИзКоторогоНадоСкопировать[ТекстШага];
ИмяMp3 = ДанныеШага.FileName;

Если НЕ ФайлСуществуетКомандаСистемы(ИмяMp3) Тогда
Сообщить(ПодставитьПараметрыВСтроку(Локализовать("Не найден полный путь к файлу кеша: <%1>."), ИмяMp3));
Продолжить;
КонецЕсли;

МаксНомер = МаксНомер + 1;

ФайлИмяMp3 = Новый Файл(ИмяMp3);

НовоеИмяФайла = ДополнитьСлешВПуть(КаталогMp3) + ДобавитьНулей(МаксНомер,8) + ".mp3";

ФайлКаталог1 = Новый Файл(НовоеИмяФайла);
ФайлКаталог2 = Новый Файл(ФайлКаталог1.Путь);
ФайлКаталог3 = Новый Файл(ФайлКаталог2.Путь);
ДанныеШага.Вставить("FileName", ДополнитьСлешВПуть(ФайлКаталог2.Имя) + ФайлКаталог1.Имя);

КешКоторыйНадоДополнить.Вставить(ТекстШага, ДанныеШага);
КопироватьФайлКомандаСистемы(ИмяMp3, НовоеИмяФайла);

КонецЕсли;

КонецЕсли;
КонецЦикла;
КонецЕсли;

Сообщить(ТекФайл.ПолноеИмя);
КонецЦикла;

Результат = Новый Структура;
Результат.Вставить("data", Новый Массив);
Для Каждого Элем Из КешКоторыйНадоДополнить Цикл
Результат.data.Добавить(Элем.Значение);
КонецЦикла;

ЗаписьJson = Новый ЗаписьJson();
ЗаписьJson.ОткрытьФайл(ПутьКJsonДляЗаписи);
ЗаписатьJSON(ЗаписьJson, Результат);
ЗаписьJson.Закрыть();

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

&НаКлиенте
Процедура СгенерироватьMp3ПоКаталогуФичИнтерактивнойСправки(Команда)

ПрочитатьДанныеКешОзвучкиИнтерактивнойСправки();

МассивИменФайловДляОбработки = НайтиФичаФайлыУроковДляОбработки();
Для Каждого ИмяФайла Из МассивИменФайловДляОбработки Цикл
Сообщить(ИмяФайла);

ДанныеОшибки = Неопределено;
Если НЕ ВКешЕстьВсеMp3ДляДаннойФичи(ДанныеКешОзвучкиИнтерактивнойСправки, ТекФайл.ПолноеИмя) Тогда
Если НЕ СгенерироватьMP3ДляИнтерактивнойСправки(ТекФайл.ПолноеИмя, ДанныеОшибки) Тогда
Если НЕ ВКешЕстьВсеMp3ДляДаннойФичи(ДанныеКешОзвучкиИнтерактивнойСправки, ИмяФайла) Тогда
Если НЕ СгенерироватьMP3ДляИнтерактивнойСправки(ИмяФайла, ДанныеОшибки) Тогда
ВызватьИсключение Локализовать("Ошибка создания mp3 по каталогу фич.");
КонецЕсли;
КонецЕсли;
КонецЦикла;

КонецЦикла;

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

Expand Down Expand Up @@ -18562,7 +18657,7 @@

// Выполняет чтение файла кеш озвучки интерактивной справки
&НаКлиенте
Функция ПрочитатьДанныеКешОзвучкиИнтерактивнойСправки() Экспорт
Функция ПрочитатьДанныеКешОзвучкиИнтерактивнойСправки(КаталогКеша = Неопределено) Экспорт
#Если НЕ ВебКлиент Тогда

Если ДанныеКешОзвучкиИнтерактивнойСправки <> Неопределено Тогда
Expand All @@ -18572,12 +18667,16 @@
//Это значение кешируется в глобальных переменных
ДанныеКешОзвучкиИнтерактивнойСправки = Новый Соответствие;

Если НЕ ЗначениеЗаполнено(Объект.КаталогКешОзвучкиДляИнтерактивнойСправки) Тогда
Если НЕ ЗначениеЗаполнено(КаталогКеша) Тогда
КаталогКеша = Объект.КаталогКешОзвучкиДляИнтерактивнойСправки;
КонецЕсли;

Если НЕ ЗначениеЗаполнено(КаталогКеша) Тогда
ДанныеКешОзвучкиИнтерактивнойСправки = Неопределено;
Возврат ДанныеКешОзвучкиИнтерактивнойСправки;
КонецЕсли;

ИмяФайла = ДополнитьСлешВПуть(Объект.КаталогКешОзвучкиДляИнтерактивнойСправки) + "Voices.json";
ИмяФайла = ДополнитьСлешВПуть(КаталогКеша) + "Voices.json";

Если НЕ ФайлСуществуетКомандаСистемы(ИмяФайла) Тогда
ДанныеКешОзвучкиИнтерактивнойСправки = Неопределено;
Expand Down Expand Up @@ -18606,7 +18705,7 @@
КонецЕсли;

Для Каждого Элем Из ДанныеФайла.data Цикл
ИмяФайла = ДополнитьСлешВПуть(ДополнитьСлешВПуть(Объект.КаталогКешОзвучкиДляИнтерактивнойСправки) + Элем.Driver + "_" + Элем.Voice) + "data.json";
ИмяФайла = ДополнитьСлешВПуть(ДополнитьСлешВПуть(КаталогКеша) + Элем.Driver + "_" + Элем.Voice) + "data.json";
Если НЕ ФайлСуществуетКомандаСистемы(ИмяФайла) Тогда
ДанныеКешОзвучкиИнтерактивнойСправки = Неопределено;
Отладка (ПодставитьПараметрыВСтроку(Локализовать("Файл <%1> не существует."),
Expand Down Expand Up @@ -48667,6 +48766,44 @@

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

&НаКлиенте
Функция НайтиФичаФайлыУроковДляОбработки()

Результат = Новый Массив;

КаталогПоиска = ДополнитьСлешВПуть(Объект.КаталогИнструментов) + "training\features";

СписокКаталогов = Новый СписокЗначений;
СписокФайлов = Новый СписокЗначений;
НайтиФайлыКомандаСистемы(КаталогПоиска, СписокКаталогов, СписокФайлов, Истина, "*.feature");

СписокФайлов.СортироватьПоПредставлению();

Для Каждого Элем Из СписокФайлов Цикл

ТекФайл = Элем.Значение;

Если Найти(СтрЗаменить(НРег(ТекФайл.ПолноеИмя), "/", "\"), "\features\примеры\") > 0 Тогда
Продолжить;
КонецЕсли;

Текст = Новый ЧтениеТекста;
Текст.Открыть(ТекФайл.ПолноеИмя, "UTF-8");
ТекстФайла = Текст.Прочитать();
Текст.Закрыть();

Если Найти(ТекстФайла, "@lessons") = 0 Тогда
Продолжить;
КонецЕсли;

Результат.Добавить(ТекФайл.ПолноеИмя);

КонецЦикла;

Возврат Результат;

КонецФункции

#КонецОбласти

#Область Настройки
Expand Down
Loading

0 comments on commit 394fe8a

Please sign in to comment.