You've already forked gitmanager
mirror of
https://github.com/Untru/gitmanager.git
synced 2025-08-09 21:37:16 +02:00
Добавлена интеграция с жирой и исправлены мелкие недочеты
This commit is contained in:
@@ -201,10 +201,19 @@
|
||||
<id>32</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>EnterOnInput</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>КаталогRAS</name>
|
||||
@@ -229,10 +238,19 @@
|
||||
<id>38</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>EnterOnInput</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>КаталогРепозитория</name>
|
||||
|
@@ -13,6 +13,7 @@
|
||||
ДанныеЗаполнения.Вставить("Ответственный");
|
||||
ДанныеЗаполнения.Вставить("Постановщик");
|
||||
ДанныеЗаполнения.Вставить("Статус");
|
||||
ДанныеЗаполнения.Вставить("СтатусЗадачи");
|
||||
ДанныеЗаполнения.Вставить("Стадия");
|
||||
ДанныеЗаполнения.Вставить("НомерЗадачиБазовой");
|
||||
ДанныеЗаполнения.Вставить("ОсновнаяЗадача");
|
||||
@@ -261,7 +262,7 @@
|
||||
ТаскТрекер = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Проект, "ТаскТрекер");
|
||||
ТипТаскТрекера = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТаскТрекер, "ТипТаскТрекера");
|
||||
МенеджерТаскТрекера = Перечисления.ТаскТрекеры.МенеджерТаскТрекера(ТипТаскТрекера);
|
||||
ДанныеЗаполнения = МенеджерТаскТрекера.СтруктурированныеДанныеПоЗадаче(НомерЗадачи, ТаскТрекер);
|
||||
ДанныеЗаполнения = МенеджерТаскТрекера.СтруктурированныеДанныеПоЗадаче(НомерЗадачи, ТаскТрекер, Проект);
|
||||
|
||||
Возврат ДанныеЗаполнения;
|
||||
|
||||
|
@@ -16,6 +16,82 @@
|
||||
<inputByString>Catalog.Команды.StandardAttribute.Code</inputByString>
|
||||
<inputByString>Catalog.Команды.StandardAttribute.Description</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>PredefinedDataName</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Predefined</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Ref</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>DeletionMark</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>IsFolder</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Owner</name>
|
||||
<fillFromFillingValue>true</fillFromFillingValue>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Parent</name>
|
||||
<fillFromFillingValue>true</fillFromFillingValue>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Description</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Code</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<createOnInput>Use</createOnInput>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
@@ -55,6 +131,14 @@
|
||||
<key>ru</key>
|
||||
<value>Команды</value>
|
||||
</synonym>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>LineNumber</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<attributes uuid="1fadf618-c869-4cc8-9889-5b826e7ae202">
|
||||
<name>Команда</name>
|
||||
<synonym>
|
||||
|
@@ -141,7 +141,7 @@
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>2</length>
|
||||
<length>3</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
|
88
src/Catalogs/СтатусыЗадач/СтатусыЗадач.mdo
Normal file
88
src/Catalogs/СтатусыЗадач/СтатусыЗадач.mdo
Normal file
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a0bcf3b9-5684-4aec-b089-2d487232002d">
|
||||
<producedTypes>
|
||||
<objectType typeId="e81681c8-a269-426e-a516-59fc939c28e5" valueTypeId="561ae293-c485-43e7-acd0-17c3b0f26488"/>
|
||||
<refType typeId="2f2b77c9-f83a-4477-b04d-82e6fd1993ca" valueTypeId="9969b529-c0f6-4c06-b371-53f7a13d1b7d"/>
|
||||
<selectionType typeId="16a0c9f5-142d-43e6-949f-9754ce92acd4" valueTypeId="1b5b326b-1daf-47bc-bfbf-9a2ce6e24f44"/>
|
||||
<listType typeId="2f76cde3-60e2-4eb8-a16b-015f10e1b777" valueTypeId="73801a09-b728-4615-a579-09ebfffc641b"/>
|
||||
<managerType typeId="1ff960e6-dd3c-4ff2-a025-e09c21ffc90d" valueTypeId="6bc8255b-7944-46d7-9c2f-f441a0bf83d5"/>
|
||||
</producedTypes>
|
||||
<name>СтатусыЗадач</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Статусы задач</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>Catalog.СтатусыЗадач.StandardAttribute.Description</inputByString>
|
||||
<inputByString>Catalog.СтатусыЗадач.StandardAttribute.Code</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<createOnInput>Use</createOnInput>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<levelCount>2</levelCount>
|
||||
<foldersOnTop>true</foldersOnTop>
|
||||
<codeLength>9</codeLength>
|
||||
<descriptionLength>120</descriptionLength>
|
||||
<codeType>String</codeType>
|
||||
<codeAllowedLength>Variable</codeAllowedLength>
|
||||
<checkUnique>true</checkUnique>
|
||||
<autonumbering>true</autonumbering>
|
||||
<defaultPresentation>AsDescription</defaultPresentation>
|
||||
<editType>InDialog</editType>
|
||||
<choiceMode>BothWays</choiceMode>
|
||||
<attributes uuid="0bcbaa52-4cc4-4b1d-9eee-46718ba7bcce">
|
||||
<name>ЦветСтатуса</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Цвет статуса</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>100</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:StringValue">
|
||||
<value></value>
|
||||
</fillValue>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="146ed367-b649-4edd-8d96-0e6332e730b5">
|
||||
<name>ЭтоЗавершенныйСтатус</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Это завершенный статус</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>Boolean</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="e99f6715-0c37-415b-9020-9eea15e43387">
|
||||
<name>ИДСтатуса</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>ИДСтатуса</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>10</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:StringValue">
|
||||
<value></value>
|
||||
</fillValue>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
</mdclass:Catalog>
|
@@ -276,6 +276,7 @@
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<passwordMode>true</passwordMode>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
|
@@ -40,7 +40,7 @@
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>10</length>
|
||||
<length>130</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
|
@@ -16,6 +16,82 @@
|
||||
<inputByString>Catalog.УчетныеДанные.StandardAttribute.Code</inputByString>
|
||||
<inputByString>Catalog.УчетныеДанные.StandardAttribute.Description</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>PredefinedDataName</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Predefined</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Ref</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>DeletionMark</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>IsFolder</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Owner</name>
|
||||
<fillFromFillingValue>true</fillFromFillingValue>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Parent</name>
|
||||
<fillFromFillingValue>true</fillFromFillingValue>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Description</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Code</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<createOnInput>Use</createOnInput>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
|
@@ -6,5 +6,6 @@
|
||||
<value>Установить оскрипт</value>
|
||||
</synonym>
|
||||
<group>ActionsPanelTools</group>
|
||||
<commandParameterType/>
|
||||
<representation>Auto</representation>
|
||||
</mdclass:CommonCommand>
|
||||
|
@@ -14,11 +14,11 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция СтруктурированныеДанныеПоЗадаче(НомерЗадачи, ТаскТрекер = Неопределено) Экспорт
|
||||
Функция СтруктурированныеДанныеПоЗадаче(НомерЗадачи, ТаскТрекер = Неопределено, Проект = Неопределено) Экспорт
|
||||
|
||||
ДанныеЗаполнения = Справочники.Задачи.НовыйДанныеЗадачи();
|
||||
ДанныеЗаполнения.Наименование = НомерЗадачи;
|
||||
ДанныеЗаполнения.Владелец = Справочники.Проекты.НайтиПоНаименованию("CBL");
|
||||
ДанныеЗаполнения.Владелец = Проект;
|
||||
ДанныеЗаполнения.НомерЗадачи = НомерЗадачи;
|
||||
ДанныеЗаполнения.ИмяВетки = НомерЗадачи;
|
||||
|
||||
|
@@ -237,7 +237,12 @@
|
||||
//Обработка веток по задачам
|
||||
СтруктураВетки = РазобраннаяВетка(Ветка);
|
||||
РазбираяВетка = СтрРазделить(Ветка, "/");
|
||||
ИмяВетки = РазбираяВетка[РазбираяВетка.ВГраница()];
|
||||
|
||||
Если СтрНайти(Ветка, "testzone") И РазбираяВетка.Количество() > 0 Тогда
|
||||
ИмяВетки = "testzone/" + РазбираяВетка[РазбираяВетка.ВГраница()];
|
||||
Иначе
|
||||
ИмяВетки = РазбираяВетка[РазбираяВетка.ВГраница()];
|
||||
КонецЕсли;
|
||||
|
||||
Задача = Справочники.Задачи.ЗадачаПоИмениВетки(ИмяВетки);
|
||||
Если Задача.Пустая() Тогда
|
||||
@@ -374,7 +379,6 @@
|
||||
Ветка = СтрЗаменить(Ветка, "remotes/origin/", "");
|
||||
ДанныеИзНазванияВетки = СтрРазделить(Ветка, "/");
|
||||
Если ДанныеИзНазванияВетки.Количество() = 1 Тогда
|
||||
РазобраннаяВетка.НомерЗадачиРазработки = ДанныеИзНазванияВетки[0];
|
||||
Возврат РазобраннаяВетка;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -456,9 +460,7 @@
|
||||
КомандаЗапуска = КомандыЗапускаПриложения.НовыйКомандаСозданияРепозитория(ПараметрыБазы, НастройкиПользователя, ПараметрыЗадачи);
|
||||
ПараметрыЗапуска = СтратегияЗапускаСкриптов.ПодготовкаПараметровИЗапускПриложения(База, КомандаЗапуска);
|
||||
ДанныеЛогов = СтратегияЗапускаСкриптов.ДанныеЛоговСОжиданием(ПараметрыЗапуска);
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ДанныеЛогов.ПодробныйЛогСтрокой);
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбновитьРепозиторийИзУдаленного(База, ТекущийКаталог) Экспорт
|
||||
|
119
src/CommonModules/РаботаСJira/Module.bsl
Normal file
119
src/CommonModules/РаботаСJira/Module.bsl
Normal file
@@ -0,0 +1,119 @@
|
||||
// @strict-types
|
||||
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Процедура ОбновитьДанныеЗадач() Экспорт
|
||||
|
||||
ТаблицаЗадач = Справочники.Задачи.НеЗакрытыеЗадачи();
|
||||
ОбновитьДанныеЗадачПоТаблице(ТаблицаЗадач);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбновитьДанныеЗадачПоТаблице(ТаблицаЗадач) Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция СтруктурированныеДанныеПоЗадаче(НомерЗадачи, ТаскТрекер = Неопределено, Проект = Неопределено) Экспорт
|
||||
|
||||
ДанныеЗаполнения = Справочники.Задачи.НовыйДанныеЗадачи();
|
||||
ИнформацияОЗадаче = ДанныеЗадачиЖира(НомерЗадачи, ТаскТрекер);
|
||||
|
||||
Если ИнформацияОЗадаче["errorMessages"] <> Неопределено Тогда
|
||||
ВызватьИсключение(ИнформацияОЗадаче["errorMessages"][0]);
|
||||
КонецЕсли;
|
||||
|
||||
Задача = ИнформацияОЗадаче["issues"][0];
|
||||
|
||||
ДанныеЗаполнения.Наименование = Задача["fields"]["summary"];
|
||||
ДанныеЗаполнения.ПодробноеОписание = Задача["fields"]["description"];
|
||||
|
||||
Ответственный = НайтиСоздатьПользователя(Задача["fields"]["assignee"]["displayName"], Неопределено);
|
||||
ДанныеЗаполнения.Ответственный = Ответственный;
|
||||
|
||||
Постановщик = НайтиСоздатьПользователя(Задача["fields"]["creator"]["displayName"], Неопределено);
|
||||
ДанныеЗаполнения.Постановщик = Постановщик;
|
||||
|
||||
СоответствиеСтатусов = СоответствиеСтатусов();
|
||||
Статус = СоответствиеСтатусов.Получить(Задача["fields"]["status"]);
|
||||
Если Статус = Неопределено Тогда
|
||||
Статус = Перечисления.СтатусыЗадач.Новая;
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеЗаполнения.Статус = Статус;
|
||||
ДанныеЗаполнения.СтатусЗадачи = Статус;
|
||||
ДанныеЗаполнения.ДатаСоздания = ПрочитатьДатуJSON(Задача["fields"]["created"], ФорматДатыJSON.ISO);
|
||||
ДанныеЗаполнения.НомерЗадачи = НомерЗадачи;
|
||||
ДанныеЗаполнения.ИмяВетки = НомерЗадачи;
|
||||
|
||||
ДанныеЗаполнения.Владелец = Проект; // todo Определять по проекту из Жиры
|
||||
|
||||
Возврат ДанныеЗаполнения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ДанныеЗадачиЖира(НомерЗадачи, ТаскТрекер)
|
||||
|
||||
РеквизитыТаскТрекера = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ТаскТрекер, "URL, Логин");
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
СекретныеДанные = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ТаскТрекер, "Токен, Пароль" );
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
ПараметрыЗапроса = Новый Структура;
|
||||
ПараметрыЗапроса.Вставить("jql", СтрШаблон("key=%1", НомерЗадачи));
|
||||
|
||||
ДополнительныеПараметры = КоннекторHTTP.НовыеПараметры();
|
||||
ДополнительныеПараметры.Аутентификация = Новый Структура;
|
||||
ДополнительныеПараметры.Аутентификация.Вставить("Пользователь", РеквизитыТаскТрекера.Логин);
|
||||
ДополнительныеПараметры.Аутентификация.Вставить("Пароль", СекретныеДанные.Токен);
|
||||
|
||||
ДанныеЗапроса = КоннекторHTTP.GetJson(СтрШаблон("%1/rest/api/2/search", РеквизитыТаскТрекера.URL), ПараметрыЗапроса, ДополнительныеПараметры);
|
||||
|
||||
Возврат ДанныеЗапроса;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НайтиСоздатьПользователя(ИмяПользователя, IDПользователя)
|
||||
|
||||
// todo Сделать привязку по Идентификатору
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ТекПользователь = Справочники.Пользователи.НайтиПоНаименованию(ИмяПользователя, Истина);
|
||||
ПользовательСуществует = ЗначениеЗаполнено(ТекПользователь);
|
||||
|
||||
Если НЕ ПользовательСуществует Тогда
|
||||
Пользователь = Справочники.Пользователи.СоздатьЭлемент();
|
||||
Пользователь.Наименование = ИмяПользователя;
|
||||
Пользователь.Записать();
|
||||
ТекПользователь = Пользователь.Ссылка;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ТекПользователь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СоответствиеСтатусов()
|
||||
|
||||
СоответствиеСтатусов = Новый Соответствие;
|
||||
СоответствиеСтатусов.Вставить("К выполнению", Перечисления.СтатусыЗадач.Новая);
|
||||
СоответствиеСтатусов.Вставить("В работе", Перечисления.СтатусыЗадач.Выполняется);
|
||||
СоответствиеСтатусов.Вставить("Ожидает тестирования", Перечисления.СтатусыЗадач.ЖдетКонтроля);
|
||||
СоответствиеСтатусов.Вставить("Тестирование", Перечисления.СтатусыЗадач.ЖдетКонтроля);
|
||||
СоответствиеСтатусов.Вставить("ФИЧА-РЕВЬЮ", Перечисления.СтатусыЗадач.ЖдетКонтроля);
|
||||
СоответствиеСтатусов.Вставить("КОД_РЕВЬЮ", Перечисления.СтатусыЗадач.ЖдетКонтроля);
|
||||
СоответствиеСтатусов.Вставить("Ожидает помещения", Перечисления.СтатусыЗадач.ЖдетВыполнения);
|
||||
СоответствиеСтатусов.Вставить("Ожидает обновления", Перечисления.СтатусыЗадач.ЖдетВыполнения);
|
||||
СоответствиеСтатусов.Вставить("У инициатора", Перечисления.СтатусыЗадач.ЖдетВыполнения);
|
||||
СоответствиеСтатусов.Вставить("ГОТОВО", Перечисления.СтатусыЗадач.Завершена);
|
||||
СоответствиеСтатусов.Вставить("Won't Do", Перечисления.СтатусыЗадач.Завершена);
|
||||
|
||||
Возврат СоответствиеСтатусов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
9
src/CommonModules/РаботаСJira/РаботаСJira.mdo
Normal file
9
src/CommonModules/РаботаСJira/РаботаСJira.mdo
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ee25281a-429c-4d4f-a3e6-218ab73f4153">
|
||||
<name>РаботаСJira</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Работа с jira</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
</mdclass:CommonModule>
|
@@ -59,7 +59,7 @@
|
||||
// Возвращаемое значение:
|
||||
// Задача - СправочникСсылка.Задачи
|
||||
//
|
||||
Функция СтруктурированныеДанныеПоЗадаче(НомерЗадачи, ТаскТрекер) Экспорт
|
||||
Функция СтруктурированныеДанныеПоЗадаче(НомерЗадачи, ТаскТрекер, Проект = Неопределено) Экспорт
|
||||
|
||||
ДанныеЗаполнения = Новый Структура();
|
||||
|
||||
|
@@ -1020,6 +1020,7 @@
|
||||
<commonModules>CommonModule.ШаблоныСообщенийПереопределяемый</commonModules>
|
||||
<commonModules>CommonModule.ШаблоныСообщенийСервер</commonModules>
|
||||
<commonModules>CommonModule.ШаблоныСообщенийСлужебный</commonModules>
|
||||
<commonModules>CommonModule.РаботаСJira</commonModules>
|
||||
<commonModules>CommonModule.ШаблоныСообщенийСлужебныйПовтИсп</commonModules>
|
||||
<exchangePlans>ExchangePlan.ОбновлениеИнформационнойБазы</exchangePlans>
|
||||
<xDTOPackages>XDTOPackage.ApdexExport</xDTOPackages>
|
||||
@@ -1435,6 +1436,7 @@
|
||||
<catalogs>Catalog.Файлы</catalogs>
|
||||
<catalogs>Catalog.ШаблоныСообщений</catalogs>
|
||||
<catalogs>Catalog.ШаблоныСообщенийПрисоединенныеФайлы</catalogs>
|
||||
<catalogs>Catalog.СтатусыЗадач</catalogs>
|
||||
<catalogs>Catalog.ЭлектронноеПисьмоВходящееПрисоединенныеФайлы</catalogs>
|
||||
<catalogs>Catalog.ЭлектронноеПисьмоИсходящееПрисоединенныеФайлы</catalogs>
|
||||
<documents>Document.Встреча</documents>
|
||||
|
File diff suppressed because one or more lines are too long
@@ -458,7 +458,7 @@
|
||||
<group>Vertical</group>
|
||||
<showTitle>true</showTitle>
|
||||
<backColor xsi:type="core:ColorRef">
|
||||
<color>0:9e082d71-175a-4e80-8cca-6b538d3240eb</color>
|
||||
<color>Style.ЦветФонаПоложительногоЗначения</color>
|
||||
</backColor>
|
||||
</extInfo>
|
||||
</items>
|
||||
@@ -1044,7 +1044,7 @@ devops/
|
||||
<group>Vertical</group>
|
||||
<showTitle>true</showTitle>
|
||||
<backColor xsi:type="core:ColorRef">
|
||||
<color>0:9e082d71-175a-4e80-8cca-6b538d3240eb</color>
|
||||
<color>Style.ЦветФонаПоложительногоЗначения</color>
|
||||
</backColor>
|
||||
</extInfo>
|
||||
</items>
|
||||
@@ -1420,7 +1420,7 @@ devops/
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<backColor xsi:type="core:ColorRef">
|
||||
<color>0:9e082d71-175a-4e80-8cca-6b538d3240eb</color>
|
||||
<color>Style.ЦветФонаПоложительногоЗначения</color>
|
||||
</backColor>
|
||||
</extInfo>
|
||||
</items>
|
||||
|
@@ -82,7 +82,6 @@
|
||||
<item xsi:type="FilterItemComparison">
|
||||
<left xsi:type="dcscor:Field">СписокЗадачи.ТипЗадачи</left>
|
||||
<comparisonType>NotFilled</comparisonType>
|
||||
<right xsi:nil="true"/>
|
||||
</item>
|
||||
</filter>
|
||||
<appearance>
|
||||
|
@@ -10,6 +10,8 @@
|
||||
МенеджерТаскТрекера = РаботаСПредприятие1С;
|
||||
ИначеЕсли ТипТаскТрекера = Отсутствует Тогда
|
||||
МенеджерТаскТрекера = РаботаБезТаскТрекера;
|
||||
ИначеЕсли ТипТаскТрекера = Jira Тогда
|
||||
МенеджерТаскТрекера = РаботаСJira;
|
||||
Иначе
|
||||
ВызватьИсключение НСтр("ru = 'Невалидный формат работы Таск трекеров'");
|
||||
КонецЕсли;
|
||||
|
@@ -49,4 +49,11 @@
|
||||
<value>Отсутствует (работа с ограниченным функционалом)</value>
|
||||
</synonym>
|
||||
</enumValues>
|
||||
<enumValues uuid="b1ab6020-3361-4056-bffb-1ffc456a0ad6">
|
||||
<name>Jira</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Jira</value>
|
||||
</synonym>
|
||||
</enumValues>
|
||||
</mdclass:Enum>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Enum xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="cfdde0c4-7402-4165-b183-d3d2fc71d68d">
|
||||
<mdclass:Enum xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="cfdde0c4-7402-4165-b183-d3d2fc71d68d">
|
||||
<producedTypes>
|
||||
<refType typeId="67e6ae31-d6f2-46e7-91c4-1bcef53d3ab8" valueTypeId="498d302a-b791-4192-b0ed-771cc5243716"/>
|
||||
<listType typeId="02ce8014-8bcd-451b-aa3c-7c5a1d418cd2" valueTypeId="fd14e4d6-ba05-4847-ba7d-7434a75c5ce3"/>
|
||||
@@ -10,6 +10,22 @@
|
||||
<key>ru</key>
|
||||
<value>Типы учетных данных</value>
|
||||
</synonym>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Order</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Ref</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<quickChoice>true</quickChoice>
|
||||
<choiceMode>BothWays</choiceMode>
|
||||
<enumValues uuid="ad9910ba-9893-465f-bac3-7d5de275e018">
|
||||
|
@@ -69,6 +69,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.УправлениеРазработкой</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>SessionParameter.ПараметрыКомандЗапуска</name>
|
||||
<right>
|
||||
|
Reference in New Issue
Block a user