Skip to content

Commit

Permalink
Исправлена ошибка обновления формы списка компонент
Browse files Browse the repository at this point in the history
  • Loading branch information
alexandrkakushin committed Apr 15, 2020
1 parent 8755ade commit 1cc0081
Show file tree
Hide file tree
Showing 12 changed files with 185 additions and 89 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,20 @@
Возврат;
КонецЕсли;

КомпонентыJavaВызовСервера.ПерейтиНаВерсию(Компонента,
ТекущиеДанные.Номер);
Если Не ТекущиеДанные.Текущая Тогда
КомпонентыJavaВызовСервера.ПерейтиНаВерсию(Компонента,
ТекущиеДанные.Номер);

Для Каждого ЭлементКоллеции Из Версии Цикл
ЭлементКоллеции.Текущая = Ложь;
КонецЦикла;
ТекущиеДанные.Текущая = Истина;

ТекущиеДанные.Текущая = Истина;
Оповестить(КомпонентыJavaКлиент.Событие_УстановкаВерсии());
Иначе
ПоказатьПредупреждение(,
НСтр("ru = 'Выбранная версия компоненты уже установлена'"));
КонецЕсли;

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,13 @@

ОписаниеОшибки = Неопределено;
Результат = КомпонентыJavaВызовСервера.УстановитьКомпоненту(
ТекущиеДанные.Имя, ТекущиеДанные.ПолноеОписание, ОписаниеОшибки);
ТекущиеДанные.ПолноеОписание, ОписаниеОшибки);

Если Результат <> Истина Тогда
ПоказатьПредупреждение(, ОписаниеОшибки);
Иначе
Оповестить(КомпонентыJavaКлиент.Событие_УстановкаВерсии());

ПоказатьОповещениеПользователя(НСтр("ru = 'Компонента установлена'"));
КонецЕсли;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
</Events>
<ChildItems>
Expand Down Expand Up @@ -48,7 +49,7 @@
<ExcludedCommand>Delete</ExcludedCommand>
<ExcludedCommand>SetDeletionMark</ExcludedCommand>
</CommandSet>
<AutoRefresh>false</AutoRefresh>
<AutoRefresh>true</AutoRefresh>
<AutoRefreshPeriod>60</AutoRefreshPeriod>
<Period>
<v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,15 @@

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

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если ИмяСобытия = КомпонентыJavaКлиент.Событие_УстановкаВерсии() Тогда
Элементы.Список.Обновить();
КонецЕсли;

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

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


Expand Down
127 changes: 102 additions & 25 deletions CommonModules/КомпонентыJava/Ext/Module.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,24 @@

Функция Интерфейс(Компонента) Экспорт

ОбъектОписанияЗащиты = новый ОписаниеЗащитыОтОпасныхДействий;
Если Не ЗначениеЗаполнено(Компонента) Тогда
ВызватьИсключение НСтр("ru = 'Компонента не найдена'");
КонецЕсли;

ОбъектОписанияЗащиты = Новый ОписаниеЗащитыОтОпасныхДействий;
ОбъектОписанияЗащиты.ПредупреждатьОбОпасныхДействиях = Ложь;

Если Не ЗначениеЗаполнено(Компонента.Версия) Тогда
ДоступныеВерсии = ДоступныеВерсии(Компонента);
Если ДоступныеВерсии.Количество() = 0 Тогда
ВызватьИсключение СтрШаблон(
НСтр("ru = 'Не найдены версии компоненты %1'"), Компонента);
КонецЕсли;
Версия = ДоступныеВерсии[0].Номер;

ПерейтиНаВерсию(Компонента, Версия);
КонецЕсли;

ФайлEPF = Новый Файл(РасположениеКомпоненты(Компонента) + Разделитель() + Компонента.EPF);
Если Не ФайлEPF.Существует() Тогда
УстановитьВерсию(Компонента);
Expand Down Expand Up @@ -198,16 +213,41 @@

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

Функция УстановитьКомпоненту(Имя, Детали, ОписаниеОшибки = Неопределено) Экспорт
// Установка компоненты
//
// Параметры:
// Источник - Структура, Строка - см. ОписаниеКомпоненты()
// ОписаниеОшибки - Неопределено, Строка -
//
// Возвращаемое значение:
// Булево - Признак успешной установки компоненты
//
Функция УстановитьКомпоненту(Источник, ОписаниеОшибки = Неопределено) Экспорт

Результат = Ложь;

Ссылка = Справочники.КомпонентыJava.НайтиПоНаименованию(Имя);
Детали = Неопределено;
Если ТипЗнч(Источник) = Тип("Структура") Тогда
Детали = Источник;

// Подразумевается, что в качестве источника передается имя репозитория
ИначеЕсли ТипЗнч(Источник) = Тип("Строка") Тогда
Детали = ОписаниеКомпоненты(Источник);

КонецЕсли;

Если Детали = Неопределено Тогда
ОписаниеОшибки = НСтр("ru = 'Не удалось получить описание компоненты'");
Возврат Ложь;
КонецЕсли;

Ссылка = КомпонентыJava.КомпонентаПоРепозиторию(Детали.github.repository);
Если ЗначениеЗаполнено(Ссылка) Тогда
ВызватьИсключение
СтрШаблон(
НСтр("ru = 'Компонента %1 уже установлена'"),
Имя
НСтр("ru = 'Компонента %1 уже установлена (%2)'"),
Детали.name,
Детали.github.repository
);
КонецЕсли;

Expand All @@ -216,19 +256,23 @@
// Запись в ИБ
Объект = Справочники.КомпонентыJava.СоздатьЭлемент();
Объект.УстановитьНовыйКод();
Объект.Наименование = Имя;
Объект.Наименование = Детали.name;

Объект.Порт = Детали.port;
Объект.GitHubАккаунт = Детали.github.account;
Объект.GitHubРепозиторий = Детали.github.repository;

Объект.ОсновнойАртефакт = Детали.github.artifacts.main;
Объект.EPF = Детали.github.artifacts.epf;
Объект.Записать();

// Скачивание артефактов
Версии = ДоступныеВерсии(Объект);
Если Версии.Количество() > 0 Тогда
Объект.Версия = Версии[0].Номер;
КонецЕсли;
Объект.Записать();


УстановитьВерсию(Объект);

ЗафиксироватьТранзакцию();
Результат = Истина;
Expand Down Expand Up @@ -273,18 +317,24 @@
КонецЕсли;

// Скачивание основного артефакта
ДвоичныеДанные = ПолучитьАртефакт(Артефакты.ОсновнойАртефакт);
Если ТипЗнч(ДвоичныеДанные) <> Тип("ДвоичныеДанные") Тогда
ВызватьИсключение НСтр("ru = 'Невозможно получить основной артефакт'");
ФайлОсновнойАртефакт = Новый Файл(Расположение + Разделитель() + Компонента.ОсновнойАртефакт);
Если Не ФайлОсновнойАртефакт.Существует() Тогда
ДвоичныеДанные = ПолучитьАртефакт(Артефакты.ОсновнойАртефакт);
Если ТипЗнч(ДвоичныеДанные) <> Тип("ДвоичныеДанные") Тогда
ВызватьИсключение НСтр("ru = 'Невозможно получить основной артефакт'");
КонецЕсли;
ДвоичныеДанные.Записать(Расположение + Разделитель() + Компонента.ОсновнойАртефакт);
КонецЕсли;
ДвоичныеДанные.Записать(Расположение + Разделитель() + Компонента.ОсновнойАртефакт);


// Скачивание обработки
ДвоичныеДанные = ПолучитьАртефакт(Артефакты.EPFАртефакт);
Если ТипЗнч(ДвоичныеДанные) <> Тип("ДвоичныеДанные") Тогда
ВызватьИсключение НСтр("ru = 'Невозможно получить EPF-артефакт'");
КонецЕсли;
ДвоичныеДанные.Записать(Расположение + Разделитель() + Компонента.EPF);
ФайлОбработки = Новый Файл(Расположение + Разделитель() + Компонента.EPF);
Если Не ФайлОбработки.Существует() Тогда
ДвоичныеДанные = ПолучитьАртефакт(Артефакты.EPFАртефакт);
Если ТипЗнч(ДвоичныеДанные) <> Тип("ДвоичныеДанные") Тогда
ВызватьИсключение НСтр("ru = 'Невозможно получить EPF-артефакт'");
КонецЕсли;
ДвоичныеДанные.Записать(Расположение + Разделитель() + Компонента.EPF);
КонецЕсли;

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

Expand Down Expand Up @@ -325,6 +375,22 @@

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

Функция ОписаниеКомпоненты(Репозиторий) Экспорт

Результат = Неопределено;

Доступные = ДоступныеКомпоненты();
Для Каждого Описание Из Доступные Цикл
Если НРег(Репозиторий) = НРег(Описание.github.repository) Тогда
Результат = Описание;
Прервать;
КонецЕсли;
КонецЦикла;

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

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

Функция ДоступныеВерсии(Компонента) Экспорт

Результат = Новый Массив();
Expand Down Expand Up @@ -384,12 +450,17 @@
Результат = Неопределено;

Версии = ДоступныеВерсии(Компонента);
Для Каждого Версия Из Версии Цикл
Если Компонента.Версия = Версия.Номер Тогда
Результат = Версия;
Прервать;
КонецЕсли;
КонецЦикла;

Если ЗначениеЗаполнено(Компонента.Версия) Тогда
Для Каждого Версия Из Версии Цикл
Если Компонента.Версия = Версия.Номер Тогда
Результат = Версия;
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
Результат = Версии[Версии.ВГраница()];
КонецЕсли;

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

Expand Down Expand Up @@ -692,7 +763,13 @@

Функция РасположениеКомпоненты(Компонента)

Возврат СтрШаблон("%1%2_%3", КаталогВременныхФайлов(), Компонента.GitHubРепозиторий, Компонента.Версия);
Версия = Компонента.Версия;
Если Не ЗначениеЗаполнено(Версия) Тогда
ВызватьИсключение СтрШаблон(
НСтр("ru = 'Не заполнена версия компоненты %1'"), Компонента);
КонецЕсли;

Возврат СтрШаблон("%1%2_%3", КаталогВременныхФайлов(), Компонента.GitHubРепозиторий, Версия);

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@

#Область Компоненты

Функция УстановитьКомпоненту(Имя, Детали, ОписаниеОшибки = Неопределено) Экспорт
Функция УстановитьКомпоненту(Детали, ОписаниеОшибки = Неопределено) Экспорт

Возврат КомпонентыJava.УстановитьКомпоненту(Имя, Детали);
Возврат КомпонентыJava.УстановитьКомпоненту(Детали, ОписаниеОшибки);

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

Expand Down
23 changes: 23 additions & 0 deletions CommonModules/КомпонентыJavaКлиент.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonModule uuid="c9b1bf03-efd9-4e6d-b45b-dce1fec2d830">
<Properties>
<Name>КомпонентыJavaКлиент</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Компоненты java клиент</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>
<ClientManagedApplication>true</ClientManagedApplication>
<Server>false</Server>
<ExternalConnection>false</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
13 changes: 13 additions & 0 deletions CommonModules/КомпонентыJavaКлиент/Ext/Module.bsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@

///////////////////////////////////////////////////////////////////////////////
// СОБЫТИЯ ПОДСИСТЕМЫ

#Область СобытияПодсистемы

Функция Событие_УстановкаВерсии() Экспорт

Возврат "КомпонентыJava_УстановкаВерсии";

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

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

0 comments on commit 1cc0081

Please sign in to comment.