From 84d74ace580b32224973c35d909d646f6583d946 Mon Sep 17 00:00:00 2001
From: Ivan Zaykin <45623548+winstonobyman@users.noreply.github.com>
Date: Fri, 3 May 2024 16:40:25 +0300
Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?=
=?UTF-8?q?=D0=B0=D0=BD=D1=8B=20=D0=BF=D1=80=D0=B5=D0=B4=D0=BE=D0=BF=D1=80?=
=?UTF-8?q?=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=B7?=
=?UTF-8?q?=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=B0=20?=
=?UTF-8?q?=D0=BC=D0=B5=D1=85=D0=B0=D0=BD=D0=B8=D0=B7=D0=BC=20=D0=BE=D0=B1?=
=?UTF-8?q?=D1=89=D0=B8=D1=85=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B5=D0=B9?=
=?UTF-8?q?,=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20?=
=?UTF-8?q?=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D1=8B=20REST?=
=?UTF-8?q?=20=D0=B2=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=D1=85=20=D0=B8?=
=?UTF-8?q?=D0=BD=D1=82=D0=B5=D0=B3=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20(#64)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Изменено добавление предопределенных через общий модуль, добавлены параметры REST для методов интеграции, добавлены методы получения предопределенных значений справочников интеграции и прокси-метод для получения параметров
---
src/Catalogs/__ИнтегрируемыеСистемы.xml | 48 ++++
.../Ext/ManagerModule.bsl | 43 ++++
.../__ИнтегрируемыеСистемы/Ext/Predefined.xml | 9 -
.../Forms/ФормаСписка/Ext/Form.xml | 32 ++-
.../Forms/ФормаСписка/Ext/Form/Module.bsl | 43 ++++
src/Catalogs/__МетодыИнтеграции.xml | 205 ++++++++++++++++++
.../__МетодыИнтеграции/Ext/ManagerModule.bsl | 117 ++++++++++
.../__МетодыИнтеграции/Ext/Predefined.xml | 9 -
.../Forms/ФормаСписка/Ext/Form.xml | 27 ++-
.../Forms/ФормаСписка/Ext/Form/Module.bsl | 43 ++++
.../Forms/ФормаЭлемента/Ext/Form.xml | 63 ++++++
src/Catalogs/__НастройкиИнтеграции.xml | 48 ++++
.../Ext/ManagerModule.bsl | 44 +++-
.../__НастройкиИнтеграции/Ext/Predefined.xml | 9 -
.../Forms/ФормаСписка/Ext/Form.xml | 27 ++-
.../Forms/ФормаСписка/Ext/Form/Module.bsl | 43 ++++
.../__ИнтеграцииПереопределяемый.xml | 23 ++
.../Ext/Module.bsl | 112 ++++++++++
.../__ИнтеграцииСервер/Ext/Module.bsl | 50 +++++
src/Configuration.xml | 2 +
src/Enums/__ТипыJSON.xml | 127 +++++++++++
src/Subsystems/__УправлениеИнтеграциями.xml | 2 +
22 files changed, 1095 insertions(+), 31 deletions(-)
create mode 100644 src/Catalogs/__ИнтегрируемыеСистемы/Ext/ManagerModule.bsl
delete mode 100644 src/Catalogs/__ИнтегрируемыеСистемы/Ext/Predefined.xml
create mode 100644 src/Catalogs/__ИнтегрируемыеСистемы/Forms/ФормаСписка/Ext/Form/Module.bsl
create mode 100644 src/Catalogs/__МетодыИнтеграции/Ext/ManagerModule.bsl
delete mode 100644 src/Catalogs/__МетодыИнтеграции/Ext/Predefined.xml
create mode 100644 src/Catalogs/__МетодыИнтеграции/Forms/ФормаСписка/Ext/Form/Module.bsl
delete mode 100644 src/Catalogs/__НастройкиИнтеграции/Ext/Predefined.xml
create mode 100644 src/Catalogs/__НастройкиИнтеграции/Forms/ФормаСписка/Ext/Form/Module.bsl
create mode 100644 src/CommonModules/__ИнтеграцииПереопределяемый.xml
create mode 100644 src/CommonModules/__ИнтеграцииПереопределяемый/Ext/Module.bsl
create mode 100644 src/Enums/__ТипыJSON.xml
diff --git a/src/Catalogs/__ИнтегрируемыеСистемы.xml b/src/Catalogs/__ИнтегрируемыеСистемы.xml
index 4afe004..eb44f23 100644
--- a/src/Catalogs/__ИнтегрируемыеСистемы.xml
+++ b/src/Catalogs/__ИнтегрируемыеСистемы.xml
@@ -101,6 +101,54 @@
false
+
+
+ ИдентификаторНастройки
+
+
+ ru
+ Идентификатор настройки
+
+
+ en
+ Setting ID
+
+
+
+
+ xs:string
+
+ 100
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+ Use
+
+
diff --git a/src/Catalogs/__ИнтегрируемыеСистемы/Ext/ManagerModule.bsl b/src/Catalogs/__ИнтегрируемыеСистемы/Ext/ManagerModule.bsl
new file mode 100644
index 0000000..94c4284
--- /dev/null
+++ b/src/Catalogs/__ИнтегрируемыеСистемы/Ext/ManagerModule.bsl
@@ -0,0 +1,43 @@
+// Библиотека проектных подсистем для упрощения разработки архитектуры на 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/
+//
+
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+
+#Область ПрограммныйИнтерфейс
+
+Процедура ЗаполнитьПредопределенныеСоответствия() Экспорт
+
+ ТЗПредопределенныхЗначений = __ИнтеграцииПереопределяемый.ПредопределенныеЗначенияИнтегрируемыеСистемы();
+
+ ТЗПредопределенныхЗначенийКСозданию = __ПредопределенныеЗначения.ПредопределенныеЗначенияКСозданию(
+ ТЗПредопределенныхЗначений,
+ "Справочник.__ИнтегрируемыеСистемы");
+
+ Для Каждого СтрокаТаблицы Из ТЗПредопределенныхЗначенийКСозданию Цикл
+
+ __ПредопределенныеЗначения.СоздатьПредопределенноеЗначение(СтрокаТаблицы, Справочники.__ИнтегрируемыеСистемы);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#КонецЕсли
\ No newline at end of file
diff --git a/src/Catalogs/__ИнтегрируемыеСистемы/Ext/Predefined.xml b/src/Catalogs/__ИнтегрируемыеСистемы/Ext/Predefined.xml
deleted file mode 100644
index 1553d72..0000000
--- a/src/Catalogs/__ИнтегрируемыеСистемы/Ext/Predefined.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- СистемаN
- 000000001
- Система N
- false
-
-
\ No newline at end of file
diff --git a/src/Catalogs/__ИнтегрируемыеСистемы/Forms/ФормаСписка/Ext/Form.xml b/src/Catalogs/__ИнтегрируемыеСистемы/Forms/ФормаСписка/Ext/Form.xml
index b016299..7435785 100644
--- a/src/Catalogs/__ИнтегрируемыеСистемы/Forms/ФормаСписка/Ext/Form.xml
+++ b/src/Catalogs/__ИнтегрируемыеСистемы/Forms/ФормаСписка/Ext/Form.xml
@@ -3,7 +3,15 @@
Delete
-
+
+
+
+
+
@@ -86,6 +94,11 @@
+
+ Список.ИдентификаторНастройки
+
+
+
@@ -118,4 +131,21 @@
+
+
+
+
+ ru
+ Заполнить предопределенные
+
+
+
+
+ ru
+ Заполнить предопределенные
+
+
+ ЗаполнитьПредопределенные
+
+
\ No newline at end of file
diff --git a/src/Catalogs/__ИнтегрируемыеСистемы/Forms/ФормаСписка/Ext/Form/Module.bsl b/src/Catalogs/__ИнтегрируемыеСистемы/Forms/ФормаСписка/Ext/Form/Module.bsl
new file mode 100644
index 0000000..1ea55ad
--- /dev/null
+++ b/src/Catalogs/__ИнтегрируемыеСистемы/Forms/ФормаСписка/Ext/Form/Module.bsl
@@ -0,0 +1,43 @@
+// Библиотека проектных подсистем для упрощения разработки архитектуры на 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/
+//
+
+#Область ОбработчикиСобытийФормы
+
+#КонецОбласти
+
+#Область ОбработчикиКомандФормы
+
+&НаСервереБезКонтекста
+Процедура ЗаполнитьПредопределенныеНаСервере()
+
+ Справочники.__ИнтегрируемыеСистемы.ЗаполнитьПредопределенныеСоответствия();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗаполнитьПредопределенные(Команда)
+
+ ЗаполнитьПредопределенныеНаСервере();
+
+ Элементы.Список.Обновить();
+
+КонецПроцедуры
+
+#КонецОбласти
diff --git a/src/Catalogs/__МетодыИнтеграции.xml b/src/Catalogs/__МетодыИнтеграции.xml
index 7c4709e..d1820a9 100644
--- a/src/Catalogs/__МетодыИнтеграции.xml
+++ b/src/Catalogs/__МетодыИнтеграции.xml
@@ -193,6 +193,211 @@
Use
+
+
+ ИдентификаторНастройки
+
+
+ ru
+ Идентификатор настройки
+
+
+ en
+ Setting ID
+
+
+
+
+ xs:string
+
+ 100
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ false
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+ DontIndex
+ Use
+ Use
+
+
+
+
+
+ 6a32aa61-64ff-42c6-b4e1-58ae1428c549
+ 45199e31-ad67-4e15-84fc-a1ae2066e542
+
+
+ 02a0b998-bcb9-461a-aa4d-c3d67079a49b
+ a1db27da-6351-42bc-ab03-d4e10c8e7ebf
+
+
+
+ ПараметрыREST
+
+
+ ru
+ Параметры REST
+
+
+
+
+ DontCheck
+
+
+
+
+
+ Имя
+
+
+ ru
+ Имя
+
+
+
+
+ xs:string
+
+ 0
+ Variable
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+ Use
+
+
+
+
+ Тип
+
+
+ ru
+ Тип
+
+
+
+
+ cfg:EnumRef.__ТипыJSON
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+ Use
+
+
+
+
+ ЗначениеПоУмолчанию
+
+
+ ru
+ Значение по умолчанию
+
+
+
+
+ xs:boolean
+ xs:string
+ xs:dateTime
+ xs:decimal
+
+ 10
+ 0
+ Any
+
+
+ 100
+ Variable
+
+
+ Date
+
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+ DontIndex
+ Use
+ Use
+
+
+
+
diff --git a/src/Catalogs/__МетодыИнтеграции/Ext/ManagerModule.bsl b/src/Catalogs/__МетодыИнтеграции/Ext/ManagerModule.bsl
new file mode 100644
index 0000000..c35bde6
--- /dev/null
+++ b/src/Catalogs/__МетодыИнтеграции/Ext/ManagerModule.bsl
@@ -0,0 +1,117 @@
+// Библиотека проектных подсистем для упрощения разработки архитектуры на 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/
+//
+
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+
+#Область ПрограммныйИнтерфейс
+
+Процедура ЗаполнитьПредопределенныеСоответствия() Экспорт
+
+ ТЗПредопределенныхЗначений = __ИнтеграцииПереопределяемый.ПредопределенныеЗначенияМетодыИнтеграции();
+
+ ТЗПредопределенныхЗначенийКСозданию = __ПредопределенныеЗначения.ПредопределенныеЗначенияКСозданию(
+ ТЗПредопределенныхЗначений,
+ "Справочник.__МетодыИнтеграции");
+
+ Для Каждого СтрокаТаблицы Из ТЗПредопределенныхЗначенийКСозданию Цикл
+
+ __ПредопределенныеЗначения.СоздатьПредопределенноеЗначение(СтрокаТаблицы, Справочники.__МетодыИнтеграции);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Получает структуру параметров метода интеграции со значениями по умолчанию
+//
+// Параметры:
+// *МетодИнтеграции - СправочникСсылка.__МетодыИнтеграции - ссылка на метод, параметры которого получаем.
+// *ЗаполнятьПоУмолчанию - Булево - добавлять ли в возвращаемую структуру значения по умолчанию
+// **Ложь - возвращает структуру вида ИмяПараметра<Строка>:ТипЗначения<ПеречислениеСсылка.__ТипыJSON>
+// **Истина - возвращает структуру вида ИмяПараметра<Строка>:ЗначениеПоУмолчанию<Строка>
+// Возвращаемое значение:
+// Структура
+Функция ПолучитьСтруктуруПараметровREST(МетодИнтеграции, ЗаполнятьПоУмолчанию = Ложь) Экспорт
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | __МетодыИнтеграцииПараметрыREST.Имя КАК Имя,
+ | __МетодыИнтеграцииПараметрыREST.Тип КАК Тип,
+ | __МетодыИнтеграцииПараметрыREST.ЗначениеПоУмолчанию КАК ЗначениеПоУмолчанию
+ |ИЗ
+ | Справочник.__МетодыИнтеграции.ПараметрыREST КАК __МетодыИнтеграцииПараметрыREST
+ |ГДЕ
+ | __МетодыИнтеграцииПараметрыREST.Ссылка = &МетодИнтеграции";
+
+ Запрос.УстановитьПараметр("МетодИнтеграции", МетодИнтеграции);
+
+ РезультатЗапроса = Запрос.Выполнить();
+
+ Выборка = РезультатЗапроса.Выбрать();
+
+ Результат = Новый Структура;
+
+ Пока Выборка.Следующий() Цикл
+ Имя = Выборка.Имя;
+
+ Если ЗаполнятьПоУмолчанию Тогда
+ Результат.Вставить(Имя, ПривестиЗначениеПоУмолчаниюREST(Выборка.ЗначениеПоУмолчанию, Выборка.Тип));
+ Иначе
+ Результат.Вставить(Имя, Выборка.Тип);
+ КонецЕсли;
+
+ КонецЦикла;
+
+ Возврат Результат;
+КонецФункции
+
+// Получает структуру параметров метода интеграции со значениями по умолчанию
+//
+// Параметры:
+// Значение - СправочникСсылка.__МетодыИнтеграции - ссылка на метод, параметры которого получаем.
+// ТипJSON - ПеречислениеСсылка.__ТипыJSON - добавлять ли в возвращаемую структуру значения по умолчанию
+//
+// Возвращаемое значение:
+// Строка - приведенное к JSON поле типа
+Функция ПривестиЗначениеПоУмолчаниюREST(Значение, ТипJSON) Экспорт
+
+ Если Не ЗначениеЗаполнено(Значение) Тогда
+ Если ТипJSON = Перечисления.__ТипыJSON.Строка Тогда
+ Возврат "";
+ ИначеЕсли ТипJSON = Перечисления.__ТипыJSON.Число Тогда
+ Возврат 0;
+ Иначе
+ Возврат "null";
+ КонецЕсли;
+ КонецЕсли;
+
+ Если ТипJSON = Перечисления.__ТипыJSON.Булево Тогда
+ Возврат ?(Значение, "true", "false");
+ ИначеЕсли ТипJSON = Перечисления.__ТипыJSON.Дата Тогда
+ Возврат Формат(Значение, "ДФ=yyyy-MM-dd");
+ ИначеЕсли ТипJSON = Перечисления.__ТипыJSON.Число Тогда
+ Возврат Формат(Значение, "ЧГ=0");
+ КонецЕсли;
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецЕсли
\ No newline at end of file
diff --git a/src/Catalogs/__МетодыИнтеграции/Ext/Predefined.xml b/src/Catalogs/__МетодыИнтеграции/Ext/Predefined.xml
deleted file mode 100644
index d73b0eb..0000000
--- a/src/Catalogs/__МетодыИнтеграции/Ext/Predefined.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- МетодИнтеграцииСистемыN
- 000000001
- Метод интеграции системы N
- false
-
-
\ No newline at end of file
diff --git a/src/Catalogs/__МетодыИнтеграции/Forms/ФормаСписка/Ext/Form.xml b/src/Catalogs/__МетодыИнтеграции/Forms/ФормаСписка/Ext/Form.xml
index 81020f3..585e3c5 100644
--- a/src/Catalogs/__МетодыИнтеграции/Forms/ФормаСписка/Ext/Form.xml
+++ b/src/Catalogs/__МетодыИнтеграции/Forms/ФормаСписка/Ext/Form.xml
@@ -3,7 +3,15 @@
Delete
-
+
+
+
+
+
@@ -134,4 +142,21 @@
+
+
+
+
+ ru
+ Заполнить предопределенные
+
+
+
+
+ ru
+ Заполнить предопределенные
+
+
+ ЗаполнитьПредопределенные
+
+
\ No newline at end of file
diff --git a/src/Catalogs/__МетодыИнтеграции/Forms/ФормаСписка/Ext/Form/Module.bsl b/src/Catalogs/__МетодыИнтеграции/Forms/ФормаСписка/Ext/Form/Module.bsl
new file mode 100644
index 0000000..7a25602
--- /dev/null
+++ b/src/Catalogs/__МетодыИнтеграции/Forms/ФормаСписка/Ext/Form/Module.bsl
@@ -0,0 +1,43 @@
+// Библиотека проектных подсистем для упрощения разработки архитектуры на 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/
+//
+
+#Область ОбработчикиСобытийФормы
+
+#КонецОбласти
+
+#Область ОбработчикиКомандФормы
+
+&НаСервереБезКонтекста
+Процедура ЗаполнитьПредопределенныеНаСервере()
+
+ Справочники.__МетодыИнтеграции.ЗаполнитьПредопределенныеСоответствия();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗаполнитьПредопределенные(Команда)
+
+ ЗаполнитьПредопределенныеНаСервере();
+
+ Элементы.Список.Обновить();
+
+КонецПроцедуры
+
+#КонецОбласти
diff --git a/src/Catalogs/__МетодыИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml b/src/Catalogs/__МетодыИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml
index 56aad21..6b84f3f 100644
--- a/src/Catalogs/__МетодыИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml
+++ b/src/Catalogs/__МетодыИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml
@@ -45,6 +45,69 @@
+