Skip to content

Commit b8ead08

Browse files
committed
upd Отправить сообщения сервисов интеграции V2024.07.04
1 parent 793d460 commit b8ead08

File tree

5 files changed

+242
-20
lines changed

5 files changed

+242
-20
lines changed

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
![Infostart](/assets/img/svg/infostartlogo.svg)
1111

12-
Исходники выгружены платформой `8.3.24.1368`
12+
Исходники выгружены платформой `8.3.24.1548`
1313

1414
### Состав:
1515

@@ -65,7 +65,7 @@ _Инструмент повторяет типовой функционал, н
6565

6666
---
6767

68-
1. **Отправка сообщения сервисов интеграции** `V2024.05.08`
68+
1. **Отправка сообщения сервисов интеграции** `V2024.07.04`
6969

7070
_Инструмент позволяет создать сообщение сервиса интеграции на выбранном канале._
7171

@@ -77,7 +77,9 @@ _Инструмент позволяет создать сообщение се
7777
- [x] Кнопка запуска фонового задания по работе с 1С:Шиной
7878
- [x] Кнопка остановки фонового задания по работе с 1С:Шиной
7979
- [x] Совместимость с 8.3.17
80-
- [x] Добавлена заготовка для БСП (Дополнительные обработки и отчеты). Функция СведенияОВнешнейОбработке() `new`
80+
- [x] Добавлена заготовка для БСП (Дополнительные обработки и отчеты). Функция СведенияОВнешнейОбработке()
81+
- [x] Добавлена проверка на Минимальную версию платформы 8.3.17. Если платформа меньше, функционал будет отсутствовать `new`
82+
- [x] Добавлена проверка на версию платформы 8.3.21. Если версия больше или равна тогда появится возможность снять галочку создающую параметр "РазмерСообщения" `new`
8183
- [ ] Заполнение на основании сообщения
8284

8385
| [Исходники](/src/SendingMessageIntegrationServices/) | [Скачать epf файл](https://infostart.ru/1c/tools/2050054/) |

src/SendingMessageIntegrationServices/PAPI_ОтправкаСообщенияСервисовИнтеграции.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<v8:content>PAPI: Отправка сообщения сервисов интеграции</v8:content>
2020
</v8:item>
2121
</Synonym>
22-
<Comment>Отправить сообщения сервисов интеграции V2024.05.08</Comment>
22+
<Comment>Отправить сообщения сервисов интеграции V2024.07.04</Comment>
2323
<DefaultForm>ExternalDataProcessor.PAPI_ОтправкаСообщенияСервисовИнтеграции.Form.Форма</DefaultForm>
2424
<AuxiliaryForm/>
2525
</Properties>

src/SendingMessageIntegrationServices/PAPI_ОтправкаСообщенияСервисовИнтеграции/Ext/ObjectModule.bsl

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,157 @@
2020
//КонецФункции
2121

2222
#КонецОбласти
23+
24+
#Область СлужебныеПроцедурыИФункции
25+
26+
// Функция для возврата минимальной версии при которой будет работать история данных
27+
Функция МинимальнаяВерсияПлатформы()
28+
Возврат "8.3.17";
29+
КонецФункции
30+
31+
// Функция для возврата версии в которой появилось свойство РазмерТела
32+
Функция ВерсияСРазмерТела()
33+
Возврат "8.3.21";
34+
КонецФункции
35+
36+
37+
// Определяет используемую версию платформы.
38+
//
39+
// Параметры:
40+
// ВерсияПлатформы - Строка - Пример: "8.3.11.2867"
41+
//
42+
// Возвращаемое значение:
43+
// Структура:
44+
// Отработал - Булево - Истина, функция возвращает нормальный результат,
45+
// Ложь означает, что результат получить не удалось.
46+
// ТекстОшибки - Строка - Описание ошибки
47+
// Результат - Строка - Текущая версия конфигуратора или режима совместимости
48+
//
49+
Функция ТекущаяВерсияПлатформы(ВидПроверки = "МинимальнаяВерсияПлатформы") Экспорт
50+
51+
Результат = Новый Структура("Отработал, ТекстОшибки, Результат", Истина, "", 0);
52+
53+
АктуальнаяСистемнаяИнформация = Новый СистемнаяИнформация;
54+
55+
// 8.3.11.2867
56+
перВерсияПриложения = АктуальнаяСистемнаяИнформация.ВерсияПриложения;
57+
58+
Если ВидПроверки = "МинимальнаяВерсияПлатформы" Тогда
59+
МинимальнаяВерсия = МинимальнаяВерсияПлатформы();
60+
Иначе
61+
МинимальнаяВерсия = ВерсияСРазмерТела();
62+
КонецЕсли;
63+
64+
// Основная проверка
65+
Если ВерсияСтаршеИлиРавнаВерсии(перВерсияПриложения, МинимальнаяВерсия) Тогда
66+
67+
Результат.Результат = перВерсияПриложения;
68+
69+
Иначе
70+
71+
Результат.Отработал = Ложь;
72+
текТекстОшибки = НСтр("ru = 'Версия платформы ( %1 ), необходима версия не ниже ( %2 )'");
73+
Результат.ТекстОшибки = СтрШаблон(текТекстОшибки, перВерсияПриложения, МинимальнаяВерсия);
74+
75+
КонецЕсли;
76+
77+
Возврат Результат;
78+
79+
КонецФункции
80+
81+
82+
// Сравниваем две версии и возвращаем Истина если ПроверяемаяВерсия >= ЭталоннаяВерсия,
83+
// в противном случае возвращаем Ложь
84+
Функция ВерсияСтаршеИлиРавнаВерсии(ПроверяемаяВерсия, ЭталоннаяВерсия)
85+
86+
СтруктураПроверяемаяВерсия = ВернутьСтруктуруПоВерсии(ПроверяемаяВерсия);
87+
СтруктураЭталоннаяВерсия = ВернутьСтруктуруПоВерсии(ЭталоннаяВерсия);
88+
89+
Результат = Истина;
90+
91+
Если Число(СтруктураПроверяемаяВерсия.НомерВерсии) > Число(СтруктураЭталоннаяВерсия.НомерВерсии) Тогда
92+
93+
Возврат Результат;
94+
95+
ИначеЕсли Число(СтруктураПроверяемаяВерсия.НомерВерсии) < Число(СтруктураЭталоннаяВерсия.НомерВерсии) Тогда
96+
97+
Результат = Ложь;
98+
99+
Иначе // СтруктураПроверяемаяВерсия.НомерВерсии = СтруктураЭталоннаяВерсия
100+
101+
Если Число(СтруктураПроверяемаяВерсия.НомерРедакции) > Число(СтруктураЭталоннаяВерсия.НомерРедакции) Тогда
102+
103+
Возврат Результат;
104+
105+
ИначеЕсли Число(СтруктураПроверяемаяВерсия.НомерРедакции) < Число(СтруктураЭталоннаяВерсия.НомерРедакции) Тогда
106+
107+
Результат = Ложь;
108+
109+
Иначе // СтруктураПроверяемаяВерсия.НомерРедакции = СтруктураЭталоннаяВерсия.НомерРедакции
110+
111+
Если Число(СтруктураПроверяемаяВерсия.НомерРелиза) > Число(СтруктураЭталоннаяВерсия.НомерРелиза) Тогда
112+
113+
Возврат Результат;
114+
115+
ИначеЕсли Число(СтруктураПроверяемаяВерсия.НомерРелиза) < Число(СтруктураЭталоннаяВерсия.НомерРелиза) Тогда
116+
117+
Результат = Ложь;
118+
119+
Иначе // СтруктураПроверяемаяВерсия.НомерРелиза = СтруктураЭталоннаяВерсия.НомерРелиза
120+
121+
Если СтруктураПроверяемаяВерсия.НомерПодрелиза <> "0" Тогда
122+
123+
Если Число(СтруктураПроверяемаяВерсия.НомерПодрелиза) > Число(СтруктураЭталоннаяВерсия.НомерПодрелиза) Тогда
124+
125+
Возврат Результат;
126+
127+
ИначеЕсли Число(СтруктураПроверяемаяВерсия.НомерПодрелиза) < Число(СтруктураЭталоннаяВерсия.НомерПодрелиза) Тогда
128+
129+
Результат = Ложь;
130+
131+
Иначе
132+
133+
Возврат Результат;
134+
135+
КонецЕсли; // НомерПодрелиза
136+
КонецЕсли; // НомерПодрелиза <> "0"
137+
КонецЕсли; // НомерРелиза
138+
КонецЕсли; // НомерРедакции
139+
КонецЕсли; // НомерВерсии
140+
141+
Возврат Результат;
142+
143+
КонецФункции
144+
145+
// Возвращает структуру по версии
146+
// Параметры:
147+
// ВерсияПлатформы - Строка - Пример: "8.3.11.2867"
148+
//
149+
// Возвращаемое значение:
150+
// Структура:
151+
// НомерВерсии - Строка - Пример: "8"
152+
// НомерРедакции - Строка - Пример: "3"
153+
// НомерРелиза - Строка - Пример: "11"
154+
// НомерПодрелиза - Строка - Пример: "2867"
155+
Функция ВернутьСтруктуруПоВерсии(ВерсияПлатформы)
156+
157+
массивРазделенныхЭлементов = СтрРазделить(ВерсияПлатформы, ".", Истина);
158+
159+
Если массивРазделенныхЭлементов.Количество() < 4 Тогда
160+
Пока массивРазделенныхЭлементов.Количество() < 4 Цикл
161+
массивРазделенныхЭлементов.Добавить("0");
162+
КонецЦикла;
163+
КонецЕсли;
164+
165+
СтруктураВерсияПриложения = Новый Структура("НомерВерсии, НомерРедакции, НомерРелиза, НомерПодрелиза"
166+
,массивРазделенныхЭлементов[0]
167+
,массивРазделенныхЭлементов[1]
168+
,массивРазделенныхЭлементов[2]
169+
,массивРазделенныхЭлементов[3]);
170+
171+
Возврат СтруктураВерсияПриложения;
172+
173+
КонецФункции
174+
175+
#КонецОбласти
176+

src/SendingMessageIntegrationServices/PAPI_ОтправкаСообщенияСервисовИнтеграции/Forms/Форма/Ext/Form.xml

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" 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: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.17">
2+
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" 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: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.17">
33
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
44
<Autofill>false</Autofill>
55
</AutoCommandBar>
@@ -519,7 +519,7 @@
519519
<Title>
520520
<v8:item>
521521
<v8:lang>ru</v8:lang>
522-
<v8:content>Создать "РазмерСообщения"</v8:content>
522+
<v8:content>Создать параметр "РазмерСообщения" (обязательно если платформа младше 8.3.21)</v8:content>
523523
</v8:item>
524524
</Title>
525525
<Type>
@@ -541,6 +541,32 @@
541541
</v8:StringQualifiers>
542542
</Type>
543543
</Attribute>
544+
<Attribute name="ВерсияПлатформы" id="13">
545+
<Title>
546+
<v8:item>
547+
<v8:lang>ru</v8:lang>
548+
<v8:content>Версия платформы</v8:content>
549+
</v8:item>
550+
</Title>
551+
<Type>
552+
<v8:Type>xs:string</v8:Type>
553+
<v8:StringQualifiers>
554+
<v8:Length>0</v8:Length>
555+
<v8:AllowedLength>Variable</v8:AllowedLength>
556+
</v8:StringQualifiers>
557+
</Type>
558+
</Attribute>
559+
<Attribute name="ВерсияСРазмеромТела" id="14">
560+
<Title>
561+
<v8:item>
562+
<v8:lang>ru</v8:lang>
563+
<v8:content>Версия с размером тела</v8:content>
564+
</v8:item>
565+
</Title>
566+
<Type>
567+
<v8:Type>xs:boolean</v8:Type>
568+
</Type>
569+
</Attribute>
544570
</Attributes>
545571
<Commands>
546572
<Command name="ОтправитьСообщение" id="1">

src/SendingMessageIntegrationServices/PAPI_ОтправкаСообщенияСервисовИнтеграции/Forms/Форма/Ext/Form/Module.bsl

Lines changed: 54 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,31 +27,46 @@
2727
&НаСервере
2828
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
2929

30-
Если Метаданные.СервисыИнтеграции.Количество() > 0 Тогда
31-
Для Каждого СервисИнтеграции Из Метаданные.СервисыИнтеграции Цикл
32-
33-
Элементы.Сервис.СписокВыбора.Добавить(СервисИнтеграции.Имя,СервисИнтеграции.Имя);
34-
35-
КонецЦикла;
36-
37-
Если Элементы.Сервис.СписокВыбора.Количество() > 0 Тогда
38-
39-
Сервис = Элементы.Сервис.СписокВыбора[0];
30+
// Проверка пригодности платформы
31+
СтруктураПроверки = ЭтотОбъект().ТекущаяВерсияПлатформы();
32+
Если СтруктураПроверки.Отработал Тогда
33+
ЕстьОшибка = Ложь;
34+
ВерсияПлатформы = СтруктураПроверки.Результат;
35+
36+
Если Метаданные.СервисыИнтеграции.Количество() > 0 Тогда
37+
Для Каждого СервисИнтеграции Из Метаданные.СервисыИнтеграции Цикл
38+
39+
Элементы.Сервис.СписокВыбора.Добавить(СервисИнтеграции.Имя,СервисИнтеграции.Имя);
40+
41+
КонецЦикла;
4042

41-
СервисПриИзмененииНаСервере();
42-
43-
КонецЕсли;
44-
КонецЕсли;
43+
Если Элементы.Сервис.СписокВыбора.Количество() > 0 Тогда
44+
45+
Сервис = Элементы.Сервис.СписокВыбора[0];
46+
47+
СервисПриИзмененииНаСервере();
48+
49+
КонецЕсли;
50+
КонецЕсли;
4551

52+
Иначе
53+
ЕстьОшибка = Истина;
54+
ТекстОшибки = СтруктураПроверки.ТекстОшибки;
55+
КонецЕсли;
56+
4657
// Создаю параметр для описания сообщения
4758
новСтрока = ПараметрыСообщения.Добавить();
4859
новСтрока.Ключ = "ТипСообщения";
4960
новСтрока.Значение = "ОбменДанными";
5061

5162
// Для того чтобы в параметрах было сведения о размере тела сообщения:
5263
// Сообщение.Параметры.Вставить("РазмерСообщения", Буфер.Размер);
64+
СтруктураПроверки = ЭтотОбъект().ТекущаяВерсияПлатформы("ВерсияСРазмеромТела");
65+
ВерсияСРазмеромТела = СтруктураПроверки.Отработал;
5366
ВключитьРазмерСообщения = Истина;
5467

68+
ВидимостьИДоступностьЭлементов();
69+
5570
КонецПроцедуры
5671

5772
#КонецОбласти
@@ -269,6 +284,31 @@
269284

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

287+
&НаСервере
288+
Функция ЭтотОбъект(ТекущийОбъект = Неопределено)
289+
290+
Если ТекущийОбъект = Неопределено Тогда
291+
Возврат РеквизитФормыВЗначение("Объект");
292+
КонецЕсли;
293+
ЗначениеВРеквизитФормы(ТекущийОбъект, "Объект");
294+
295+
Возврат Неопределено;
296+
297+
КонецФункции
298+
299+
&НаСервере
300+
Процедура ВидимостьИДоступностьЭлементов()
301+
302+
Элементы.ТекстОшибки.Видимость = ЕстьОшибка;
303+
304+
Элементы.ГруппаШапка.Видимость = Не ЕстьОшибка;
305+
Элементы.Страницы.Видимость = Не ЕстьОшибка;
306+
Элементы.ИдентификаторЗапроса.Видимость = Не ЕстьОшибка;
307+
Элементы.ГруппаКоманднаяПанель.Видимость = Не ЕстьОшибка;
308+
309+
Элементы.ВключитьРазмерСообщения.Видимость = ВерсияСРазмеромТела
310+
311+
КонецПроцедуры
272312

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

0 commit comments

Comments
 (0)