1
0
mirror of https://github.com/firstBitSportivnaya/PSSL.git synced 2024-11-21 17:56:47 +02:00

Рефакторинг подсистемы интеграций и доработка истории интеграции (#120)

* Разработан метод получения содержимого каталога SFTP #117; Добавлены реквизиты для хранения файла в НЕ текстовом формате в историю интеграции #112. Рефакторинг общего модуля пбп_ИнтеграцииСервер
* Исправление ошибок по Sonarqube. #121 Добавление метода удаления файлов на SFTP. Содержит исправления для #124 и #125
This commit is contained in:
Permichev Vladislav 2024-10-17 17:37:33 +03:00 committed by GitHub
parent b4b7c46a64
commit 75960690bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
23 changed files with 2678 additions and 1273 deletions

View File

@ -10,7 +10,7 @@
"userWordsToIgnore": "пбп"
},
"LatinAndCyrillicSymbolInWord": {
"excludeWords": "ЧтениеXML, ЧтениеJSON, ЗаписьXML, ЗаписьJSON, ComОбъект, ФабрикаXDTO, ОбъектXDTO, СоединениеFTP, HTTPСоединение, HTTPЗапрос, HTTPСервисОтвет, SMSСообщение, WSПрокси, ИмяCOMОбъекта, ЭтоWindowsКлиент",
"excludeWords": "ЧтениеXML, ЧтениеJSON, ЗаписьXML, ЗаписьJSON, ComОбъект, ФабрикаXDTO, ОбъектXDTO, СоединениеFTP, HTTPСоединение, HTTPЗапрос, HTTPСервисОтвет, SMSСообщение, WSПрокси, ИмяCOMОбъекта, ЭтоWindowsКлиент, ЭтоLinuxСервер, ВыполнитьПодключениеКFTPСерверуДляИнтеграционногоПотока, ЗаполнитьПараметрыПодключенияКSFTPСерверу, ПолучитьТаблицуФайловСодержимогоSFTPСервера",
"allowTrailingPartsInAnotherLanguage": true
}
}

View File

@ -1001,6 +1001,90 @@
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<Attribute uuid="d1f5399b-14ba-4698-8561-2a733d651314">
<Properties>
<Name>ИмяФайлаСообщения</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Имя файла сообщения</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>150</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:type="xs:string"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<Attribute uuid="05bf5522-0066-4d0c-b37a-23553f477edf">
<Properties>
<Name>ФайлСообщения</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Файл сообщения</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>v8:ValueStorage</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<TabularSection uuid="ed8ab14b-48ad-444e-8949-68731cf6a0e8">
<InternalInfo>
<xr:GeneratedType name="CatalogTabularSection.пбп_ИсторияИнтеграции.ОбъектыИнтеграции" category="TabularSection">

View File

@ -20,6 +20,16 @@
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныйПрограммныйИнтерфейс
Функция ПолучитьДанныеФайлаСообщения() Экспорт
Возврат ФайлСообщения.Получить();
КонецФункции
#КонецОбласти // СлужебныйПрограммныйИнтерфейс
#Область ОбработчикиСобытий
Процедура ПередУдалением(Отказ)

View File

@ -284,13 +284,47 @@
</ToolTip>
<ExtendedTooltip name="ГруппаЗапросИсходящийРасширеннаяПодсказка" id="63"/>
<ChildItems>
<TextDocumentField name="ЗапросИсходящий" id="7">
<TextDocumentField name="ИсходящееСообщение" id="7">
<DataPath>ЗапросИсходящийОтформатированный</DataPath>
<TitleLocation>None</TitleLocation>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ЗапросИсходящийКонтекстноеМеню" id="8"/>
<ExtendedTooltip name="ЗапросИсходящийРасширеннаяПодсказка" id="9"/>
<ContextMenu name="ИсходящееСообщениеКонтекстноеМеню" id="8"/>
<ExtendedTooltip name="ИсходящееСообщениеРасширеннаяПодсказка" id="9"/>
</TextDocumentField>
<UsualGroup name="ГруппаДанныеСообщенияИсходящего" id="163">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа данные сообщения исходящего</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа данные сообщения исходящего</v8:content>
</v8:item>
</ToolTip>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаДанныеСообщенияИсходящегоРасширеннаяПодсказка" id="164"/>
<ChildItems>
<LabelDecoration name="Декорация1" id="158">
<Title formatted="false">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Прикрепленный файл обмена:</v8:content>
</v8:item>
</Title>
<ContextMenu name="Декорация1КонтекстноеМеню" id="159"/>
<ExtendedTooltip name="Декорация1РасширеннаяПодсказка" id="160"/>
</LabelDecoration>
<Button name="СохранитьФайлСообщенияОбменаИсх" id="161">
<Type>Hyperlink</Type>
<CommandName>Form.Command.СохранитьФайлСообщенияОбмена</CommandName>
<ExtendedTooltip name="СохранитьФайлСообщенияОбменаИсхРасширеннаяПодсказка" id="162"/>
</Button>
</ChildItems>
</UsualGroup>
</ChildItems>
</Page>
<Page name="ГруппаЗапросВходящий" id="102">
@ -313,13 +347,47 @@
</ToolTip>
<ExtendedTooltip name="ГруппаЗапросВходящийРасширеннаяПодсказка" id="103"/>
<ChildItems>
<TextDocumentField name="ЗапросВходящий" id="104">
<TextDocumentField name="ВходящееСообщение" id="104">
<DataPath>ЗапросВходящийОтформатированный</DataPath>
<TitleLocation>None</TitleLocation>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ЗапросВходящийКонтекстноеМеню" id="105"/>
<ExtendedTooltip name="ЗапросВходящийРасширеннаяПодсказка" id="106"/>
<ContextMenu name="ВходящееСообщениеКонтекстноеМеню" id="105"/>
<ExtendedTooltip name="ВходящееСообщениеРасширеннаяПодсказка" id="106"/>
</TextDocumentField>
<UsualGroup name="ГруппаДанныеСообщенияВходящего" id="165">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа данные сообщения входящего</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа данные сообщения исходящего</v8:content>
</v8:item>
</ToolTip>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="ГруппаДанныеСообщенияВходящегоРасширеннаяПодсказка" id="166"/>
<ChildItems>
<LabelDecoration name="Декорация2" id="167">
<Title formatted="false">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Прикрепленный файл обмена:</v8:content>
</v8:item>
</Title>
<ContextMenu name="Декорация2КонтекстноеМеню" id="168"/>
<ExtendedTooltip name="Декорация2РасширеннаяПодсказка" id="169"/>
</LabelDecoration>
<Button name="СохранитьФайлСообщенияОбменаВх" id="170">
<Type>Hyperlink</Type>
<CommandName>Form.Command.СохранитьФайлСообщенияОбмена</CommandName>
<ExtendedTooltip name="СохранитьФайлСообщенияОбменаВхРасширеннаяПодсказка" id="171"/>
</Button>
</ChildItems>
</UsualGroup>
</ChildItems>
</Page>
<Page name="ГруппаТекстОшибки" id="66">
@ -586,5 +654,20 @@
<Action>КопироватьВБуферОбмена</Action>
<Representation>TextPicture</Representation>
</Command>
<Command name="СохранитьФайлСообщенияОбмена" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранить файл сообщения обмена</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранить файл сообщения обмена</v8:content>
</v8:item>
</ToolTip>
<Action>СохранитьФайлСообщенияОбмена</Action>
</Command>
</Commands>
</Form>

View File

@ -33,21 +33,24 @@
УстановитьСвойстваЭлементов();
ЭтоЗагрузка = Объект.Статус = Перечисления.пбп_СтатусыИнтеграции.Загружено
ИЛИ Объект.Статус = Перечисления.пбп_СтатусыИнтеграции.ОшибкаЗагрузки;
Или Объект.Статус = Перечисления.пбп_СтатусыИнтеграции.ОшибкаЗагрузки;
Элементы.ГруппаОбъектыОбмена.Заголовок = ?(ЭтоЗагрузка, "Загруженные объекты", "Выгруженные объекты");
Если НЕ Объект.Ошибка Тогда
Если Не Объект.Ошибка Тогда
Элементы.ГруппаТекстОшибки.Видимость = Ложь;
Элементы.Ошибка.Видимость = Ложь;
КонецЕсли;
Если Объект.ФорматИнтеграции <> Перечисления.пбп_ФорматыИнтеграций.ПроизвольныйФормат Тогда
Если Объект.ФорматИнтеграции = Перечисления.пбп_ФорматыИнтеграций.XML
Или Объект.ФорматИнтеграции = Перечисления.пбп_ФорматыИнтеграций.JSON Тогда
Элементы.ГруппаФорматированиеТекстаЗапроса.Видимость = Истина;
Элементы.ВидОтображенияЗапроса.Видимость = Объект.ФорматИнтеграции = Перечисления.пбп_ФорматыИнтеграций.JSON;
Элементы.ЗапросИсходящий.Вид = ВидПоляФормы.ПолеHTMLДокумента;
Элементы.ЗапросВходящий.Вид = ВидПоляФормы.ПолеHTMLДокумента;
Элементы.ЗапросИсходящий.УстановитьДействие("ДокументСформирован", "ЗапросИсходящийДокументСформирован_Подключаемый");
Элементы.ЗапросВходящий.УстановитьДействие("ДокументСформирован", "ЗапросВходящийДокументСформирован_Подключаемый");
Элементы.ИсходящееСообщение.Вид = ВидПоляФормы.ПолеHTMLДокумента;
Элементы.ВходящееСообщение.Вид = ВидПоляФормы.ПолеHTMLДокумента;
Элементы.ИсходящееСообщение.УстановитьДействие("ДокументСформирован",
"ЗапросИсходящийДокументСформирован_Подключаемый");
Элементы.ВходящееСообщение.УстановитьДействие("ДокументСформирован",
"ЗапросВходящийДокументСформирован_Подключаемый");
Иначе
Элементы.ГруппаФорматированиеТекстаЗапроса.Видимость = Ложь;
Если ЗначениеЗаполнено(Объект.ВходящееСообщение) Тогда
@ -119,8 +122,8 @@
Предопределенный = "Перечисление.пбп_ФорматыИнтеграций.XML";
Если Объект.ФорматИнтеграции = пбп_ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда
Элементы.ЗапросИсходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", true);
Элементы.ЗапросВходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", true);
Элементы.ИсходящееСообщение.Документ.defaultView.Xonomy.plusminus("xonomy1", True);
Элементы.ВходящееСообщение.Документ.defaultView.Xonomy.plusminus("xonomy1", True);
Иначе
Если ВидОтображенияЗапроса Тогда
ДокументВнешнийОбъектИсходящий.expandAll();
@ -138,8 +141,8 @@
Предопределенный = "Перечисление.пбп_ФорматыИнтеграций.XML";
Если Объект.ФорматИнтеграции = пбп_ОбщегоНазначенияСлужебныйКлиент.ПредопределенныйЭлемент(Предопределенный) Тогда
Элементы.ЗапросИсходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", false);
Элементы.ЗапросВходящий.Документ.defaultView.Xonomy.plusminus("xonomy1", false);
Элементы.ИсходящееСообщение.Документ.defaultView.Xonomy.plusminus("xonomy1", False);
Элементы.ВходящееСообщение.Документ.defaultView.Xonomy.plusminus("xonomy1", False);
Иначе
Если ВидОтображенияЗапроса Тогда
ДокументВнешнийОбъектИсходящий.collapseAll();
@ -172,6 +175,37 @@
КонецПроцедуры
&НаКлиенте
Процедура СохранитьФайлСообщенияОбмена(Команда)
Если ПустаяСтрока(Объект.ИмяФайлаСообщения) Тогда
Возврат;
КонецЕсли;
ЗаголовокДиалога = НСтр("ru = 'Укажите файл внешней компоненты'");
МассивРазделителей = пбп_СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
Объект.ИмяФайлаСообщения, ".", Истина, Истина);
ИмяКомпоненты = МассивРазделителей[0];
КоличествоРазделимых = 2;
Если МассивРазделителей.Количество() = КоличествоРазделимых Тогда
Расширение = МассивРазделителей[1];
КонецЕсли;
РежимОткрытияДиалога = РежимДиалогаВыбораФайла.Сохранение;
ДиалогСохранения = Новый ДиалогВыбораФайла(РежимОткрытияДиалога);
ДиалогСохранения.ПолноеИмяФайла = ИмяКомпоненты;
ДиалогСохранения.Расширение = Расширение;
ДиалогСохранения.Заголовок = ЗаголовокДиалога;
ДиалогСохранения.ПредварительныйПросмотр = Ложь;
ДиалогСохранения.Каталог = "";
Оповещение = Новый ОписаниеОповещения("ОбработчикВыбораКаталогаСохранениеЗавершениеПослеВыбораВДиалоге", ЭтотОбъект);
ДиалогСохранения.Показать(Оповещение);
КонецПроцедуры
#КонецОбласти // ОбработчикиКомандФормы
#Область СлужебныеПроцедурыИФункции
@ -179,38 +213,64 @@
&НаСервере
Процедура УстановитьСвойстваЭлементов()
Элементы.СохранитьФайлСообщенияОбменаИсх.Заголовок = Объект.ИмяФайлаСообщения;
Элементы.СохранитьФайлСообщенияОбменаВх.Заголовок = Объект.ИмяФайлаСообщения;
Если ЗначениеЗаполнено(Объект.ИнтеграционныйПоток) Тогда
ТипИнтеграции = пбп_ОбщегоНазначенияСервер.ЗначениеРеквизитаОбъекта(
Объект.ИнтеграционныйПоток, "НастройкаИнтеграции.ТипИнтеграции");
ЭлементНаследования = Справочники.пбп_ТипыИнтеграций
.ПолучитьПредопределенныйЭлементНаследованияНастроекТипаИнтеграции(ТипИнтеграции);
Если ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.Каталог
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.FTPРесурсы Тогда
Элементы.ИсходящееСообщение.Заголовок = НСтр("ru = 'Содержимое записываемого файла'");
Элементы.ВходящееСообщение.Заголовок = НСтр("ru = 'Содержимое читаемого файла'");
ЭтоВыгрузка = НаправлениеИнтеграцииВыгружено(Объект.Статус);
Элементы.ИсходящееСообщение.Видимость = ЭтоВыгрузка;
Элементы.ВходящееСообщение.Видимость = Не ЭтоВыгрузка;
Если ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.Каталог
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.FTPРесурсы Тогда
УстановитьСвойстваЭлементовФайловогоОбмена(ТипИнтеграции, ЭтоВыгрузка);
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ПочтовыйКлиент Тогда
Элементы.ИсходящееСообщение.Заголовок = НСтр("ru = 'Содержимое тела письма'");
Элементы.ИсходящееСообщение.Видимость = Истина;
Элементы.ВходящееСообщение.Видимость = Ложь;
Элементы.ГруппаЗапросИсходящий.Заголовок = НСтр("ru = 'Содержимое тела письма';");
Элементы.ГруппаЗапросИсходящий.Видимость = Истина;
Элементы.ГруппаЗапросВходящий.Видимость = Ложь;
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.COM
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ВнешняяКомпонента Тогда
Элементы.ИсходящееСообщение.Видимость = Ложь;
Элементы.ВходящееСообщение.Видимость = Ложь;
Элементы.ГруппаЗапросИсходящий.Видимость = Ложь;
Элементы.ГруппаЗапросВходящий.Видимость = Ложь;
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.КоманднаяСтрока Тогда
Элементы.ИсходящееСообщение.Заголовок = НСтр("ru = 'Выполняемая команда'");
Элементы.ВходящееСообщение.Заголовок = НСтр("ru = 'Результат выполнения команды'");
Элементы.ИсходящееСообщение.Видимость = Истина;
Элементы.ВходящееСообщение.Видимость = Истина;
Элементы.ГруппаЗапросИсходящий.Заголовок = НСтр("ru = 'Выполняемая команда';");
Элементы.ГруппаЗапросВходящий.Заголовок = НСтр("ru = 'Результат выполнения команды';");
Элементы.ГруппаЗапросИсходящий.Видимость = Истина;
Элементы.ГруппаЗапросВходящий.Видимость = Истина;
Иначе
Элементы.ИсходящееСообщение.Заголовок = НСтр("ru = 'Запрос исходящий'");
Элементы.ВходящееСообщение.Заголовок = НСтр("ru = 'Запрос входящий'");
Элементы.ИсходящееСообщение.Видимость = Истина;
Элементы.ВходящееСообщение.Видимость = Истина;
Элементы.ГруппаЗапросИсходящий.Заголовок = НСтр("ru = 'Запрос исходящий';");
Элементы.ГруппаЗапросВходящий.Заголовок = НСтр("ru = 'Запрос входящий';");
Элементы.ГруппаЗапросИсходящий.Видимость = Истина;
Элементы.ГруппаЗапросВходящий.Видимость = Истина;
КонецЕсли;
ВывестиСсылкуНаФайлПриНеобходимости(ЭтоВыгрузка, ЭлементНаследования, ТипИнтеграции);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьСвойстваЭлементовФайловогоОбмена(ТипИнтеграции, ЭтоВыгрузка)
ЗаголовокЗаписываемыйФайл = НСтр("ru = 'Содержимое записываемого файла';");
ЗаголовокЧитаемыйФайл = НСтр("ru = 'Содержимое читаемого файла';");
Если ТипИнтеграции = Справочники.пбп_ТипыИнтеграций.SFTP Тогда
Элементы.ГруппаЗапросИсходящий.Заголовок = НСтр("ru = 'Исполняемая команда';");
Если ЭтоВыгрузка Тогда
Элементы.ГруппаЗапросВходящий.Заголовок = ЗаголовокЗаписываемыйФайл;
Иначе
Элементы.ГруппаЗапросВходящий.Заголовок = ЗаголовокЧитаемыйФайл;
КонецЕсли;
Иначе
Элементы.ГруппаЗапросИсходящий.Заголовок = ЗаголовокЗаписываемыйФайл;
Элементы.ГруппаЗапросВходящий.Заголовок = ЗаголовокЧитаемыйФайл;
Элементы.ГруппаЗапросИсходящий.Видимость = ЭтоВыгрузка;
Элементы.ГруппаЗапросВходящий.Видимость = Не ЭтоВыгрузка;
КонецЕсли;
КонецПроцедуры
@ -223,6 +283,45 @@
КонецФункции
&НаСервере
Процедура ВывестиСсылкуНаФайлПриНеобходимости(ЭтоВыгрузка, ЭлементНаследования, ТипИнтеграции)
ПоказатьСсылкуНаФайлВместоЗапроса = Не ПустаяСтрока(Объект.ИмяФайлаСообщения)
И Не (ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.COM
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ВнешняяКомпонента);
Если ПоказатьСсылкуНаФайлВместоЗапроса Тогда
Если ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.Каталог
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.FTPРесурсы
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.ПочтовыйКлиент Тогда
Если ТипИнтеграции = Справочники.пбп_ТипыИнтеграций.SFTP Тогда
Элементы.ГруппаДанныеСообщенияИсходящего.Видимость = Ложь;
Элементы.ИсходящееСообщение.Видимость = Истина;
Элементы.ГруппаДанныеСообщенияВходящего.Видимость = Истина;
Элементы.ВходящееСообщение.Видимость = Ложь;
Иначе
Элементы.ГруппаДанныеСообщенияИсходящего.Видимость = ЭтоВыгрузка;
Элементы.ИсходящееСообщение.Видимость = Не ЭтоВыгрузка;
Элементы.ГруппаДанныеСообщенияВходящего.Видимость = Не ЭтоВыгрузка;
Элементы.ВходящееСообщение.Видимость = ЭтоВыгрузка;
КонецЕсли;
ИначеЕсли ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.RESTAPI
Или ЭлементНаследования = Справочники.пбп_ТипыИнтеграций.SOAP Тогда
Элементы.ГруппаДанныеСообщенияИсходящего.Видимость = ЭтоВыгрузка;
Элементы.ГруппаДанныеСообщенияВходящего.Видимость = Не ЭтоВыгрузка;
Иначе
Элементы.ГруппаДанныеСообщенияИсходящего.Видимость = ЭтоВыгрузка;
Элементы.ГруппаДанныеСообщенияВходящего.Видимость = Не ЭтоВыгрузка;
Элементы.ИсходящееСообщение.Видимость = Ложь;
Элементы.ВходящееСообщение.Видимость = Ложь;
КонецЕсли;
Иначе
Элементы.ГруппаДанныеСообщенияИсходящего.Видимость = Ложь;
Элементы.ГруппаДанныеСообщенияВходящего.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ОтформатироватьСообщениеИнтеграции(Знач ТекстСообщенияИнтеграции)
@ -238,40 +337,61 @@
КонецФункции
&НаКлиенте
Процедура ИнициализироватьБазовыйФайлРедактора(ФорматИнтеграции)
Процедура ИнициализироватьБазовыйФайлРедактора(ФорматИнтеграцииСтрокой)
#Если ВебКлиент Тогда
ВызватьИсключение НСтр("ru = 'Редактор " + ФорматИнтеграции + " не предназначен для веб-клиента'");
ВызватьИсключение НСтр("ru = 'Редактор " + ФорматИнтеграцииСтрокой + " не предназначен для веб-клиента'");
#Иначе
Если ФорматИнтеграции = "JSON" Тогда
ЗапросИсходящийОтформатированный = ПолучитьБазовыйФайлРедактора(ФорматИнтеграции);
ЗапросВходящийОтформатированный = ЗапросИсходящийОтформатированный;
Иначе
ЗапросИсходящийОтформатированный = ПолучитьБазовыйФайлРедактора(ФорматИнтеграции, "Out");
ЗапросВходящийОтформатированный = ПолучитьБазовыйФайлРедактора(ФорматИнтеграции, "In");
Если ФорматИнтеграцииСтрокой = "JSON" Тогда
СохранитьБазовыйФайлРедактора(ФорматИнтеграцииСтрокой);
ИначеЕсли ФорматИнтеграцииСтрокой = "XML" Тогда
СохранитьБазовыйФайлРедактора(ФорматИнтеграцииСтрокой, "Out");
СохранитьБазовыйФайлРедактора(ФорматИнтеграцииСтрокой, "In");
КонецЕсли;
#КонецЕсли
КонецПроцедуры
&НаКлиенте
Функция ПолучитьБазовыйФайлРедактора(ФорматИнтеграции, Дополнение = "")
Процедура СохранитьБазовыйФайлРедактора(ФорматИнтеграции, Дополнение = "")
Расширение = ФорматИнтеграции + "Editor" + Дополнение;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ФорматИнтеграции" , ФорматИнтеграции);
ДополнительныеПараметры.Вставить("Дополнение" , Дополнение);
Оповещение = Новый ОписаниеОповещения(
"ПослеСозданияВременногоКаталогаДляБазовогоРедактора",
ЭтотОбъект, ДополнительныеПараметры);
пбп_ФайловаяСистемаКлиентПереадресация.СоздатьВременныйКаталог(Оповещение, Расширение);
КонецПроцедуры
&НаКлиенте
Процедура ПослеСозданияВременногоКаталогаДляБазовогоРедактора(
Результат, Знач ДополнительныеПараметры = Неопределено) Экспорт
#Если НЕ ВебКлиент Тогда
КаталогКомпоненты = КаталогВременныхФайлов() + ФорматИнтеграции + "Editor" + Дополнение;
КаталогНаДиске = Новый Файл(КаталогКомпоненты);
ДвоичныеДанные = ДвоичныеДанныеМакета(ФорматИнтеграции);
ДвоичныеДанные = ДвоичныеДанныеМакета(ДополнительныеПараметры.ФорматИнтеграции);
Чтение = Новый ЧтениеДанных(ДвоичныеДанные);
Файл = Новый ЧтениеZipФайла(Чтение.ИсходныйПоток());
Файл.ИзвлечьВсе(КаталогКомпоненты);
Файл.ИзвлечьВсе(Результат);
БазовыйФайлРедактора = КаталогКомпоненты + ПолучитьРазделительПути() + "index.html";
БазовыйФайлРедактора = Результат + ПолучитьРазделительПути() + "index.html";
Возврат БазовыйФайлРедактора;
Если ДополнительныеПараметры.ФорматИнтеграции = "JSON" Тогда
ЗапросИсходящийОтформатированный = БазовыйФайлРедактора;
ЗапросВходящийОтформатированный = БазовыйФайлРедактора;
ИначеЕсли ДополнительныеПараметры.Дополнение = "Out" Тогда
ЗапросИсходящийОтформатированный = БазовыйФайлРедактора;
Иначе
ЗапросВходящийОтформатированный = БазовыйФайлРедактора;
КонецЕсли;
#КонецЕсли
КонецФункции
КонецПроцедуры
&НаКлиенте
Процедура ИнициализироватьИЗаполнитьТекстомОбъектJSON(ВидОтображения, ТипЗапроса = "")
@ -281,7 +401,7 @@
ДокументВнешнийОбъектИсходящий.destroy();
КонецЕсли;
ДокументВнешнийОбъектИсходящий = Элементы.ЗапросИсходящий.Документ.defaultView.Init(ВидОтображения);
ДокументВнешнийОбъектИсходящий = Элементы.ИсходящееСообщение.Документ.defaultView.Init(ВидОтображения);
ДокументВнешнийОбъектИсходящий.setName("Корень"); // Установка имени верхнего уровня для дерева
ДокументВнешнийОбъектИсходящий.setText(Объект.ИсходящееСообщение);
@ -290,7 +410,7 @@
ДокументВнешнийОбъектВходящий.destroy();
КонецЕсли;
ДокументВнешнийОбъектВходящий = Элементы.ЗапросВходящий.Документ.defaultView.Init(ВидОтображения);
ДокументВнешнийОбъектВходящий = Элементы.ВходящееСообщение.Документ.defaultView.Init(ВидОтображения);
ДокументВнешнийОбъектВходящий.setName("Корень"); // Установка имени верхнего уровня для дерева
ДокументВнешнийОбъектВходящий.setText(Объект.ВходящееСообщение);
Иначе
@ -298,7 +418,7 @@
ДокументВнешнийОбъектИсходящий.destroy();
КонецЕсли;
ДокументВнешнийОбъектИсходящий = Элементы.ЗапросИсходящий.Документ.defaultView.Init(ВидОтображения);
ДокументВнешнийОбъектИсходящий = Элементы.ИсходящееСообщение.Документ.defaultView.Init(ВидОтображения);
ДокументВнешнийОбъектИсходящий.setName("Корень"); // Установка имени верхнего уровня для дерева
ДокументВнешнийОбъектИсходящий.setText(Объект.ИсходящееСообщение);
@ -306,10 +426,12 @@
ДокументВнешнийОбъектВходящий.destroy();
КонецЕсли;
ДокументВнешнийОбъектВходящий = Элементы.ЗапросВходящий.Документ.defaultView.Init(ВидОтображения);
Если Элементы.ВходящееСообщение.Документ <> Неопределено Тогда
ДокументВнешнийОбъектВходящий = Элементы.ВходящееСообщение.Документ.defaultView.Init(ВидОтображения);
ДокументВнешнийОбъектВходящий.setName("Корень"); // Установка имени верхнего уровня для дерева
ДокументВнешнийОбъектВходящий.setText(Объект.ВходящееСообщение);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
@ -317,19 +439,19 @@
Процедура ИнициализироватьИЗаполнитьТекстомОбъектXML(ТипЗапроса)
Если ТипЗапроса = "Исходящий" Тогда
Элементы.ЗапросИсходящий.Документ.defaultView.start(
Элементы.ИсходящееСообщение.Документ.defaultView.start(
ОтформатироватьСообщениеИнтеграции(Объект.ИсходящееСообщение), "nerd");
Иначе
Элементы.ЗапросВходящий.Документ.defaultView.start(
Элементы.ВходящееСообщение.Документ.defaultView.start(
ОтформатироватьСообщениеИнтеграции(Объект.ВходящееСообщение), "nerd");
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДвоичныеДанныеМакета(ФорматИнтеграции)
Функция ДвоичныеДанныеМакета(Знач ФорматИнтеграцииСтрокой)
Возврат ПолучитьОбщийМакет("пбп_" + ФорматИнтеграции + "Editor");
Возврат ПолучитьОбщийМакет("пбп_" + ФорматИнтеграцииСтрокой + "Editor");
КонецФункции
@ -337,9 +459,33 @@
Функция ПолучитьФорматИнтеграции(ФорматИнтеграции)
ИндексЗначенияПеречисления = Перечисления.пбп_ФорматыИнтеграций.Индекс(ФорматИнтеграции);
ФорматИнтеграции = Метаданные.Перечисления.пбп_ФорматыИнтеграций.ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя;
ФорматИнтеграцииСтрокой = Метаданные.Перечисления.пбп_ФорматыИнтеграций
.ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя;
Возврат ФорматИнтеграции;
Возврат ФорматИнтеграцииСтрокой;
КонецФункции
&НаКлиенте
Процедура ОбработчикВыбораКаталогаСохранениеЗавершениеПослеВыбораВДиалоге(
Результат, Знач ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ПутьКФайлу = Результат[0];
ДвоичныеДанныеФайла = ОбработчикВыбораКаталогаСохранениеЗавершениеПослеВыбораВДиалогаНаСервере();
ДвоичныеДанныеФайла.Записать(ПутьКФайлу);
КонецПроцедуры
&НаСервере
Функция ОбработчикВыбораКаталогаСохранениеЗавершениеПослеВыбораВДиалогаНаСервере()
РеквизитОбъект = РеквизитФормыВЗначение("Объект");
Возврат РеквизитОбъект.ПолучитьДанныеФайлаСообщения();
КонецФункции

View File

@ -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.16">
<CommonModule uuid="3044e570-3493-44fe-93db-ea28b6f22f3e">
<Properties>
<Name>пбп_ИнтеграцииFTPSFTP</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Интеграции с FTP / SFTP</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>
<ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server>
<ExternalConnection>true</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

File diff suppressed because it is too large Load Diff

View File

@ -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.16">
<CommonModule uuid="d26723ed-2cc8-44c8-afc8-1188b3e95995">
<Properties>
<Name>пбп_ИнтеграцииСлужебный</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Пбп интеграции служебный</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>
<ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server>
<ExternalConnection>true</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

View File

@ -0,0 +1,289 @@
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
// включая доработку типовых конфигураций.
//
// Copyright First BIT company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// URL: https://github.com/firstBitSportivnaya/PSSL/
//
#Область СлужебныйПрограммныйИнтерфейс
#Область ИсторияИнтеграции
// Функция возвращает структуру со всеми необходимыми значениями для заполнения записи истории интеграции
//
// Возвращаемое значение:
// Структура - описание свойств истории интеграции
//
Функция ПолучитьСтруктуруЗаписиИстории() Экспорт
СтруктураЗаписиИстории = Новый Структура;
СтруктураЗаписиИстории.Вставить("ИнтеграционныйПоток", Неопределено);
СтруктураЗаписиИстории.Вставить("ВходящееСообщение", "");
СтруктураЗаписиИстории.Вставить("ИсходящееСообщение", "");
СтруктураЗаписиИстории.Вставить("ИнтегрируемаяСистема", Неопределено);
СтруктураЗаписиИстории.Вставить("ОписаниеОшибки", "");
СтруктураЗаписиИстории.Вставить("ПротоколОбмена", "");
СтруктураЗаписиИстории.Вставить("ДатаНачалаИнтеграции", ТекущаяДатаСеанса());
СтруктураЗаписиИстории.Вставить("ДлительностьВызова", 0);
СтруктураЗаписиИстории.Вставить("ФорматИнтеграции", Перечисления.пбп_ФорматыИнтеграций.XML);
СтруктураЗаписиИстории.Вставить("ИмяФайлаСообщения", "");
СтруктураЗаписиИстории.Вставить("ФайлСообщения", Неопределено);
ОбъектыИнтеграции = Новый ТаблицаЗначений;
ОбъектыИнтеграции.Колонки.Добавить("ОбъектИнтеграции");
ОбъектыИнтеграции.Колонки.Добавить("СозданОбновлен");
СтруктураЗаписиИстории.Вставить("ОбъектыИнтеграции", ОбъектыИнтеграции);
Возврат СтруктураЗаписиИстории;
КонецФункции
// Процедура создает запись справочника История интеграции с информацией о событии интеграции
//
// Параметры:
// СтруктураЗаписиИстории - Структура - описание действия (см. ПолучитьСтруктуруЗаписиИстории)
// ЭтоЗагрузка - Булево - Истина если это Загрузка, Ложь если это Выгрузка
//
Процедура СоздатьСообщениеИсторииИнтеграции(СтруктураЗаписиИстории, ЭтоЗагрузка) Экспорт
УстановитьПривилегированныйРежим(Истина);
ДополнительноОбработатьЗапросыИнтеграцииПередЗаписьюВИсторию(СтруктураЗаписиИстории);
НовоеСообщение = Справочники.пбп_ИсторияИнтеграции.СоздатьЭлемент();
НовоеСообщение.ДатаИнтеграции = ТекущаяДатаСеанса();
НовоеСообщение.ДатаИнтеграцииВМиллисекундах = ТекущаяУниверсальнаяДатаВМиллисекундах();
НовоеСообщение.Код = Новый УникальныйИдентификатор();
НовоеСообщение.Ошибка = ЗначениеЗаполнено(СтруктураЗаписиИстории.ОписаниеОшибки);
НовоеСообщение.Пользователь = пбп_ПользователиСлужебный.ТекущийПользователь();
НовоеСообщение.ДлительностьОбмена = НовоеСообщение.ДатаИнтеграции - СтруктураЗаписиИстории.ДатаНачалаИнтеграции;
НовоеСообщение.ДлительностьВызова = СтруктураЗаписиИстории.ДлительностьВызова;
Если ЭтоЗагрузка Тогда
Если НовоеСообщение.Ошибка Тогда
НовоеСообщение.Статус = Перечисления.пбп_СтатусыИнтеграции.ОшибкаЗагрузки;
Иначе
НовоеСообщение.Статус = Перечисления.пбп_СтатусыИнтеграции.Загружено;
КонецЕсли;
Иначе
Если НовоеСообщение.Ошибка Тогда
НовоеСообщение.Статус = Перечисления.пбп_СтатусыИнтеграции.ОшибкаВыгрузки;
Иначе
НовоеСообщение.Статус = Перечисления.пбп_СтатусыИнтеграции.Выгружено;
КонецЕсли;
КонецЕсли;
ЗаполнитьЗначенияСвойств(НовоеСообщение, СтруктураЗаписиИстории);
Для Каждого Строка Из СтруктураЗаписиИстории.ОбъектыИнтеграции Цикл
НоваяСтрока = НовоеСообщение.ОбъектыИнтеграции.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
КонецЦикла;
НовоеСообщение.Записать();
КонецПроцедуры
// Процедура добавляет сообщения в протокол обмена через указанный разделитель
//
// Параметры:
// СтруктураОтвета - Структура - см. ИнтеграцииСервер.ПолучитьСтруктуруЗаписиИстории
// ТекстСообщения - Строка - Текст, который будет записан в протокол обмена
// Разделитель - Строка - Разделитель записей
Процедура ДобавитьЗаписьВПротоколОбмена(СтруктураОтвета, ТекстСообщения, Разделитель = "") Экспорт
Если ПустаяСтрока(Разделитель) Тогда
Разделитель = ";" + Символы.ПС;
КонецЕсли;
ВыводРазделителя = ?(ПустаяСтрока(СтруктураОтвета.ПротоколОбмена), "", Разделитель);
СтруктураОтвета.ПротоколОбмена = СтруктураОтвета.ПротоколОбмена + ВыводРазделителя + НСтр(ТекстСообщения);
КонецПроцедуры
#КонецОбласти // ИсторияИнтеграции
#Область РаботаСДанными
// Возвращает структуру с настройками для интеграции
//
// Параметры:
// НастройкаИнтеграции - СправочникСсылка.пбп_НастройкиИнтеграции - Ссылка на элемент справочника Настройки интеграции
//
// Возвращаемое значение:
// Структура
Функция ПолучитьСтруктуруНастроекИнтеграции(НастройкаИнтеграции) Экспорт
УстановитьПривилегированныйРежим(Истина);
СтруктураНастроек = пбп_ОбщегоНазначенияСлужебный.ЗначенияРеквизитовОбъекта(
НастройкаИнтеграции, "СтрокаПодключения, Порт, ИмяОбъекта");
ДанныеБезопасногоХранилища = пбп_ОбщегоНазначенияСлужебный.ПрочитатьДанныеИзБезопасногоХранилища(НастройкаИнтеграции);
Для Каждого КлючИЗначение Из ДанныеБезопасногоХранилища Цикл
СтруктураНастроек.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
УстановитьПривилегированныйРежим(Ложь);
Возврат СтруктураНастроек;
КонецФункции
// Возвращает структуру с настройками для интеграции
//
// Параметры:
// ИнтеграционныйПоток - СправочникСсылка.пбп_ИнтеграционныеПотоки -
// ссылка на элемент справочника интеграционные потоки
//
// Возвращаемое значение:
// Структура
Функция ПолучитьСтруктуруПотокаИНастроекИнтеграции(ИнтеграционныйПоток) Экспорт
СтруктураПотокаИНастроек = пбп_ОбщегоНазначенияСлужебный.ЗначенияРеквизитовОбъекта(
ИнтеграционныйПоток, "НастройкаИнтеграции, ТочкаВхода");
СтруктураНастроек = ПолучитьСтруктуруНастроекИнтеграции(СтруктураПотокаИНастроек.НастройкаИнтеграции);
пбп_ОбщегоНазначенияСлужебныйКлиентСервер.ДополнитьСтруктуру(СтруктураПотокаИНастроек, СтруктураНастроек);
Возврат СтруктураПотокаИНастроек;
КонецФункции
// Получает структуру параметров интеграционного потока со значениями по умолчанию
//
// Параметры:
// ИнтеграционныйПоток - СправочникСсылка.пбп_ИнтеграционныеПотоки - ссылка на метод, параметры которого получаем.
// ЗаполнятьПоУмолчанию - Булево - добавлять ли в возвращаемую структуру значения по умолчанию
// - Ложь - возвращает структуру вида ИмяПараметра<Строка>:ТипЗначения<ПеречислениеСсылка.пбп_ТипыJSON>
// - Истина - возвращает структуру вида ИмяПараметра<Строка>:ЗначениеПоУмолчанию<Строка>
//
// Возвращаемое значение:
// Структура
//
Функция ПолучитьСтруктуруПараметровВхода(ИнтеграционныйПоток, ЗаполнятьПоУмолчанию = Ложь) Экспорт
Возврат Справочники.пбп_ИнтеграционныеПотоки.ПолучитьСтруктуруПараметровВхода(
ИнтеграционныйПоток, ЗаполнятьПоУмолчанию);
КонецФункции
// Получает предопределенный метод интеграции по идентификатору настройки
//
// Параметры:
// ИдентификаторНастройки - Строка -
// строковый идентификатор предопределенного значения, реквизит ИдентификаторНастройки
//
// Возвращаемое значение:
// СправочникСсылка.пбп_МетодыИнтеграции - искомый метод интеграции
//
Функция ИнтеграционныйПоток(ИдентификаторНастройки) Экспорт
Возврат Справочники.пбп_ИнтеграционныеПотоки.НайтиПоРеквизиту("ИдентификаторНастройки", ИдентификаторНастройки);
КонецФункции
// Получает предопределенную интегрируемую систему по идентификатору настройки
//
// Параметры:
// ИдентификаторНастройки - Строка -
// строковый идентификатор предопределенного значения, реквизит ИдентификаторНастройки
//
// Возвращаемое значение:
// СправочникСсылка.пбп_ИнтегрируемыеСистемы - искомая система интеграции
//
Функция ИнтегрируемаяСистема(ИдентификаторНастройки) Экспорт
Возврат Справочники.пбп_ИнтегрируемыеСистемы.НайтиПоРеквизиту("ИдентификаторНастройки", ИдентификаторНастройки);
КонецФункции
// Получает предопределенную настройку интеграции по идентификатору настройки
//
// Параметры:
// ИдентификаторНастройки - Строка -
// строковый идентификатор предопределенного значения, реквизит ИдентификаторНастройки
//
// Возвращаемое значение:
// СправочникСсылка.пбп_НастройкиИнтеграции - искомая настройка интеграции
//
Функция НастройкаИнтеграции(ИдентификаторНастройки) Экспорт
Возврат Справочники.пбп_НастройкиИнтеграции.НайтиПоРеквизиту("ИдентификаторНастройки", ИдентификаторНастройки);
КонецФункции
#КонецОбласти // РаботаСДанными
#КонецОбласти // СлужебныйПрограммныйИнтерфейс
#Область СлужебныеПроцедурыИФункции
// Процедура обрабатывает запросы в структуре записи истории
//
// Параметры:
// СтруктураЗаписиИстории - Структура - см. ПолучитьСтруктуруЗаписиИстории
//
Процедура ДополнительноОбработатьЗапросыИнтеграцииПередЗаписьюВИсторию(СтруктураЗаписиИстории)
Если НЕ ПустаяСтрока(СтруктураЗаписиИстории.ИсходящееСообщение)
И СтрНайти(СтруктураЗаписиИстории.ИсходящееСообщение, "xml") <> 0 Тогда
ОчиститьДлинныеАтрибутыСообщенияXML(СтруктураЗаписиИстории.ИсходящееСообщение);
КонецЕсли;
Если НЕ ПустаяСтрока(СтруктураЗаписиИстории.ВходящееСообщение)
И СтрНайти(СтруктураЗаписиИстории.ВходящееСообщение, "xml") <> 0 Тогда
ОчиститьДлинныеАтрибутыСообщенияXML(СтруктураЗаписиИстории.ВходящееСообщение);
КонецЕсли;
КонецПроцедуры
// Процедура очищает XML строку от длинных записей (например base64 строк)
//
// Параметры:
// XMLСтрока - Строка - XML-текст, которые необходимо преобразовать
//
Процедура ОчиститьДлинныеАтрибутыСообщенияXML(XMLСтрока)
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(XMLСтрока);
ПостроительDOM = Новый ПостроительDOM;
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
ТребуетсяПерезаписатьXML = Ложь;
// Перебрать все узлы
МаксимальныйРазмерСтроки = 1000;
ИтераторДерева = Новый ОбходДереваDOM(ДокументDOM);
Пока ИтераторДерева.СледующийУзел() <> Неопределено Цикл
Если ТипЗнч(ИтераторДерева.ТекущийУзел) = Тип("ЭлементDOM") Тогда
Если СтрДлина(ИтераторДерева.ТекущийУзел.ТекстовоеСодержимое) > МаксимальныйРазмерСтроки Тогда
ИтераторДерева.ТекущийУзел.ТекстовоеСодержимое = "X";
ТребуетсяПерезаписатьXML = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ТребуетсяПерезаписатьXML Тогда
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку(Новый ПараметрыЗаписиXML(, , Истина, Истина));
ЗаписьDOM = Новый ЗаписьDOM;
ЗаписьDOM.Записать(ДокументDOM, ЗаписьXML);
XMLСтрока = ЗаписьXML.Закрыть();
КонецЕсли;
КонецПроцедуры
#КонецОбласти // СлужебныеПроцедурыИФункции

View File

@ -74,7 +74,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "ПроектнаяБиблиотекаПодсистем";
Описание.Версия = "1.0.2.6";
Описание.Версия = "1.0.2.7";
// Требуется библиотека стандартных подсистем.
Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы");

View File

@ -132,21 +132,17 @@
НоваяНастройка.Наименование = "Интеграция с системой N";
НоваяНастройка.ИдентификаторНастройки = "ИнтеграцияССистемойN";
НаименованиеРеквизита = "ИдентификаторНастройки";
НоваяНастройка = Результат.Добавить();
НоваяНастройка.Наименование = "Rabbit Mq";
НоваяНастройка.ИдентификаторНастройки = "RabbitMq";
НоваяНастройка.ИнтегрируемаяСистема = Справочники.пбп_ИнтегрируемыеСистемы.НайтиПоРеквизиту(
НаименованиеРеквизита, "RabbitMq");
НоваяНастройка.ИнтегрируемаяСистема = пбп_ИнтеграцииСлужебный.ИнтегрируемаяСистема("RabbitMq");
НоваяНастройка.ТипИнтеграции = Справочники.пбп_ТипыИнтеграций.RabbitMq;
НоваяНастройка.ТипАвторизации = Перечисления.пбп_ТипыАвторизации.Базовая;
НоваяНастройка = Результат.Добавить();
НоваяНастройка.Наименование = "Simple Kafka";
НоваяНастройка.ИдентификаторНастройки = "SimpleKafka";
НоваяНастройка.ИнтегрируемаяСистема = Справочники.пбп_ИнтегрируемыеСистемы.НайтиПоРеквизиту(
НаименованиеРеквизита, "Kafka");
НоваяНастройка.ИнтегрируемаяСистема = пбп_ИнтеграцииСлужебный.ИнтегрируемаяСистема("Kafka");
НоваяНастройка.ТипИнтеграции = Справочники.пбп_ТипыИнтеграций.Kafka;
НоваяНастройка.ТипАвторизации = Перечисления.пбп_ТипыАвторизации.Базовая;
@ -154,8 +150,7 @@
НоваяНастройка.Наименование = "Active directory";
НоваяНастройка.ИдентификаторНастройки = "ActiveDirectory";
НоваяНастройка.СтрокаПодключения = "Provider=""ADsDSOObject""";
НоваяНастройка.ИнтегрируемаяСистема = Справочники.пбп_ИнтегрируемыеСистемы.НайтиПоРеквизиту(
НаименованиеРеквизита, "ActiveDirectory");
НоваяНастройка.ИнтегрируемаяСистема = пбп_ИнтеграцииСлужебный.ИнтегрируемаяСистема("ActiveDirectory");
НоваяНастройка.ТипИнтеграции = Справочники.пбп_ТипыИнтеграций.COM;
НоваяНастройка.ТипАвторизации = Перечисления.пбп_ТипыАвторизации.Базовая;
НоваяНастройка.ИмяОбъекта = "ADODB.Connection";

View File

@ -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.16">
<CommonModule uuid="3153c6cd-3e13-4414-9f0a-d32f2e9f505c">
<Properties>
<Name>пбп_ФайловаяСистемаКлиент</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Файловая система клиент</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>

View File

@ -0,0 +1,100 @@
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
// включая доработку типовых конфигураций.
//
// Copyright First BIT company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// URL: https://github.com/firstBitSportivnaya/PSSL/
//
////////////////////////////////////////////////////////////////////////////////
// Файловая система клиент: аналог модуля БСП
#Область ПрограммныйИнтерфейс
// Аналог метода БСП. Получение имени временного каталога.
//
// Параметры:
// Оповещение - ОписаниеОповещения - оповещение о результате получения со следующими параметрами.
// -- ИмяКаталога - Строка - путь к созданному каталогу.
// -- ДополнительныеПараметры - Структура - значение, которое было указано при создании объекта ОписаниеОповещения.
// Расширение - Строка - суффикс в имени каталога, который поможет идентифицировать каталог при анализе.
//
Процедура СоздатьВременныйКаталог(Знач Оповещение, Расширение = "") Экспорт
Контекст = Новый Структура;
Контекст.Вставить("Оповещение", Оповещение);
Контекст.Вставить("Расширение", Расширение);
Оповещение = Новый ОписаниеОповещения("СоздатьВременныйКаталогПослеПроверкиРасширенияРаботыСФайлами",
пбп_ФайловаяСистемаСлужебныйКлиент, Контекст);
ПодключитьРасширениеДляРаботыСФайлами(Оповещение,
НСтр("ru = 'Для создания временной папки установите расширение для работы с 1С:Предприятием.'"), Ложь);
КонецПроцедуры
// Аналог метода БСП. Предлагает пользователю установить расширение для работы с 1С:Предприятием в веб-клиенте.
// Предназначена для использования в начале участков кода, в которых ведется работа с файлами.
//
// Параметры:
// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - описание процедуры, которая будет вызвана после закрытия
// формы со следующими параметрами:
// -- РасширениеПодключено - Булево - Истина, если расширение было подключено.
// -- ДополнительныеПараметры - Произвольный - параметры, заданные в ОписаниеОповещенияОЗакрытии.
// ТекстПредложения - Строка - текст сообщения. Если не указан, то выводится текст по умолчанию.
// ВозможноПродолжениеБезУстановки - Булево - если Истина, будет показана кнопка ПродолжитьБезУстановки,
// если Ложь, будет показана кнопка Отмена.
//
// Пример:
//
// Оповещение = Новый ОписаниеОповещения("ПечатьДокументаЗавершение", ЭтотОбъект);
// ТекстСообщения = НСтр("ru = 'Для печати документа необходимо установить расширение для работы с 1С:Предприятием.'");
// ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(Оповещение, ТекстСообщения);
//
// Процедура ПечатьДокументаЗавершение(РасширениеПодключено, ДополнительныеПараметры) Экспорт
// Если РасширениеПодключено Тогда
// // код печати документа, рассчитывающий на то, что расширение подключено.
// // ...
// Иначе
// // код печати документа, который работает без подключенного расширения.
// // ...
// КонецЕсли;
//
Процедура ПодключитьРасширениеДляРаботыСФайлами(
ОписаниеОповещенияОЗакрытии,
ТекстПредложения = "",
ВозможноПродолжениеБезУстановки = Истина) Экспорт
ОписаниеОповещенияЗавершение = Новый ОписаниеОповещения(
"НачатьПодключениеРасширенияРаботыСФайламиПриОтветеНаВопросОбУстановке", пбп_ФайловаяСистемаСлужебныйКлиент,
ОписаниеОповещенияОЗакрытии);
#Если Не ВебКлиент Тогда
// В мобильном, тонком и толстом клиентах расширение подключено всегда.
ВыполнитьОбработкуОповещения(ОписаниеОповещенияЗавершение, "ПодключениеНеТребуется");
Возврат;
#КонецЕсли
Контекст = Новый Структура;
Контекст.Вставить("ОписаниеОповещенияЗавершение", ОписаниеОповещенияЗавершение);
Контекст.Вставить("ТекстПредложения", ТекстПредложения);
Контекст.Вставить("ВозможноПродолжениеБезУстановки", ВозможноПродолжениеБезУстановки);
Оповещение = Новый ОписаниеОповещения(
"НачатьПодключениеРасширенияРаботыСФайламиПриУстановкеРасширения", пбп_ФайловаяСистемаСлужебныйКлиент, Контекст);
НачатьПодключениеРасширенияРаботыСФайлами(Оповещение);
КонецПроцедуры
#КонецОбласти // ПрограммныйИнтерфейс

View File

@ -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.16">
<CommonModule uuid="a15ee07d-6ab7-481b-9078-56e674cbf227">
<Properties>
<Name>пбп_ФайловаяСистемаКлиентПереадресация</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Файловая система клиент переадресация</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>

View File

@ -0,0 +1,51 @@
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
// включая доработку типовых конфигураций.
//
// Copyright First BIT company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// URL: https://github.com/firstBitSportivnaya/PSSL/
//
#Область СлужебныйПрограммныйИнтерфейс
// См. пбп_ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
Процедура СоздатьВременныйКаталог(Знач Оповещение, Расширение = "") Экспорт
Модуль = ПолучитьМодуль();
Модуль.СоздатьВременныйКаталог(Оповещение, Расширение);
КонецПроцедуры
// См. пбп_ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами.
Процедура ПодключитьРасширениеДляРаботыСФайлами(
ОписаниеОповещенияОЗакрытии,
ТекстПредложения = "",
ВозможноПродолжениеБезУстановки = Истина) Экспорт
Модуль = ПолучитьМодуль();
Модуль.ПодключитьРасширениеДляРаботыСФайлами(ОписаниеОповещенияОЗакрытии,
ТекстПредложения, ВозможноПродолжениеБезУстановки);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ПолучитьМодуль()
Возврат пбп_ОбщегоНазначенияКлиент.ОбщийМодуль("ФайловаяСистемаКлиент", "пбп_ФайловаяСистемаКлиент");
КонецФункции
#КонецОбласти

View File

@ -29,22 +29,22 @@
КонецПроцедуры
// См. пбп_ФайловаяСистема.ПараметрыЗапускаПрограммы.
Процедура ПараметрыЗапускаПрограммы() Экспорт
Функция ПараметрыЗапускаПрограммы() Экспорт
Модуль = ПолучитьМодуль();
Модуль.ПараметрыЗапускаПрограммы();
Возврат Модуль.ПараметрыЗапускаПрограммы();
КонецПроцедуры
КонецФункции
// См. пбп_ФайловаяСистема.ЗапуститьПрограмму.
Процедура ЗапуститьПрограмму(Знач КомандаЗапуска, ПараметрыЗапускаПрограммы = Неопределено) Экспорт
Функция ЗапуститьПрограмму(Знач КомандаЗапуска, ПараметрыЗапускаПрограммы = Неопределено) Экспорт
Модуль = ПолучитьМодуль();
// BSLLS:ExternalAppStarting-off
Модуль.ЗапуститьПрограмму(КомандаЗапуска, ПараметрыЗапускаПрограммы);
Возврат Модуль.ЗапуститьПрограмму(КомандаЗапуска, ПараметрыЗапускаПрограммы);
// BSLLS:ExternalAppStarting-on
КонецПроцедуры
КонецФункции
#КонецОбласти

View File

@ -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.16">
<CommonModule uuid="84c649b8-d05c-412e-93c2-d71afadb9f2f">
<Properties>
<Name>пбп_ФайловаяСистемаСлужебныйКлиент</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Файловая система служебный клиент</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>

View File

@ -0,0 +1,120 @@
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
// включая доработку типовых конфигураций.
//
// Copyright First BIT company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// URL: https://github.com/firstBitSportivnaya/PSSL/
//
////////////////////////////////////////////////////////////////////////////////
// Файловая система служебный клиент: аналог модуля БСП
#Область СлужебныйПрограммныйИнтерфейс
#Область РасширениеРаботыСФайлами
Процедура НачатьПодключениеРасширенияРаботыСФайламиПриУстановкеРасширения(Подключено, Контекст) Экспорт
// Если расширение и так уже подключено, незачем про него спрашивать.
Если Подключено Тогда
ВыполнитьОбработкуОповещения(Контекст.ОписаниеОповещенияЗавершение, "ПодключениеНеТребуется");
Возврат;
КонецЕсли;
ВызватьИсключение НСтр("ru = 'Невозможно работать с файловой системой из браузера';");
КонецПроцедуры
Процедура НачатьПодключениеРасширенияРаботыСФайламиПриОтветеНаВопросОбУстановке(Действие, ОповещениеОЗакрытии) Экспорт
РасширениеПодключено = (Действие = "РасширениеПодключено" Или Действие = "ПодключениеНеТребуется");
ВыполнитьОбработкуОповещения(ОповещениеОЗакрытии, РасширениеПодключено);
КонецПроцедуры
#КонецОбласти // РасширениеРаботыСФайлами
#Область ВременныеФайлы
#Область СоздатьВременныйКаталог
// Аналог метода БСП. Продолжение процедуры ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
//
// Параметры:
// РасширениеПодключено - Булево
// Контекст - Структура:
// * Оповещение - ОписаниеОповещения
// * Расширение - Строка
//
Процедура СоздатьВременныйКаталогПослеПроверкиРасширенияРаботыСФайлами(РасширениеПодключено, Контекст) Экспорт
Если РасширениеПодключено Тогда
Оповещение = Новый ОписаниеОповещения(
"СоздатьВременныйКаталогПослеПолученияВременногоКаталога", ЭтотОбъект, Контекст,
"СоздатьВременныйКаталогПриОбработкеОшибки", ЭтотОбъект);
НачатьПолучениеКаталогаВременныхФайлов(Оповещение);
Иначе
СоздатьВременныйКаталогОповеститьОбОшибке(НСтр("ru = 'Не удалось установить расширение для работы с 1С:Предприятием.'"), Контекст);
КонецЕсли;
КонецПроцедуры
// Аналог метода БСП. Продолжение процедуры ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
//
// Параметры:
// ИмяКаталогаВременныхФайлов - Строка
// Контекст - Структура:
// * Оповещение - ОписаниеОповещения
// * Расширение - Строка
//
Процедура СоздатьВременныйКаталогПослеПолученияВременногоКаталога(ИмяКаталогаВременныхФайлов, Контекст) Экспорт
Оповещение = Контекст.Оповещение;
Расширение = Контекст.Расширение;
ИмяКаталога = "v8_" + Строка(Новый УникальныйИдентификатор);
Если Не ПустаяСтрока(Расширение) Тогда
ИмяКаталога = ИмяКаталога + "." + Расширение;
КонецЕсли;
НачатьСозданиеКаталога(Оповещение, ИмяКаталогаВременныхФайлов + ИмяКаталога);
КонецПроцедуры
// Аналог метода БСП. Продолжение процедуры ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
Процедура СоздатьВременныйКаталогПриОбработкеОшибки(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
СтандартнаяОбработка = Ложь;
ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
СоздатьВременныйКаталогОповеститьОбОшибке(ОписаниеОшибки, Контекст);
КонецПроцедуры
// Аналог метода БСП. Продолжение процедуры ФайловаяСистемаКлиент.СоздатьВременныйКаталог.
Процедура СоздатьВременныйКаталогОповеститьОбОшибке(ОписаниеОшибки, Контекст)
ПоказатьПредупреждение(, ОписаниеОшибки);
ИмяКаталога = "";
ВыполнитьОбработкуОповещения(Контекст.Оповещение, ИмяКаталога);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти // СлужебныйПрограммныйИнтерфейс

View File

@ -57,7 +57,7 @@
<xr:Item xsi:type="xr:MDObjectRef">Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</xr:Item>
</DefaultRoles>
<Vendor>Первый БИТ</Vendor>
<Version>1.0.2.6</Version>
<Version>1.0.2.7</Version>
<UpdateCatalogAddress/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UseManagedFormInOrdinaryApplication>false</UseManagedFormInOrdinaryApplication>
@ -266,6 +266,7 @@
<Role>пбп_ЧтениеПланаВидовХарактеристикПредопределенныеЗначения</Role>
<Role>пбп_ЧтениеРегистраСведенийСоответствияОбъектовИБ</Role>
<Role>пбп_ЧтениеТиповСоответствияОбъектовИБ</Role>
<Role>пбп_ПросмотрИсторииИнтеграции</Role>
<Role>ПолныеПрава</Role>
<CommonTemplate>пбп_BSLEditor</CommonTemplate>
<CommonTemplate>пбп_JSONEditor</CommonTemplate>
@ -278,6 +279,8 @@
<CommonModule>пбп_ЗагрузкаФайлаЧерезТабличныйДокументВызовСервера</CommonModule>
<CommonModule>пбп_ЗагрузкаФайлаЧерезТабличныйДокументКлиент</CommonModule>
<CommonModule>пбп_ИнтеграцииСервер</CommonModule>
<CommonModule>пбп_ИнтеграцииСлужебный</CommonModule>
<CommonModule>пбп_ИнтеграцииFTPSFTP</CommonModule>
<CommonModule>пбп_КоннекторHTTP</CommonModule>
<CommonModule>пбп_МетодыРегламентныхЗаданийСервер</CommonModule>
<CommonModule>пбп_МодификацияКонфигурацииКлиентПереопределяемый</CommonModule>
@ -320,6 +323,9 @@
<CommonModule>пбп_СхемыЗапросов</CommonModule>
<CommonModule>пбп_ФайловаяСистема</CommonModule>
<CommonModule>пбп_ФайловаяСистемаПереадресация</CommonModule>
<CommonModule>пбп_ФайловаяСистемаКлиентПереадресация</CommonModule>
<CommonModule>пбп_ФайловаяСистемаКлиент</CommonModule>
<CommonModule>пбп_ФайловаяСистемаСлужебныйКлиент</CommonModule>
<EventSubscription>пбп_ДокументыОбработкаЗаполнения</EventSubscription>
<EventSubscription>пбп_ДокументыОбработкаПроведения</EventSubscription>
<EventSubscription>пбп_ДокументыОбработкаПроверкиЗаполнения</EventSubscription>

View File

@ -0,0 +1,15 @@
<?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.16">
<Role uuid="9c02b144-7a5b-40b9-a28c-80b3655779ca">
<Properties>
<Name>пбп_ПросмотрИсторииИнтеграции</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Просмотр истории интеграции</v8:content>
</v8:item>
</Synonym>
<Comment/>
</Properties>
</Role>
</MetaDataObject>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<Rights xmlns="http://v8.1c.ru/8.2/roles" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Rights" version="2.16">
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<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>Catalog.пбп_ИсторияИнтеграции</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
</Rights>

View File

@ -46,6 +46,9 @@
<xr:Item xsi:type="xr:MDObjectRef">DefinedType.пбп_Пользователи</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">DefinedType.пбп_УчетныеЗаписиЭлектроннойПочты</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.пбп_ТипыАвторизации</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Role.пбп_ПросмотрИсторииИнтеграции</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.пбп_ИнтеграцииСлужебный</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.пбп_ИнтеграцииFTPSFTP</xr:Item>
</Content>
</Properties>
<ChildObjects/>