mirror of
https://github.com/1C-Company/GitConverter.git
synced 2025-03-21 21:17:29 +02:00
Merge pull request #138 from 1C-Company/feature/121
Подключение удаленного репозитория
This commit is contained in:
commit
5c879bf1b5
@ -2095,22 +2095,120 @@
|
|||||||
<currentRowUse>Auto</currentRowUse>
|
<currentRowUse>Auto</currentRowUse>
|
||||||
</extInfo>
|
</extInfo>
|
||||||
</items>
|
</items>
|
||||||
<items xsi:type="form:FormField">
|
<items xsi:type="form:FormGroup">
|
||||||
<name>ИмяВетки</name>
|
<name>Группа12</name>
|
||||||
<id>107</id>
|
<id>211</id>
|
||||||
|
<items xsi:type="form:FormField">
|
||||||
|
<name>ИмяВетки</name>
|
||||||
|
<id>107</id>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<dataPath xsi:type="form:MultiLanguageDataPath">
|
||||||
|
<paths xsi:type="form:DataPath">
|
||||||
|
<segments>Объект.ИмяВетки</segments>
|
||||||
|
</paths>
|
||||||
|
</dataPath>
|
||||||
|
<shortcut>Ctrl+S</shortcut>
|
||||||
|
<toolTip>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>В Git репозитории основную (главную) ветку принято называть master. Если репозиторий публикуется на сервере (синхронизируется с сервром) запросите список векток, созданных в репозитории, по кнопке <-. Если необходимая ветка отсутствует на сервере или репозиторий пуст - укажите имя ветки которая будет создана.</value>
|
||||||
|
</toolTip>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ИмяВеткиРасширеннаяПодсказка1</name>
|
||||||
|
<id>109</id>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<contextMenu>
|
||||||
|
<name>ИмяВеткиКонтекстноеМеню1</name>
|
||||||
|
<id>108</id>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<autoFill>true</autoFill>
|
||||||
|
</contextMenu>
|
||||||
|
<type>InputField</type>
|
||||||
|
<editMode>Enter</editMode>
|
||||||
|
<showInHeader>true</showInHeader>
|
||||||
|
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||||
|
<showInFooter>true</showInFooter>
|
||||||
|
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<wrap>true</wrap>
|
||||||
|
<dropListButton>true</dropListButton>
|
||||||
|
<chooseType>true</chooseType>
|
||||||
|
<typeDomainEnabled>true</typeDomainEnabled>
|
||||||
|
<textEdit>true</textEdit>
|
||||||
|
<choiceList>
|
||||||
|
<presentation>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>master (?)</value>
|
||||||
|
</presentation>
|
||||||
|
<value xsi:type="core:StringValue">
|
||||||
|
<value>master</value>
|
||||||
|
</value>
|
||||||
|
</choiceList>
|
||||||
|
<inputHint>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Загрузките ветки с сервера или создайте новую...</value>
|
||||||
|
</inputHint>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
|
<items xsi:type="form:Button">
|
||||||
|
<name>ЗагрузитьСписокВеток</name>
|
||||||
|
<id>215</id>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ЗагрузитьСписокВетокРасширеннаяПодсказка</name>
|
||||||
|
<id>216</id>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<type>UsualButton</type>
|
||||||
|
<commandName>Form.Command.ЗагрузитьСписокВеток</commandName>
|
||||||
|
<representation>Picture</representation>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<placementArea>UserCmds</placementArea>
|
||||||
|
<toolTipRepresentation>Balloon</toolTipRepresentation>
|
||||||
|
<representationInContextMenu>Auto</representationInContextMenu>
|
||||||
|
</items>
|
||||||
<visible>true</visible>
|
<visible>true</visible>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
<userVisible>
|
<userVisible>
|
||||||
<common>true</common>
|
<common>true</common>
|
||||||
</userVisible>
|
</userVisible>
|
||||||
<dataPath xsi:type="form:MultiLanguageDataPath">
|
|
||||||
<paths xsi:type="form:DataPath">
|
|
||||||
<segments>Объект.ИмяВетки</segments>
|
|
||||||
</paths>
|
|
||||||
</dataPath>
|
|
||||||
<extendedTooltip>
|
<extendedTooltip>
|
||||||
<name>ИмяВеткиРасширеннаяПодсказка1</name>
|
<name>Группа12РасширеннаяПодсказка</name>
|
||||||
<id>109</id>
|
<id>212</id>
|
||||||
<visible>true</visible>
|
<visible>true</visible>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
<userVisible>
|
<userVisible>
|
||||||
@ -2123,28 +2221,13 @@
|
|||||||
<horizontalAlign>Left</horizontalAlign>
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
</extInfo>
|
</extInfo>
|
||||||
</extendedTooltip>
|
</extendedTooltip>
|
||||||
<contextMenu>
|
<type>UsualGroup</type>
|
||||||
<name>ИмяВеткиКонтекстноеМеню1</name>
|
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||||
<id>108</id>
|
<group>AlwaysHorizontal</group>
|
||||||
<visible>true</visible>
|
<showLeftMargin>true</showLeftMargin>
|
||||||
<enabled>true</enabled>
|
<united>true</united>
|
||||||
<userVisible>
|
<throughAlign>Auto</throughAlign>
|
||||||
<common>true</common>
|
<currentRowUse>Auto</currentRowUse>
|
||||||
</userVisible>
|
|
||||||
<autoFill>true</autoFill>
|
|
||||||
</contextMenu>
|
|
||||||
<type>InputField</type>
|
|
||||||
<editMode>Enter</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>
|
</extInfo>
|
||||||
</items>
|
</items>
|
||||||
<items xsi:type="form:FormGroup">
|
<items xsi:type="form:FormGroup">
|
||||||
@ -2237,9 +2320,46 @@
|
|||||||
<type>UsualButton</type>
|
<type>UsualButton</type>
|
||||||
<commandName>Form.Command.УстановитьАдресРепозиторияGit</commandName>
|
<commandName>Form.Command.УстановитьАдресРепозиторияGit</commandName>
|
||||||
<representation>Picture</representation>
|
<representation>Picture</representation>
|
||||||
|
<width>4</width>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<placementArea>UserCmds</placementArea>
|
||||||
|
<toolTipRepresentation>Balloon</toolTipRepresentation>
|
||||||
|
</items>
|
||||||
|
<items xsi:type="form:Button">
|
||||||
|
<name>ПроверитьДоступКРепозиториюGit</name>
|
||||||
|
<id>209</id>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Проверить доступ...</value>
|
||||||
|
</title>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ПроверитьДоступКРепозиториюGitРасширеннаяПодсказка</name>
|
||||||
|
<id>210</id>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<type>UsualButton</type>
|
||||||
|
<commandName>Form.Command.ПроверитьДоступКРепозиториюGit</commandName>
|
||||||
|
<representation>PictureAndText</representation>
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<placementArea>UserCmds</placementArea>
|
<placementArea>UserCmds</placementArea>
|
||||||
|
<toolTipRepresentation>Balloon</toolTipRepresentation>
|
||||||
|
<representationInContextMenu>Auto</representationInContextMenu>
|
||||||
</items>
|
</items>
|
||||||
<visible>true</visible>
|
<visible>true</visible>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
@ -2289,6 +2409,10 @@
|
|||||||
<segments>Объект.ПользовательСервераGit</segments>
|
<segments>Объект.ПользовательСервераGit</segments>
|
||||||
</paths>
|
</paths>
|
||||||
</dataPath>
|
</dataPath>
|
||||||
|
<handlers>
|
||||||
|
<event>OnChange</event>
|
||||||
|
<name>ПользовательСервераGitПриИзменении</name>
|
||||||
|
</handlers>
|
||||||
<extendedTooltip>
|
<extendedTooltip>
|
||||||
<name>ПользовательСервераGitРасширеннаяПодсказка</name>
|
<name>ПользовательСервераGitРасширеннаяПодсказка</name>
|
||||||
<id>74</id>
|
<id>74</id>
|
||||||
@ -2349,6 +2473,10 @@
|
|||||||
<segments>Объект.ПарольСервераGit</segments>
|
<segments>Объект.ПарольСервераGit</segments>
|
||||||
</paths>
|
</paths>
|
||||||
</dataPath>
|
</dataPath>
|
||||||
|
<handlers>
|
||||||
|
<event>OnChange</event>
|
||||||
|
<name>ПарольСервераGitПриИзменении</name>
|
||||||
|
</handlers>
|
||||||
<extendedTooltip>
|
<extendedTooltip>
|
||||||
<name>ПарольСервераGitРасширеннаяПодсказка</name>
|
<name>ПарольСервераGitРасширеннаяПодсказка</name>
|
||||||
<id>77</id>
|
<id>77</id>
|
||||||
@ -3728,6 +3856,19 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</edit>
|
</edit>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
<attributes>
|
||||||
|
<name>РепозиторийСоздан</name>
|
||||||
|
<id>15</id>
|
||||||
|
<valueType>
|
||||||
|
<types>Boolean</types>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</attributes>
|
||||||
<formCommands>
|
<formCommands>
|
||||||
<name>ОбновитьСостояние</name>
|
<name>ОбновитьСостояние</name>
|
||||||
<title>
|
<title>
|
||||||
@ -3922,6 +4063,54 @@
|
|||||||
</action>
|
</action>
|
||||||
<currentRowUse>Auto</currentRowUse>
|
<currentRowUse>Auto</currentRowUse>
|
||||||
</formCommands>
|
</formCommands>
|
||||||
|
<formCommands>
|
||||||
|
<name>ПроверитьДоступКРепозиториюGit</name>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Проверить доступ к репозиторию git</value>
|
||||||
|
</title>
|
||||||
|
<id>10</id>
|
||||||
|
<toolTip>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Проверить доступ к серверному репозиторию git на сервере 1С предприятия от имени пользователя под которым запущен сервер 1С.</value>
|
||||||
|
</toolTip>
|
||||||
|
<use>
|
||||||
|
<common>true</common>
|
||||||
|
</use>
|
||||||
|
<picture xsi:type="core:PictureRef">
|
||||||
|
<picture>StdPicture.CheckSyntax</picture>
|
||||||
|
</picture>
|
||||||
|
<action xsi:type="form:FormCommandHandlerContainer">
|
||||||
|
<handler>
|
||||||
|
<name>ПроверитьДоступКРепозиториюGit</name>
|
||||||
|
</handler>
|
||||||
|
</action>
|
||||||
|
<currentRowUse>Auto</currentRowUse>
|
||||||
|
</formCommands>
|
||||||
|
<formCommands>
|
||||||
|
<name>ЗагрузитьСписокВеток</name>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Загрузить список веток</value>
|
||||||
|
</title>
|
||||||
|
<id>11</id>
|
||||||
|
<toolTip>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Загрузить список веток сервера</value>
|
||||||
|
</toolTip>
|
||||||
|
<use>
|
||||||
|
<common>true</common>
|
||||||
|
</use>
|
||||||
|
<picture xsi:type="core:PictureRef">
|
||||||
|
<picture>StdPicture.MoveLeft</picture>
|
||||||
|
</picture>
|
||||||
|
<action xsi:type="form:FormCommandHandlerContainer">
|
||||||
|
<handler>
|
||||||
|
<name>ЗагрузитьСписокВеток</name>
|
||||||
|
</handler>
|
||||||
|
</action>
|
||||||
|
<currentRowUse>Auto</currentRowUse>
|
||||||
|
</formCommands>
|
||||||
<commandInterface>
|
<commandInterface>
|
||||||
<navigationPanel/>
|
<navigationPanel/>
|
||||||
<commandBar/>
|
<commandBar/>
|
||||||
|
@ -141,9 +141,25 @@
|
|||||||
Процедура АдресРепозиторияGitПриИзменении(Элемент)
|
Процедура АдресРепозиторияGitПриИзменении(Элемент)
|
||||||
|
|
||||||
УстановитьДоступность(ЭтаФорма);
|
УстановитьДоступность(ЭтаФорма);
|
||||||
|
ЗадатьВопросПроверкиДоступаПриИзменении();
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПользовательСервераGitПриИзменении(Элемент)
|
||||||
|
|
||||||
|
ЗадатьВопросПроверкиДоступаПриИзменении();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПарольСервераGitПриИзменении(Элемент)
|
||||||
|
|
||||||
|
ЗадатьВопросПроверкиДоступаПриИзменении();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ТипХранилищаПриИзменении(Элемент)
|
Процедура ТипХранилищаПриИзменении(Элемент)
|
||||||
|
|
||||||
@ -204,7 +220,40 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СоздатьРепозиторийGitНаСервере();
|
Если ЗначениеЗаполнено(Объект.АдресРепозиторияGit) Тогда
|
||||||
|
|
||||||
|
Результат = ПроверитьДоступКРепозиториюGitНаСервере();
|
||||||
|
|
||||||
|
Если Не Результат.Успешно Тогда
|
||||||
|
ПоказатьПредупреждение( , НСтр("ru = 'Ошибка доступа к репозиторию на сервере:'") + Символы.ПС
|
||||||
|
+ Результат.ТекстОшибки);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОбновитьИменаВеток(Результат.Ветки);
|
||||||
|
|
||||||
|
Если Результат.Ветки.Количество() > 0 Тогда
|
||||||
|
|
||||||
|
Оповещение = Новый ОписаниеОповещения("СоздатьРепозиторийGitНаСервереОтвет", ЭтотОбъект);
|
||||||
|
ТекстВопроса = НСтр("ru = 'Указанный репозиторий на сервере не пустой, содержит ветки.
|
||||||
|
|Всё равно, создать новый локальный репозиторий?'");
|
||||||
|
Кнопки = Новый СписокЗначений;
|
||||||
|
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Создать новый, установить адрес!'"));
|
||||||
|
Если Результат.Ветки.Найти(Объект.ИмяВетки) <> Неопределено Тогда
|
||||||
|
Кнопки.Добавить(КодВозвратаДиалога.ОК, НСтр("ru = 'Клонировать эту ветку с сервера'"));
|
||||||
|
Иначе
|
||||||
|
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Клонировать с сервера и создать ветку'"));
|
||||||
|
КонецЕсли;
|
||||||
|
Кнопки.Добавить(КодВозвратаДиалога.Отмена);
|
||||||
|
ПоказатьВопрос(Оповещение, ТекстВопроса, Кнопки, , КодВозвратаДиалога.Отмена, НСтр("ru = 'Внимание!'"));
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТекстЛога = Новый ТекстовыйДокумент();
|
||||||
|
СоздатьРепозиторийGitНаСервере(ТекстЛога);
|
||||||
|
ТекстЛога.Показать(НСтр("ru = 'Лог операции'"), "log.txt");
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@ -242,7 +291,31 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
УстановитьАдресРепозиторияGitНаСервере();
|
Результат = ПроверитьДоступКРепозиториюGitНаСервере();
|
||||||
|
|
||||||
|
Если НЕ Результат.Успешно Тогда
|
||||||
|
ПоказатьПредупреждение(, НСтр("ru = 'Ошибка доступа к репозиторию на сервере:'") + Символы.ПС + Результат.ТекстОшибки);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОбновитьИменаВеток(Результат.Ветки);
|
||||||
|
|
||||||
|
Если Результат.Ветки.Найти(Объект.ИмяВетки) <> Неопределено Тогда
|
||||||
|
|
||||||
|
Оповещение = Новый ОписаниеОповещения("УстановитьАдресРепозиторияGitОтвет", ЭтотОбъект);
|
||||||
|
ТекстВопроса = СтрШаблон(НСтр("ru = 'Ветка %1 существует на сервере. При отправке изменений могут возникнуть конфилкты, которые необходимо будет разрешить вручную.
|
||||||
|
|Установить адрес сервера?'"), Объект.ИмяВетки);
|
||||||
|
Кнопки = Новый СписокЗначений();
|
||||||
|
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Понимаю, установить адрес сервера!'"));
|
||||||
|
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Выбрать другую ветку'"));
|
||||||
|
Кнопки.Добавить(КодВозвратаДиалога.Отмена);
|
||||||
|
ПоказатьВопрос(Оповещение, ТекстВопроса, Кнопки, ,КодВозвратаДиалога.Отмена, НСтр("ru = 'Внимание!'"));
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТекстЛога = Новый ТекстовыйДокумент();
|
||||||
|
УстановитьАдресРепозиторияGitНаСервере(ТекстЛога, Ложь);
|
||||||
|
ТекстЛога.Показать(НСтр("ru = 'Лог операции'"), "log.txt");
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@ -315,6 +388,59 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПроверитьДоступКРепозиториюGit(Команда)
|
||||||
|
|
||||||
|
Если НЕ ЗначениеЗаполнено(Объект.АдресРепозиторияGit) Тогда
|
||||||
|
|
||||||
|
ПоказатьПредупреждение(, НСтр("ru = 'Не указан адрес репозитория на сервере Git'"));
|
||||||
|
Возврат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Результат = ПроверитьДоступКРепозиториюGitНаСервере();
|
||||||
|
|
||||||
|
Если НЕ Результат.Успешно Тогда
|
||||||
|
ПоказатьПредупреждение(, НСтр("ru = 'Ошибка доступа к репозиторию на сервере:'") + Символы.ПС + Результат.ТекстОшибки);
|
||||||
|
Возврат;
|
||||||
|
Иначе
|
||||||
|
ПоказатьПредупреждение(, НСтр("ru = 'Проверка доступа к репозиторию на сервере выполнена успешно.
|
||||||
|
|На сервере веток:'") + " " + Результат.Ветки.Количество());
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОбновитьИменаВеток(Результат.Ветки);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ЗагрузитьСписокВеток(Команда)
|
||||||
|
|
||||||
|
Если НЕ ЗначениеЗаполнено(Объект.АдресРепозиторияGit) Тогда
|
||||||
|
|
||||||
|
ПоказатьПредупреждение(, НСтр("ru = 'Не указан адрес репозитория на сервере Git'"));
|
||||||
|
Возврат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Результат = ПроверитьДоступКРепозиториюGitНаСервере();
|
||||||
|
|
||||||
|
Если НЕ Результат.Успешно Тогда
|
||||||
|
ПоказатьПредупреждение(, НСтр("ru = 'Ошибка запроса списка веток:'") + Символы.ПС + Результат.ТекстОшибки);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОбновитьИменаВеток(Результат.Ветки);
|
||||||
|
|
||||||
|
Если Результат.Ветки.Количество() > 0 Тогда
|
||||||
|
Оповещение = Новый ОписаниеОповещения("ВыборИмениВеткиОтвет", ЭтотОбъект);
|
||||||
|
Элементы.ИмяВетки.СписокВыбора.ПоказатьВыборЭлемента(Оповещение, НСтр("ru = 'Выберите ветку серверного репозитория'"));
|
||||||
|
Иначе
|
||||||
|
ПоказатьПредупреждение( , НСтр("ru = 'На сервере 0 веток.'"));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
@ -502,7 +628,7 @@
|
|||||||
|
|
||||||
Если МассивФоновыхЗаданий.Количество() > 0 Тогда
|
Если МассивФоновыхЗаданий.Количество() > 0 Тогда
|
||||||
Задание = МассивФоновыхЗаданий[0];
|
Задание = МассивФоновыхЗаданий[0];
|
||||||
СостояниеЗадания = НСтр("ru='Выполняется конвертация с %Дата%'");
|
СостояниеЗадания = НСтр("ru = 'Выполняется конвертация с %Дата%'");
|
||||||
СостояниеЗадания = СтрЗаменить(СостояниеЗадания, "%Дата%", Задание.Начало);
|
СостояниеЗадания = СтрЗаменить(СостояниеЗадания, "%Дата%", Задание.Начало);
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
@ -585,11 +711,19 @@
|
|||||||
Форма.Элементы.ФормаКонвертироватьВФорматEDT.Видимость = НЕ Форма.Объект.КонвертироватьВФорматEDT;
|
Форма.Элементы.ФормаКонвертироватьВФорматEDT.Видимость = НЕ Форма.Объект.КонвертироватьВФорматEDT;
|
||||||
Форма.Элементы.ДобавлятьМеткиСВерсиейКонфигурации.Видимость = Форма.Объект.КонвертироватьВФорматEDT;
|
Форма.Элементы.ДобавлятьМеткиСВерсиейКонфигурации.Видимость = Форма.Объект.КонвертироватьВФорматEDT;
|
||||||
|
|
||||||
ЭтоHTTPАдрес = СтрНачинаетсяС(Форма.Объект.АдресРепозиторияGit, "http://")
|
Форма.Элементы.СоздатьРепозиторийGit.Доступность = НЕ Форма.РепозиторийСоздан;
|
||||||
ИЛИ СтрНачинаетсяС(Форма.Объект.АдресРепозиторияGit, "https://");
|
Форма.Элементы.ФормаСоздатьРепозиторийGit.Доступность = НЕ Форма.РепозиторийСоздан;
|
||||||
|
|
||||||
|
ЕстьАдрес = ЗначениеЗаполнено(Форма.Объект.АдресРепозиторияGit);
|
||||||
|
|
||||||
|
ЭтоHTTPАдрес = ЭтоHTTPАдрес(Форма.Объект.АдресРепозиторияGit);
|
||||||
|
|
||||||
Форма.Элементы.ПользовательСервераGit.АвтоОтметкаНезаполненного = ЭтоHTTPАдрес;
|
Форма.Элементы.ПользовательСервераGit.АвтоОтметкаНезаполненного = ЭтоHTTPАдрес;
|
||||||
Форма.Элементы.ПарольСервераGit.АвтоОтметкаНезаполненного = ЭтоHTTPАдрес;
|
Форма.Элементы.ПарольСервераGit.АвтоОтметкаНезаполненного = ЭтоHTTPАдрес;
|
||||||
|
Форма.Элементы.ЗагрузитьСписокВеток.Доступность = ЕстьАдрес;
|
||||||
|
Форма.Элементы.УстановитьАдресРепозиторияGit.Доступность = ЕстьАдрес И Форма.РепозиторийСоздан;
|
||||||
|
Форма.Элементы.ПроверитьДоступКРепозиториюGit.Доступность = ЕстьАдрес;
|
||||||
|
|
||||||
|
|
||||||
ЭтоРасширение = Форма.Объект.ТипХранилища =
|
ЭтоРасширение = Форма.Объект.ТипХранилища =
|
||||||
ПредопределенноеЗначение("Перечисление.ТипыХранилищаКонфигураций.Расширение");
|
ПредопределенноеЗначение("Перечисление.ТипыХранилищаКонфигураций.Расширение");
|
||||||
@ -671,29 +805,24 @@
|
|||||||
&НаСервере
|
&НаСервере
|
||||||
Процедура ПроверитьНаличиеРепозитория()
|
Процедура ПроверитьНаличиеРепозитория()
|
||||||
|
|
||||||
Если НЕ ЗначениеЗаполнено(Объект.ЛокальныйКаталогGit) Тогда
|
РепозиторийСоздан = Ложь;
|
||||||
|
Если ЗначениеЗаполнено(Объект.ЛокальныйКаталогGit) Тогда
|
||||||
|
|
||||||
Элементы.СоздатьРепозиторийGit.Доступность = Ложь;
|
НайденныеФайлы = НайтиФайлы(Объект.ЛокальныйКаталогGit, "*");
|
||||||
Элементы.ФормаСоздатьРепозиторийGit.Доступность = Ложь;
|
Для Каждого Файл Из НайденныеФайлы Цикл
|
||||||
Возврат;
|
|
||||||
|
Если НРег(Файл.Имя) = ".git" Тогда
|
||||||
|
|
||||||
|
РепозиторийСоздан = Истина;
|
||||||
|
Прервать;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
НайденныеФайлы = НайтиФайлы(Объект.ЛокальныйКаталогGit, "*");
|
УстановитьДоступность(ЭтотОбъект);
|
||||||
Для каждого Файл Из НайденныеФайлы Цикл
|
|
||||||
|
|
||||||
Если НРег(Файл.Имя) = ".git" Тогда
|
|
||||||
|
|
||||||
Элементы.СоздатьРепозиторийGit.Доступность = Ложь;
|
|
||||||
Элементы.ФормаСоздатьРепозиторийGit.Доступность = Ложь;
|
|
||||||
Возврат;
|
|
||||||
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Элементы.СоздатьРепозиторийGit.Доступность = Истина;
|
|
||||||
Элементы.ФормаСоздатьРепозиторийGit.Доступность = Истина;
|
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@ -749,18 +878,36 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Процедура СоздатьРепозиторийGitНаСервере()
|
Процедура СоздатьРепозиторийGitНаСервере(ЛогОперации)
|
||||||
|
|
||||||
КонвертацияХранилища.СоздатьРепозиторийGit(Объект.Ссылка);
|
КонвертацияХранилища.СоздатьРепозиторийGit(Объект.Ссылка, ЛогОперации);
|
||||||
|
|
||||||
ПроверитьНаличиеРепозитория();
|
ПроверитьНаличиеРепозитория();
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Процедура УстановитьАдресРепозиторияGitНаСервере()
|
Процедура КлонироватьРепозиторийGitСоздатьВеткуНаСервере(ЛогОперации)
|
||||||
|
|
||||||
КонвертацияХранилища.УстановитьАдресРепозиторияGit(Объект.Ссылка);
|
КонвертацияХранилища.СоздатьРепозиторийGit(Объект.Ссылка, ЛогОперации, Истина, Истина);
|
||||||
|
|
||||||
|
ПроверитьНаличиеРепозитория();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура КлонироватьРепозиторийGitНаСервере(ЛогОперации)
|
||||||
|
|
||||||
|
КонвертацияХранилища.СоздатьРепозиторийGit(Объект.Ссылка, ЛогОперации, Истина, Ложь);
|
||||||
|
|
||||||
|
ПроверитьНаличиеРепозитория();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура УстановитьАдресРепозиторияGitНаСервере(ЛогОперации, ВеткаСуществует)
|
||||||
|
|
||||||
|
КонвертацияХранилища.УстановитьАдресРепозиторияGit(Объект.Ссылка, ЛогОперации, ВеткаСуществует);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@ -771,4 +918,141 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура СоздатьРепозиторийGitНаСервереОтвет(Ответ, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
ТекстЛога = Новый ТекстовыйДокумент();
|
||||||
|
ПоказыватьЛог = Ложь;
|
||||||
|
Если Ответ = КодВозвратаДиалога.Да Тогда
|
||||||
|
ПоказыватьЛог = Истина;
|
||||||
|
СоздатьРепозиторийGitНаСервере(ТекстЛога);
|
||||||
|
ИначеЕсли Ответ = КодВозвратаДиалога.ОК Тогда
|
||||||
|
ПоказыватьЛог = Истина;
|
||||||
|
КлонироватьРепозиторийGitНаСервере(ТекстЛога);
|
||||||
|
ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
|
||||||
|
ПоказыватьЛог = Истина;
|
||||||
|
КлонироватьРепозиторийGitСоздатьВеткуНаСервере(ТекстЛога);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ПоказыватьЛог Тогда
|
||||||
|
ТекстЛога.Показать(НСтр("ru = 'Лог операции'"), "log.txt");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура УстановитьАдресРепозиторияGitОтвет(Ответ, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Если Ответ = КодВозвратаДиалога.Да Тогда
|
||||||
|
ТекстЛога = Новый ТекстовыйДокумент();
|
||||||
|
УстановитьАдресРепозиторияGitНаСервере(ТекстЛога, Истина);
|
||||||
|
ТекстЛога.Показать(НСтр("ru = 'Лог операции'"), "log.txt");
|
||||||
|
ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
|
||||||
|
Объект.ИмяВетки = "";
|
||||||
|
Модифицированность = Истина;
|
||||||
|
ЭтотОбъект.ТекущийЭлемент = Элементы.ИмяВетки;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ЗадатьВопросПроверкиДоступаПриИзменении()
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(Объект.АдресРепозиторияGit)
|
||||||
|
И НЕ РепозиторийСоздан
|
||||||
|
И (НЕ ЭтоHTTPАдрес(Объект.АдресРепозиторияGit)
|
||||||
|
ИЛИ ЗначениеЗаполнено(Объект.ПользовательСервераGit)
|
||||||
|
И ЗначениеЗаполнено(Объект.ПарольСервераGit)) Тогда
|
||||||
|
|
||||||
|
Оповещение = Новый ОписаниеОповещения("ЗадатьВопросПроверкиДоступаПриИзмененииОтвет", ЭтотОбъект);
|
||||||
|
ТекстВопроса = НСтр("ru = 'Проверить доступ к репозиторию на сервере и загрузить список веток?'");
|
||||||
|
Кнопки = Новый СписокЗначений();
|
||||||
|
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Проверить и загрузить список веток'"));
|
||||||
|
Кнопки.Добавить(КодВозвратаДиалога.Нет);
|
||||||
|
ПоказатьВопрос(Оповещение, ТекстВопроса, Кнопки, ,КодВозвратаДиалога.Да, НСтр("ru = 'Внимание!'"));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ЗадатьВопросПроверкиДоступаПриИзмененииОтвет(Ответ, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Если Ответ = КодВозвратаДиалога.Да Тогда
|
||||||
|
Объект.ИмяВетки = "";
|
||||||
|
Модифицированность = Истина;
|
||||||
|
|
||||||
|
Результат = ПроверитьДоступКРепозиториюGitНаСервере();
|
||||||
|
Если Не Результат.Успешно Тогда
|
||||||
|
ПоказатьПредупреждение( , НСтр("ru = 'Ошибка запроса списка веток:'") + Символы.ПС + Результат.ТекстОшибки);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОбновитьИменаВеток(Результат.Ветки);
|
||||||
|
|
||||||
|
ЭтотОбъект.ТекущийЭлемент = Элементы.ИмяВетки;
|
||||||
|
Если Результат.Ветки.Количество() > 0 Тогда
|
||||||
|
Оповещение = Новый ОписаниеОповещения("ВыборИмениВеткиОтвет", ЭтотОбъект);
|
||||||
|
Элементы.ИмяВетки.СписокВыбора.ПоказатьВыборЭлемента(Оповещение, НСтр("ru = 'Выберите ветку серверного репозитория'"));
|
||||||
|
Иначе
|
||||||
|
ПоказатьПредупреждение( , НСтр("ru = 'На сервере 0 веток.'"));
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ВыборИмениВеткиОтвет(Ответ, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Если ТипЗнч(Ответ) = Тип("ЭлементСпискаЗначений") Тогда
|
||||||
|
Объект.ИмяВетки = Ответ.Значение;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Параметры:
|
||||||
|
// Адрес - Строка - адрес для проверки
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - Истина, если это адресс HTTP или HTTPS
|
||||||
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
|
функция ЭтоHTTPАдрес(Адрес)
|
||||||
|
Возврат СтрНачинаетсяС(Адрес, "http://") ИЛИ СтрНачинаетсяС(Адрес, "https://");
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ОбновитьИменаВеток(Ветки)
|
||||||
|
|
||||||
|
Элементы.ИмяВетки.СписокВыбора.Очистить();
|
||||||
|
Если Ветки.Найти("master") = Неопределено Тогда
|
||||||
|
Элементы.ИмяВетки.СписокВыбора.Добавить("master", "master (?)");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Каждого Ветка Из Ветки Цикл
|
||||||
|
Элементы.ИмяВетки.СписокВыбора.Добавить(Ветка);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Функция ПроверитьДоступКРепозиториюGitНаСервере()
|
||||||
|
|
||||||
|
ЭтоHTTPАдрес = ЭтоHTTPАдрес(Объект.АдресРепозиторияGit);
|
||||||
|
|
||||||
|
АдресРепозиторияGit = Объект.АдресРепозиторияGit;
|
||||||
|
Если ЭтоHTTPАдрес Тогда
|
||||||
|
ПозицияРазделителя = СтрНайти(АдресРепозиторияGit, "://");
|
||||||
|
Если ПозицияРазделителя > 0 и ЗначениеЗаполнено(Объект.ПользовательСервераGit) Тогда
|
||||||
|
АдресРепозиторияGit = Лев(АдресРепозиторияGit, ПозицияРазделителя + 2)
|
||||||
|
+ Объект.ПользовательСервераGit + ":"
|
||||||
|
+ Объект.ПарольСервераGit + "@"
|
||||||
|
+ Прав(АдресРепозиторияGit, СтрДлина(АдресРепозиторияGit)
|
||||||
|
- ПозицияРазделителя - 2);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат КонвертацияХранилища.ПолучитьИнформациюРепозиторияGitНаСервере(АдресРепозиторияGit);
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
@ -1525,7 +1525,7 @@
|
|||||||
// ВерсияEDT - Строка - номер версии EDT;
|
// ВерсияEDT - Строка - номер версии EDT;
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Массив - Список версий поддерживаемых в EDT
|
// Массив из Строка - Список версий поддерживаемых в EDT
|
||||||
//
|
//
|
||||||
Функция ПолучитьСписокВерсийПлатформыEDT(ВерсияEDT) Экспорт
|
Функция ПолучитьСписокВерсийПлатформыEDT(ВерсияEDT) Экспорт
|
||||||
|
|
||||||
@ -1563,7 +1563,7 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Определяет количестов установленныз версий EDT. Если Истина,
|
// Определяет количестов установленных версий EDT. Если Истина,
|
||||||
// при работе с ring необходимо указать номер версии.
|
// при работе с ring необходимо указать номер версии.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
@ -1593,6 +1593,61 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Получает информацию о серверном репозитории или возвращает текст ошибки доступа
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// АдресРепозиторияGit - Строка - адрес репозитория Git на сервере
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура - Результат запроса информации с сервера, содержит:
|
||||||
|
// * Успешно - Булево - Истина, если результат запроса к серверу был успешный
|
||||||
|
// * ТекстОшибки - Строка - текст ошибки если запрос к серверу был не успешный
|
||||||
|
// * Ветки - Массив из Строка - список имен веток доступных на сервере
|
||||||
|
//
|
||||||
|
Функция ПолучитьИнформациюРепозиторияGitНаСервере(АдресРепозиторияGit) Экспорт
|
||||||
|
|
||||||
|
ЭтоWindowsСервер = ОбщегоНазначенияПовтИсп.ЭтоWindowsСервер();
|
||||||
|
|
||||||
|
ИмяФайлаВывода = ПолучитьИмяВременногоФайла("txt");
|
||||||
|
|
||||||
|
СтрокаКоманды = "git ls-remote --heads %АдресРепозиторияGit%> ""%ИмяФайлаВывода%"" 2>&1";
|
||||||
|
|
||||||
|
|
||||||
|
СтрокаКоманды = СтрЗаменить(СтрокаКоманды, "%ИмяФайлаВывода%", ИмяФайлаВывода);
|
||||||
|
СтрокаКоманды = СтрЗаменить(СтрокаКоманды, "%АдресРепозиторияGit%", АдресРепозиторияGit);
|
||||||
|
|
||||||
|
КодВозврата = Неопределено;
|
||||||
|
ЗапуститьПриложение(?(ЭтоWindowsСервер, "cmd /C ", "")
|
||||||
|
+ СтрокаКоманды, КаталогВременныхФайлов(), Истина, КодВозврата);
|
||||||
|
|
||||||
|
Результат = Новый Структура("Успешно, ТекстОшибки, Ветки", Ложь, "", Новый Массив());
|
||||||
|
|
||||||
|
ФайлВывода = Новый ТекстовыйДокумент();
|
||||||
|
ФайлВывода.Прочитать(ИмяФайлаВывода, КодировкаТекста.UTF8);
|
||||||
|
|
||||||
|
Если КодВозврата = 0 Тогда
|
||||||
|
Результат.Успешно = Истина;
|
||||||
|
Для НомерСтроки = 1 По ФайлВывода.КоличествоСтрок() Цикл
|
||||||
|
ИмяВетки = СокрЛП(ФайлВывода.ПолучитьСтроку(НомерСтроки));
|
||||||
|
ПозицияТаб = СтрНайти(ИмяВетки, Символы.Таб);
|
||||||
|
Если ПозицияТаб > 0 Тогда
|
||||||
|
ИмяВетки = СокрЛП(Сред(ИмяВетки, ПозицияТаб + 1));
|
||||||
|
КонецЕсли;
|
||||||
|
Если СтрНачинаетсяС(ИмяВетки, "refs/heads/") Тогда
|
||||||
|
ИмяВетки = Сред(ИмяВетки, 12);
|
||||||
|
КонецЕсли;
|
||||||
|
Результат.Ветки.Добавить(ИмяВетки);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
Результат.Успешно = Ложь;
|
||||||
|
Результат.ТекстОшибки = ФайлВывода.ПолучитьТекст();
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Считывает структуру выгрузки версии из файлов
|
// Считывает структуру выгрузки версии из файлов
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
@ -1952,7 +2007,10 @@
|
|||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Хранилище - СправочникСсылка.ХранилищаКонфигураций - Ссылка на хранилище, по которому выполняются коммиты
|
// Хранилище - СправочникСсылка.ХранилищаКонфигураций - Ссылка на хранилище, по которому выполняются коммиты
|
||||||
Процедура СоздатьРепозиторийGit(Хранилище) Экспорт
|
// ЛогОперации - ТекстовыйДокумент - документ в который будет прочитан лог выполенения операции
|
||||||
|
// Клонировать - Булево - клонировать с сервера существующий репозиторий
|
||||||
|
// СоздатьВетку - Булево - Создать новую ветку от основной ветки серверного репозитория
|
||||||
|
Процедура СоздатьРепозиторийGit(Хранилище, ЛогОперации, Клонировать = Ложь, СоздатьВетку = Ложь) Экспорт
|
||||||
|
|
||||||
ЭтоWindowsСервер = ОбщегоНазначенияПовтИсп.ЭтоWindowsСервер();
|
ЭтоWindowsСервер = ОбщегоНазначенияПовтИсп.ЭтоWindowsСервер();
|
||||||
|
|
||||||
@ -1960,28 +2018,20 @@
|
|||||||
| ИмяПроектаEDT, ПользовательСервераGit, ПарольСервераGit, ИмяВетки",
|
| ИмяПроектаEDT, ПользовательСервераGit, ПарольСервераGit, ИмяВетки",
|
||||||
"ВерсияВGit", "ВерсияВGit.Код");
|
"ВерсияВGit", "ВерсияВGit.Код");
|
||||||
РеквизитыХранилища = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Хранилище, ИменаРеквизитов);
|
РеквизитыХранилища = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Хранилище, ИменаРеквизитов);
|
||||||
|
|
||||||
Файл = Новый Файл(РеквизитыХранилища.ЛокальныйКаталогGit);
|
|
||||||
Если Не Файл.Существует() Тогда
|
|
||||||
СоздатьКаталог(РеквизитыХранилища.ЛокальныйКаталогGit);
|
|
||||||
КонецЕсли;
|
|
||||||
КаталогВыгрузкиВРепозитории = КаталогФайловПроектаВРепозитории(РеквизитыХранилища);
|
|
||||||
МассивКаталогов = СтрРазделить(КаталогВыгрузкиВРепозитории, ПолучитьРазделительПути(), Ложь);
|
|
||||||
ПутьККаталогу = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыХранилища.ЛокальныйКаталогGit);
|
|
||||||
|
|
||||||
Для Каждого ИмяКаталога Из МассивКаталогов Цикл
|
СоздатьКаталогиВИерерахии(РеквизитыХранилища.КаталогВыгрузкиВерсий);
|
||||||
ПутьККаталогу = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ПутьККаталогу + ИмяКаталога);
|
СоздатьКаталогиВИерерахии(РеквизитыХранилища.ЛокальныйКаталогGit);
|
||||||
Файл = Новый Файл(ПутьККаталогу);
|
|
||||||
Если Не Файл.Существует() Тогда
|
КаталогВыгрузкиВРепозитории = КаталогФайловПроектаВРепозитории(РеквизитыХранилища);
|
||||||
СоздатьКаталог(ПутьККаталогу);
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
ФайлЛога = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыХранилища.КаталогВыгрузкиВерсий)
|
ФайлЛога = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыХранилища.КаталогВыгрузкиВерсий)
|
||||||
+ "git_log_init" + ".txt";
|
+ "git_log_init" + ".txt";
|
||||||
ФайлКомандыGit = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыХранилища.КаталогВыгрузкиВерсий)
|
ФайлКомандыGit = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыХранилища.КаталогВыгрузкиВерсий)
|
||||||
+ "git_command_init" + ?(ЭтоWindowsСервер, ".bat", ".sh");
|
+ "git_command_init" + ?(ЭтоWindowsСервер, ".bat", ".sh");
|
||||||
|
|
||||||
|
Параметры = Новый Структура("ИмяФайлаЛога", ФайлЛога);
|
||||||
|
ДобавитьЗаписьВЛог(Параметры, НСтр("ru = 'Начало инициализации Git репозитория'"));
|
||||||
|
|
||||||
ФайлКоманды = Новый ТекстовыйДокумент;
|
ФайлКоманды = Новый ТекстовыйДокумент;
|
||||||
|
|
||||||
Если НЕ ЭтоWindowsСервер Тогда
|
Если НЕ ЭтоWindowsСервер Тогда
|
||||||
@ -2009,8 +2059,38 @@
|
|||||||
ФайлКоманды.ДобавитьСтроку(ТекстКомандыУстановкиКаталога);
|
ФайлКоманды.ДобавитьСтроку(ТекстКомандыУстановкиКаталога);
|
||||||
|
|
||||||
// Инициализация репозитория
|
// Инициализация репозитория
|
||||||
ТекстКоманды = "git init" + ВыводЛога;
|
АдресРепозиторияGit = РеквизитыХранилища.АдресРепозиторияGit;
|
||||||
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
ПозицияРазделителя = СтрНайти(АдресРепозиторияGit, "://");
|
||||||
|
Если ПозицияРазделителя > 0 Тогда
|
||||||
|
АдресРепозиторияGit = Лев(АдресРепозиторияGit, ПозицияРазделителя + 2)
|
||||||
|
+ РеквизитыХранилища.ПользовательСервераGit + ":" + РеквизитыХранилища.ПарольСервераGit + "@" + Прав(
|
||||||
|
АдресРепозиторияGit, СтрДлина(АдресРепозиторияGit) - ПозицияРазделителя - 2);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Клонировать И Не СоздатьВетку И ЗначениеЗаполнено(АдресРепозиторияGit) Тогда
|
||||||
|
ТекстКоманды = "git clone -b ""%ИмяВетки%"" %АдресРепозиторияGit% ." + ВыводЛога;
|
||||||
|
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%АдресРепозиторияGit%", АдресРепозиторияGit);
|
||||||
|
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%ИмяВетки%", РеквизитыХранилища.ИмяВетки);
|
||||||
|
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
||||||
|
ИначеЕсли Клонировать И СоздатьВетку И ЗначениеЗаполнено(АдресРепозиторияGit) Тогда
|
||||||
|
ТекстКоманды = "git clone %АдресРепозиторияGit% ." + ВыводЛога;
|
||||||
|
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%АдресРепозиторияGit%", АдресРепозиторияGit);
|
||||||
|
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
||||||
|
ТекстКоманды = "git checkout -b ""%ИмяВетки%""" + ВыводЛога;
|
||||||
|
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%ИмяВетки%", РеквизитыХранилища.ИмяВетки);
|
||||||
|
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
||||||
|
Иначе
|
||||||
|
ТекстКоманды = "git init" + ВыводЛога;
|
||||||
|
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
||||||
|
Если ЗначениеЗаполнено(АдресРепозиторияGit) Тогда
|
||||||
|
ТекстКоманды = "git remote add origin %АдресРепозиторияGit%" + ВыводЛога;
|
||||||
|
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%АдресРепозиторияGit%", АдресРепозиторияGit);
|
||||||
|
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
||||||
|
ТекстКоманды = "git fetch origin" + ВыводЛога;
|
||||||
|
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
|
||||||
// Делаем пути к файлам русскоязычными
|
// Делаем пути к файлам русскоязычными
|
||||||
ТекстКоманды = "git config --local core.quotepath false" + ВыводЛога;
|
ТекстКоманды = "git config --local core.quotepath false" + ВыводЛога;
|
||||||
@ -2042,38 +2122,20 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ТекстКоманды = "git config --local core.safecrlf warn" + ВыводЛога;
|
ТекстКоманды = "git config --local core.safecrlf warn" + ВыводЛога;
|
||||||
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
||||||
|
ТекстКоманды = "git status" + ВыводЛога;
|
||||||
// Инициализация репозитория на сервере
|
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
||||||
АдресРепозиторияGit = РеквизитыХранилища.АдресРепозиторияGit;
|
|
||||||
ПозицияРазделителя = СтрНайти(АдресРепозиторияGit, "://");
|
|
||||||
Если ПозицияРазделителя > 0 Тогда
|
|
||||||
|
|
||||||
ТекстКоманды = "git remote add origin %АдресРепозиторияGit%" + ВыводЛога;
|
|
||||||
АдресРепозиторияGit = Лев(АдресРепозиторияGit, ПозицияРазделителя + 2)
|
|
||||||
+ РеквизитыХранилища.ПользовательСервераGit + ":"
|
|
||||||
+ РеквизитыХранилища.ПарольСервераGit + "@"
|
|
||||||
+ Прав(АдресРепозиторияGit, СтрДлина(АдресРепозиторияGit)
|
|
||||||
- ПозицияРазделителя - 2);
|
|
||||||
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%АдресРепозиторияGit%", АдресРепозиторияGit);
|
|
||||||
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
|
||||||
ТекстКоманды = "git fetch origin" + ВыводЛога;
|
|
||||||
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
|
||||||
ТекстКоманды = "git branch --set-upstream-to=origin/%ИмяВетки% %ИмяВетки%" + ВыводЛога;
|
|
||||||
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%ИмяВетки%", РеквизитыХранилища.ИмяВетки);
|
|
||||||
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
|
||||||
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если ЭтоWindowsСервер Тогда
|
Если ЭтоWindowsСервер Тогда
|
||||||
ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.OEM);
|
ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.OEM);
|
||||||
Иначе
|
Иначе
|
||||||
ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.Системная, Символы.ПС);
|
ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.Системная, Символы.ПС);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
|
||||||
ЗапуститьПриложение(?(ЭтоWindowsСервер, "", "bash ")
|
ЗапуститьПриложение(?(ЭтоWindowsСервер, "", "bash ")
|
||||||
+ ФайлКомандыGit, РеквизитыХранилища.ЛокальныйКаталогGit, Истина);
|
+ ФайлКомандыGit, РеквизитыХранилища.ЛокальныйКаталогGit, Истина);
|
||||||
|
|
||||||
|
СоздатьКаталогиВИерерахии(ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыХранилища.ЛокальныйКаталогGit) + КаталогВыгрузкиВРепозитории);
|
||||||
|
|
||||||
ИмяФайлаИсключений = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыХранилища.ЛокальныйКаталогGit)
|
ИмяФайлаИсключений = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыХранилища.ЛокальныйКаталогGit)
|
||||||
+ ".gitignore";
|
+ ".gitignore";
|
||||||
ЕстьИсключениеИндекса = Ложь;
|
ЕстьИсключениеИндекса = Ложь;
|
||||||
@ -2116,14 +2178,35 @@
|
|||||||
ФайлАтрибутов.ДобавитьСтроку("*.addin binary");
|
ФайлАтрибутов.ДобавитьСтроку("*.addin binary");
|
||||||
ФайлАтрибутов.Записать(ИмяФайлаАтрибутов);
|
ФайлАтрибутов.Записать(ИмяФайлаАтрибутов);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Добавляем изменения в индекс и проверяем статус
|
||||||
|
СтрокаКоманды = "git add --all ./ >> ""%ФайлЛога%"" 2>&1 && git status >> ""%ФайлЛога%"" 2>&1";
|
||||||
|
СтрокаКоманды = СтрЗаменить(СтрокаКоманды, "%ФайлЛога%", ФайлЛога);
|
||||||
|
|
||||||
|
КодВозврата = Неопределено;
|
||||||
|
ЗапуститьПриложение(?(ЭтоWindowsСервер, "cmd /C ", "")
|
||||||
|
+ СтрокаКоманды, РеквизитыХранилища.ЛокальныйКаталогGit, Истина, КодВозврата);
|
||||||
|
|
||||||
|
Если КодВозврата <> Неопределено И КодВозврата <> 0 Тогда
|
||||||
|
ДобавитьЗаписьВЛог(Параметры, НСтр("ru = 'Инициализация Git репозитория выполнена с ошибкой.'"));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ДобавитьЗаписьВЛог(Параметры, НСтр("ru = 'Окончание инициализации Git репозитория'"));
|
||||||
|
|
||||||
|
Файл = Новый Файл(ФайлЛога);
|
||||||
|
Если Файл.Существует() Тогда
|
||||||
|
ЛогОперации.Прочитать(ФайлЛога, КодировкаТекста.UTF8);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Выполняет инициализацию хранилища в Git
|
// Устанавливает адрес серверного хранилища в Git в локальный репозиторий
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Хранилище - СправочникСсылка.ХранилищаКонфигураций - Ссылка на хранилище, по которому выполняются коммиты
|
// Хранилище - СправочникСсылка.ХранилищаКонфигураций - Ссылка на хранилище, по которому выполняются коммиты
|
||||||
Процедура УстановитьАдресРепозиторияGit(Хранилище) Экспорт
|
// ЛогОперации - ТабличныйДокумент - документ в который будет прочитан лог выполенения операции
|
||||||
|
// ВеткаСуществует - Булево - серверная ветка существует
|
||||||
|
Процедура УстановитьАдресРепозиторияGit(Хранилище, ЛогОперации, ВеткаСуществует) Экспорт
|
||||||
|
|
||||||
ЭтоWindowsСервер = ОбщегоНазначенияПовтИсп.ЭтоWindowsСервер();
|
ЭтоWindowsСервер = ОбщегоНазначенияПовтИсп.ЭтоWindowsСервер();
|
||||||
|
|
||||||
@ -2134,7 +2217,10 @@
|
|||||||
+ "git_log_add_remote" + ".txt";
|
+ "git_log_add_remote" + ".txt";
|
||||||
ФайлКомандыGit = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыХранилища.КаталогВыгрузкиВерсий)
|
ФайлКомандыGit = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(РеквизитыХранилища.КаталогВыгрузкиВерсий)
|
||||||
+ "git_command_add_remote" + ?(ЭтоWindowsСервер, ".bat", ".sh");
|
+ "git_command_add_remote" + ?(ЭтоWindowsСервер, ".bat", ".sh");
|
||||||
|
|
||||||
|
Параметры = Новый Структура("ИмяФайлаЛога", ФайлЛога);
|
||||||
|
ДобавитьЗаписьВЛог(Параметры, НСтр("ru = 'Начало добавления адреса Git репозитория'"));
|
||||||
|
|
||||||
ФайлКоманды = Новый ТекстовыйДокумент;
|
ФайлКоманды = Новый ТекстовыйДокумент;
|
||||||
|
|
||||||
Если НЕ ЭтоWindowsСервер Тогда
|
Если НЕ ЭтоWindowsСервер Тогда
|
||||||
@ -2184,9 +2270,11 @@
|
|||||||
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
||||||
ТекстКоманды = "git fetch origin" + ВыводЛога;
|
ТекстКоманды = "git fetch origin" + ВыводЛога;
|
||||||
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
||||||
ТекстКоманды = "git branch --set-upstream-to=origin/%ИмяВетки% %ИмяВетки%" + ВыводЛога;
|
Если ВеткаСуществует Тогда
|
||||||
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%ИмяВетки%", РеквизитыХранилища.ИмяВетки);
|
ТекстКоманды = "git branch --set-upstream-to=origin/%ИмяВетки% %ИмяВетки%" + ВыводЛога;
|
||||||
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
ТекстКоманды = СтрЗаменить(ТекстКоманды, "%ИмяВетки%", РеквизитыХранилища.ИмяВетки);
|
||||||
|
ФайлКоманды.ДобавитьСтроку(ТекстКоманды);
|
||||||
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ЭтоWindowsСервер Тогда
|
Если ЭтоWindowsСервер Тогда
|
||||||
@ -2200,9 +2288,14 @@
|
|||||||
+ ФайлКомандыGit, РеквизитыХранилища.ЛокальныйКаталогGit, Истина, КодВозврата);
|
+ ФайлКомандыGit, РеквизитыХранилища.ЛокальныйКаталогGit, Истина, КодВозврата);
|
||||||
|
|
||||||
Если КодВозврата <> Неопределено И КодВозврата <> 0 Тогда
|
Если КодВозврата <> Неопределено И КодВозврата <> 0 Тогда
|
||||||
ТекстШаблона = НСтр("ru = 'Установка адреса Git-сервера выполнена с ошибкой.
|
ДобавитьЗаписьВЛог(Параметры, НСтр("ru = 'Установка адреса Git-сервера выполнена с ошибкой.'"));
|
||||||
|Файл лога: %ФайлЛога%'");
|
КонецЕсли;
|
||||||
ВызватьИсключение СтрЗаменить(ТекстШаблона, "%ФайлЛога%", ФайлЛога);
|
|
||||||
|
ДобавитьЗаписьВЛог(Параметры, НСтр("ru = 'Окончание добавления адреса Git репозитория'"));
|
||||||
|
|
||||||
|
Файл = Новый Файл(ФайлЛога);
|
||||||
|
Если Файл.Существует() Тогда
|
||||||
|
ЛогОперации.Прочитать(ФайлЛога, КодировкаТекста.UTF8);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@ -3996,7 +4089,7 @@
|
|||||||
|
|
||||||
Если Параметры.Свойство("ИмяФайлаЛога") И ЗначениеЗаполнено(Параметры.ИмяФайлаЛога) Тогда
|
Если Параметры.Свойство("ИмяФайлаЛога") И ЗначениеЗаполнено(Параметры.ИмяФайлаЛога) Тогда
|
||||||
Лог = Новый ЗаписьТекста();
|
Лог = Новый ЗаписьТекста();
|
||||||
Лог.Открыть(Параметры.ИмяФайлаЛога, , , Истина);
|
Лог.Открыть(Параметры.ИмяФайлаЛога, КодировкаТекста.UTF8, , Истина);
|
||||||
Лог.ЗаписатьСтроку(Строка(ТекущаяДатаСеанса()) + " " + ТекстЛога);
|
Лог.ЗаписатьСтроку(Строка(ТекущаяДатаСеанса()) + " " + ТекстЛога);
|
||||||
Если ЗначениеЗаполнено(Комментарий) Тогда
|
Если ЗначениеЗаполнено(Комментарий) Тогда
|
||||||
Лог.ЗаписатьСтроку(Комментарий);
|
Лог.ЗаписатьСтроку(Комментарий);
|
||||||
@ -4172,4 +4265,27 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура СоздатьКаталогиВИерерахии(Знач ПутьККаталогу)
|
||||||
|
|
||||||
|
ЭтоWindowsСервер = ОбщегоНазначенияПовтИсп.ЭтоWindowsСервер();
|
||||||
|
|
||||||
|
МассивКаталогов = СтрРазделить(ПутьККаталогу, ПолучитьРазделительПути(), Ложь);
|
||||||
|
ПутьККаталогу = Лев(ПутьККаталогу, Найти(ПутьККаталогу, ПолучитьРазделительПути()));
|
||||||
|
Если ЭтоWindowsСервер
|
||||||
|
И МассивКаталогов.Количество() > 1
|
||||||
|
И СтрНайти(МассивКаталогов[0], ":") > 0
|
||||||
|
ИЛИ СтрДлина(ПутьККаталогу) > СтрДлина(ПолучитьРазделительПути()) Тогда
|
||||||
|
МассивКаталогов.Удалить(0);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Каждого ИмяКаталога Из МассивКаталогов Цикл
|
||||||
|
ПутьККаталогу = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ПутьККаталогу + ИмяКаталога);
|
||||||
|
Файл = Новый Файл(ПутьККаталогу);
|
||||||
|
Если Не Файл.Существует() Тогда
|
||||||
|
СоздатьКаталог(ПутьККаталогу);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
Loading…
x
Reference in New Issue
Block a user