Compare commits

35 Commits

Author SHA1 Message Date
8a88dea2b9 Рефакторинг по замечаниям Sonarqube 2025-07-10 12:51:24 +03:00
78b1198f7a Добавил возможность сравнивания версий
- При уведомлении о неактуальных версиях производится сравнение версий
- При получении статуса конфигурации производится сравнение версий
- Вывод диагностики в случае когда текущая версия старше актуальной. Это считается ошибкой.
2025-07-10 12:25:11 +03:00
97427fb844 Отредактировал список команд в README 2025-07-09 18:50:44 +03:00
63ad60bdf8 Отредактировал список команд в README 2025-07-09 18:48:26 +03:00
869bd182cb Отредактировал список команд в README 2025-07-09 18:36:07 +03:00
ae3fe05e5d Отредактировал список команд в README 2025-07-09 18:33:02 +03:00
d904c25ce6 Отредактировал список команд в README 2025-07-09 18:30:29 +03:00
36cea3f0b0 Рефакторинг по замечаниям Sonarqube 2025-07-09 18:25:08 +03:00
ae881c62b7 Добавил новую команду в меню бота
- Добавил команду вывода справки
2025-07-09 18:17:21 +03:00
72df024952 Рефакторинг по замечаниям Sonarqube 2025-07-08 12:46:36 +03:00
d5c675d201 Рефакторинг по замечаниям Sonarqube 2025-07-08 12:39:28 +03:00
5029be4a6f Рефакторинг по замечаниям Sonarqube 2025-07-08 12:35:01 +03:00
634a5450d4 Рефакторинг по замечаниям Sonarqube 2025-07-08 12:30:12 +03:00
a7d01cc925 Рефакторинг по замечаниям Sonarqube 2025-07-08 12:28:13 +03:00
3a86f70db3 Рефакторинг по замечаниям Sonarqube 2025-07-08 12:20:11 +03:00
0812e7587d Рефакторинг по замечаниям Sonarqube 2025-07-08 11:16:31 +03:00
f5bb6aa6e5 Рефакторинг по замечаниям Sonarqube 2025-07-08 11:13:16 +03:00
0222e27c15 Рефакторинг по замечаниям Sonarqube 2025-07-08 10:16:29 +03:00
e8c9692b9d Обновил описание проекта 2025-07-07 17:20:47 +03:00
03bf110470 Рефакторинг кода 2025-07-07 17:18:14 +03:00
7300e8b228 Добавил роли и административного пользователя
- Добавил базовые роли
- Наименование объектов привёл к общепринятым
2025-07-07 17:06:28 +03:00
8e98d394d3 Рефакторинг общего модуля
- Удалил лишние комментарии в коде
2025-07-07 12:49:31 +03:00
b5a4761b1c Удалил вспомогательные обработки для тестирования
- Удалил обработку РаботаСОбновлениями
- Удалил обработку РаботаССообщениями
2025-07-07 12:08:09 +03:00
20eeee94ba Рефакторинг по замечаниям Sonarqube 2025-07-02 17:56:55 +03:00
045d4f2e6c Изменения в форме настроек
- Улучшил механизм переключения webhook/long poll
- Изменил расписания оповещения об актуальности
2025-07-02 17:29:25 +03:00
b857323d19 Рефакторинг по замечаниям Sonarqube
- Исправлена обработка транзакции
2025-07-02 11:08:52 +03:00
0ae60ad37a Рефакторинг по замечаниям Sonarqube
- Исправлена обработка транзакции
2025-07-02 11:06:51 +03:00
be339ebdda Добавил подсистему администрирования
- Добавил обработку начального заполнения
- Настройки бота вынес в подсистему администрирования
2025-07-02 10:58:30 +03:00
82272234bf Реализовал выбор способа получения обновлений в настройках
- Получение обновлений теперь выполняется через long polling (если не выбран вебхук)
- Периодическая проверка обновлений с помощью фонового задания
- Настройки позволяют переключаться между long polling и webhook для получения обновлений
2025-07-01 12:53:43 +03:00
69b0fc406a Рефакторинг по замечаниям Sonarqube
- Уменьшил когнитивную сложность процедуры обработки команд бота
- Привел общий модуль регламента к требуемому формату
2025-06-26 18:06:29 +03:00
ddb0c43e97 Расширил функциональность бота новыми командами
- Периодическая проверка актуальности конфигураций
- Автоматическое оповещение о версиях, требующих обновления
- Получение статуса указанной конфигурации
- Включение и выключение уведомлений о версиях, требующих обновления
2025-06-26 17:12:32 +03:00
77535f6a73 Добавил в сборочную линию синхронизацию хранилища с git 2025-06-26 17:59:19 +03:00
5c6596b5e1 Добавил в сборочную линию проверку SonarQube 2025-06-26 17:31:26 +03:00
b5bc707ba8 Переработан механизм работы с файлами-вложениями из сообщений
- Добавил области формы
- Реализована асинхронная работа с файлами
2025-06-25 10:15:29 +03:00
a4388da629 Рефакторинг по замечаниям SonarQube
- Добавил области в модуль общей формы. Исправил прочие замечания SQ.
2025-06-17 10:58:44 +03:00
75 changed files with 2985 additions and 1418 deletions

51
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,51 @@
pipeline {
agent {
label 'windows'
}
environment {
platformVersion = '8.3.26.1581'
}
post {
always {
allure includeProperties: false, jdk: '', results: [[path: 'build/syntax-check/allure']]
junit allowEmptyResults: true, testResults: 'build/syntax-check/junit/junit.xml'
}
success {
echo 'success'
}
failure {
echo 'failure'
}
}
stages {
stage("Синхронизация с хранилищем") {
steps {
script {
scannerHome = tool name: 'sonar-scanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation'
withSonarQubeEnv("Sonar") {
bat "chcp 65001\n SET GITSYNC_V8VERSION=${platformVersion}\n gitsync sync -u ci-bot -p 12345 C:/storage_1c/tg_bot_1c/ src/cf"
}
}
}
}
stage("SonarQube") {
steps {
script {
scannerHome = tool name: 'sonar-scanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation'
withSonarQubeEnv("Sonar") {
bat "chcp 65001\n ${scannerHome}/bin/sonar-scanner -Dsonar.projectVersion=${BUILD_ID}"
}
}
}
}
}
}

View File

@@ -1 +1,48 @@
# Реализация telegram чат-бота средствами платформы 1С
# 1C Release Checker Bot
1C Release Checker Bot — это Telegram-бот, созданный на платформе 1С:Предприятие, который позволяет пользователям получать актуальную информацию о версиях типовых конфигураций 1С. Он предназначен для разработчиков, системных администраторов и ИТ-специалистов, работающих с 1С.
## Возможности
- Автоматическое отслеживание новых версий конфигураций
- Уведомления о появлении актуальных версий конфигураций
- Включение и отключение уведомлений о выходе новых версий конфигураций
- Просмотр списка отслеживаемых конфигураций
- Добавление конкретной конфигурации в список отслеживания
- Удаление конкретной конфигурации из списка отслеживания
- Просмотр статуса конкретной конфигурации (текущая версия -> актуальная версия)
## Используемые технологии
- 1С:Предприятие 8.3
- HTTP-сервисы 1С
- Telegram Bot API
- Интеграция по REST API с сайтом releases.1c.ru
- Проверка качества кода SonarQube
- Сборка проекта Jenkins
- Отчёты Allure
## Установка и настройка
Бот не требует внешнего сервера или промежуточного backend-а. Всё реализовано средствами платформы 1С.
- Клонируйте или скачайте репозиторий: `git clone https://github.com/K4shey/tg_bot_1c.git`
- Создайте новую информационную базу. В режиме конфигуратора выполните команду загрузки конфигурации из файлов.
- Укажите путь к источнику: `tg_bot_1c\src\cf`
- Зарегистрируйте Telegram-бота через @BotFather и получите токен.
- Укажите токен в настройках конфигурации, раздел Администрирование.
- Есть возможность получать обновления в двух режимах: `long polling` и `webhook`. Режим устанавливается в настройках, раздел Администрирование. В случае использования `webhook` требуется публикация базы на веб-сервере.
- В режиме предприятия выполните начальную инициализацию. Раздел Администрирование - Начальное заполнение данных.
## Поддерживаемые команды
| **Команда** | **Описание** |
|:----------------- |:------------------------------------------- |
| **/start** | Приветствие и справка |
| **/subscribe** | Список конфигураций для отслеживания |
| **/add** | Добавить конфигурацию в список отслеживания |
| **/delete** | Удалить конфигурацию из списка отслеживания |
| **/notify_on** | Включить уведомления о новых версиях |
| **/notify_off** | Выключить уведомления о новых версиях |
| **/status** | Вывести информацию о статусе конфигурации |
| **/help** | Вывести список поддерживаемых команд |

View File

@@ -1,17 +0,0 @@
&НаКлиенте
Процедура ПросмотрФайла(Команда)
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(РаботаСФайламиКлиентСервер.ПолучитьРасширениеИмениФайла(Объект.file_name));
ДвоичныеДанные = ПолучитьДвоичныеДанныеНаСервере();
ДвоичныеДанные.Записать(ИмяВременногоФайла);
ЗапуститьПриложениеАсинх(ИмяВременногоФайла);
КонецПроцедуры
&НаСервере
Функция ПолучитьДвоичныеДанныеНаСервере()
Возврат РеквизитФормыВЗначение("Объект").ДанныеФайла.Получить();
КонецФункции

View File

@@ -2,33 +2,33 @@
<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.19">
<Catalog uuid="60022782-c6f7-4159-929b-db83d2828a89">
<InternalInfo>
<xr:GeneratedType name="CatalogObject.ТелеграмДокумент" category="Object">
<xr:GeneratedType name="CatalogObject.ТелеграмДокументы" category="Object">
<xr:TypeId>79fc9728-5c36-4c76-8dd3-304174405d63</xr:TypeId>
<xr:ValueId>cdcdd7f9-03b6-48e9-98eb-e0ba4fa6e7bb</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogRef.ТелеграмДокумент" category="Ref">
<xr:GeneratedType name="CatalogRef.ТелеграмДокументы" category="Ref">
<xr:TypeId>2fac0edc-75c5-4f25-b2bc-a8a1b5499fd3</xr:TypeId>
<xr:ValueId>e857f5ed-7f18-4fde-9155-eb2cf4041d60</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogSelection.ТелеграмДокумент" category="Selection">
<xr:GeneratedType name="CatalogSelection.ТелеграмДокументы" category="Selection">
<xr:TypeId>6ccceb70-b829-4d4e-a3f4-21fb3d9d3147</xr:TypeId>
<xr:ValueId>ac14aa95-fdda-4e82-99a2-4c93f4ddb7cf</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogList.ТелеграмДокумент" category="List">
<xr:GeneratedType name="CatalogList.ТелеграмДокументы" category="List">
<xr:TypeId>cab9b204-3208-4e79-a2d4-217df0367bf3</xr:TypeId>
<xr:ValueId>9e82e379-59ad-4891-b7e5-3831151f7791</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogManager.ТелеграмДокумент" category="Manager">
<xr:GeneratedType name="CatalogManager.ТелеграмДокументы" category="Manager">
<xr:TypeId>9df89e29-979d-4bcd-beb3-c10b2eba3ee5</xr:TypeId>
<xr:ValueId>860e25d0-f5de-4c0b-a880-a42fb7296c13</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ТелеграмДокумент</Name>
<Name>ТелеграмДокументы</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Телеграм документ</v8:content>
<v8:content>Вложенные файлы</v8:content>
</v8:item>
</Synonym>
<Comment/>
@@ -54,13 +54,13 @@
<QuickChoice>false</QuickChoice>
<ChoiceMode>BothWays</ChoiceMode>
<InputByString>
<xr:Field>Catalog.ТелеграмДокумент.StandardAttribute.Description</xr:Field>
<xr:Field>Catalog.ТелеграмДокумент.StandardAttribute.Code</xr:Field>
<xr:Field>Catalog.ТелеграмДокументы.StandardAttribute.Description</xr:Field>
<xr:Field>Catalog.ТелеграмДокументы.StandardAttribute.Code</xr:Field>
</InputByString>
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
<DefaultObjectForm>Catalog.ТелеграмДокумент.Form.ФормаЭлемента</DefaultObjectForm>
<DefaultObjectForm>Catalog.ТелеграмДокументы.Form.ФормаЭлемента</DefaultObjectForm>
<DefaultFolderForm/>
<DefaultListForm/>
<DefaultChoiceForm/>

View File

@@ -3,6 +3,9 @@
<WindowOpeningMode>LockOwnerWindow</WindowOpeningMode>
<UseForFoldersAndItems>Items</UseForFoldersAndItems>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<Events>
<Event name="BeforeClose">ПередЗакрытием</Event>
</Events>
<ChildItems>
<InputField name="Код" id="1">
<DataPath>Объект.Code</DataPath>
@@ -50,36 +53,51 @@
<ContextMenu name="file_sizeКонтекстноеМеню" id="17"/>
<ExtendedTooltip name="file_sizeРасширеннаяПодсказка" id="18"/>
</InputField>
<Button name="ПолучитьФайл" id="19">
<Button name="СохранитьФайл" id="21">
<Type>UsualButton</Type>
<CommandName>Form.Command.ПросмотрФайла</CommandName>
<ExtendedTooltip name="ПолучитьФайлРасширеннаяПодсказка" id="20"/>
<CommandName>Form.Command.СохранитьФайл</CommandName>
<ExtendedTooltip name="СохранитьФайлРасширеннаяПодсказка" id="22"/>
</Button>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:CatalogObject.ТелеграмДокумент</v8:Type>
<v8:Type>cfg:CatalogObject.ТелеграмДокументы</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
<SavedData>true</SavedData>
</Attribute>
</Attributes>
<Commands>
<Command name="ПросмотрФайла" id="1">
<Attribute name="АдресВременногоХранилища" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Просмотр файла</v8:content>
<v8:content>Адрес временного хранилища</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
</Attributes>
<Commands>
<Command name="СохранитьФайл" id="1">
<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:content>Сохранить файл</v8:content>
</v8:item>
</ToolTip>
<Action>ПросмотрФайла</Action>
<Action>СохранениеФайла</Action>
</Command>
</Commands>
</Form>

View File

@@ -0,0 +1,26 @@
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура СохранениеФайла(Команда)
АдресВременногоХранилища = АдресВременногоХранилища();
Если ЭтоАдресВременногоХранилища(АдресВременногоХранилища) Тогда
ПараметрыДиалога = Новый ПараметрыДиалогаПолученияФайлов();
НачатьПолучениеФайлаССервера(АдресВременногоХранилища, СтрШаблон("%1%2", ПараметрыДиалога.Каталог, Объект.file_name));
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция АдресВременногоХранилища()
ДвоичныеДанныеФайла = РеквизитФормыВЗначение("Объект").ДанныеФайла.Получить();
Возврат ПоместитьВоВременноеХранилище(ДвоичныеДанныеФайла, УникальныйИдентификатор);
КонецФункции
#КонецОбласти

View File

@@ -2,33 +2,33 @@
<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.19">
<Catalog uuid="18f1501f-401f-4148-9beb-d450ca3baa64">
<InternalInfo>
<xr:GeneratedType name="CatalogObject.ТелеграмПользователь" category="Object">
<xr:GeneratedType name="CatalogObject.ТелеграмПользователи" category="Object">
<xr:TypeId>771bbf76-6560-490f-bddf-4b57282bb979</xr:TypeId>
<xr:ValueId>e6f77041-f666-4790-b64e-0346b7ba6d24</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogRef.ТелеграмПользователь" category="Ref">
<xr:GeneratedType name="CatalogRef.ТелеграмПользователи" category="Ref">
<xr:TypeId>a3385365-db96-4682-a1f0-05a799ca7d13</xr:TypeId>
<xr:ValueId>aad9e481-4b51-41bd-bbcc-841dfe7d7fea</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogSelection.ТелеграмПользователь" category="Selection">
<xr:GeneratedType name="CatalogSelection.ТелеграмПользователи" category="Selection">
<xr:TypeId>21ffa4af-08a6-43da-bf5c-2a6cec872acb</xr:TypeId>
<xr:ValueId>2d2e8ba9-725d-4052-8709-d150e516b287</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogList.ТелеграмПользователь" category="List">
<xr:GeneratedType name="CatalogList.ТелеграмПользователи" category="List">
<xr:TypeId>57848e3d-1e86-47e4-8af0-6131e4d2cf11</xr:TypeId>
<xr:ValueId>ee125c26-eed1-4fec-9caf-f070ac7e16e7</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogManager.ТелеграмПользователь" category="Manager">
<xr:GeneratedType name="CatalogManager.ТелеграмПользователи" category="Manager">
<xr:TypeId>7e7dd14a-ed48-4c12-a6a3-be34e103c20e</xr:TypeId>
<xr:ValueId>ada062d3-22c5-4398-8454-e271927d264c</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ТелеграмПользователь</Name>
<Name>ТелеграмПользователи</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Телеграм пользователь</v8:content>
<v8:content>Пользователи</v8:content>
</v8:item>
</Synonym>
<Comment/>
@@ -54,8 +54,8 @@
<QuickChoice>false</QuickChoice>
<ChoiceMode>BothWays</ChoiceMode>
<InputByString>
<xr:Field>Catalog.ТелеграмПользователь.StandardAttribute.Description</xr:Field>
<xr:Field>Catalog.ТелеграмПользователь.StandardAttribute.Code</xr:Field>
<xr:Field>Catalog.ТелеграмПользователи.StandardAttribute.Description</xr:Field>
<xr:Field>Catalog.ТелеграмПользователи.StandardAttribute.Code</xr:Field>
</InputByString>
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>

View File

@@ -2,33 +2,33 @@
<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.19">
<Catalog uuid="2a31c1a9-1ae9-42df-a414-339628101fc7">
<InternalInfo>
<xr:GeneratedType name="CatalogObject.ТелеграмСообщение" category="Object">
<xr:GeneratedType name="CatalogObject.ТелеграмСообщения" category="Object">
<xr:TypeId>f2bf8442-369f-4ac3-8d31-0da98dc3c6e7</xr:TypeId>
<xr:ValueId>78de350c-a632-47bf-b8d9-14a931a433bc</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogRef.ТелеграмСообщение" category="Ref">
<xr:GeneratedType name="CatalogRef.ТелеграмСообщения" category="Ref">
<xr:TypeId>c171c60d-856c-4711-9f89-44d38a4ca0b5</xr:TypeId>
<xr:ValueId>df29ebc7-d9a6-40b2-bf81-4b8b55edc9ca</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogSelection.ТелеграмСообщение" category="Selection">
<xr:GeneratedType name="CatalogSelection.ТелеграмСообщения" category="Selection">
<xr:TypeId>202a8ac1-4473-44de-8db2-b844bc3a5de9</xr:TypeId>
<xr:ValueId>3f6bdd2b-54f0-45fc-8b79-9556b41fa48d</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogList.ТелеграмСообщение" category="List">
<xr:GeneratedType name="CatalogList.ТелеграмСообщения" category="List">
<xr:TypeId>e7b590ed-fc6d-4d6a-9724-bc68170e3d5b</xr:TypeId>
<xr:ValueId>b6014560-6014-4b02-9c70-8b513ffb1486</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogManager.ТелеграмСообщение" category="Manager">
<xr:GeneratedType name="CatalogManager.ТелеграмСообщения" category="Manager">
<xr:TypeId>8d1e4c24-ea65-462d-81a4-d5db7c9fef57</xr:TypeId>
<xr:ValueId>def7c3f6-b096-41bf-aafe-07390a894118</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ТелеграмСообщение</Name>
<Name>ТелеграмСообщения</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Телеграм сообщение</v8:content>
<v8:content>Сообщения</v8:content>
</v8:item>
</Synonym>
<Comment/>
@@ -54,8 +54,8 @@
<QuickChoice>false</QuickChoice>
<ChoiceMode>BothWays</ChoiceMode>
<InputByString>
<xr:Field>Catalog.ТелеграмСообщение.StandardAttribute.Description</xr:Field>
<xr:Field>Catalog.ТелеграмСообщение.StandardAttribute.Code</xr:Field>
<xr:Field>Catalog.ТелеграмСообщения.StandardAttribute.Description</xr:Field>
<xr:Field>Catalog.ТелеграмСообщения.StandardAttribute.Code</xr:Field>
</InputByString>
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
@@ -230,7 +230,7 @@
</Synonym>
<Comment/>
<Type>
<v8:Type>cfg:CatalogRef.ТелеграмПользователь</v8:Type>
<v8:Type>cfg:CatalogRef.ТелеграмПользователи</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
@@ -270,7 +270,7 @@
</Synonym>
<Comment/>
<Type>
<v8:Type>cfg:CatalogRef.ТелеграмДокумент</v8:Type>
<v8:Type>cfg:CatalogRef.ТелеграмДокументы</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>

View File

@@ -1,12 +1,12 @@
<?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.19">
<CommonForm uuid="298dc1c3-f89d-4897-874e-bfd600985066">
<CommonForm uuid="92b9a10c-955a-4964-9143-5244b73710af">
<Properties>
<Name>ТелеграмВебХук</Name>
<Name>Настройки</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Телеграм веб хук</v8:content>
<v8:content>Настройки</v8:content>
</v8:item>
</Synonym>
<Comment/>
@@ -16,7 +16,7 @@
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<UseStandardCommands>false</UseStandardCommands>
<UseStandardCommands>true</UseStandardCommands>
<ExtendedPresentation/>
<Explanation/>
</Properties>

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<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.19">
<WindowOpeningMode>LockOwnerWindow</WindowOpeningMode>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<Events>
<Event name="AfterWrite">ПослеЗаписи</Event>
<Event name="BeforeWrite">ПередЗаписью</Event>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
<Event name="BeforeWriteAtServer">ПередЗаписьюНаСервере</Event>
<Event name="OnWriteAtServer">ПриЗаписиНаСервере</Event>
<Event name="FillCheckProcessingAtServer">ОбработкаПроверкиЗаполненияНаСервере</Event>
</Events>
<ChildItems>
<InputField name="ТелеграмТокен" id="1">
<DataPath>НаборКонстант.ТелеграмТокен</DataPath>
<EditMode>EnterOnInput</EditMode>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="ТелеграмТокенКонтекстноеМеню" id="2"/>
<ExtendedTooltip name="ТелеграмТокенРасширеннаяПодсказка" id="3"/>
</InputField>
<InputField name="ТелеграмВебХук" id="4">
<DataPath>НаборКонстант.ТелеграмВебХук</DataPath>
<EditMode>EnterOnInput</EditMode>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="ТелеграмВебХукКонтекстноеМеню" id="5"/>
<ExtendedTooltip name="ТелеграмВебХукРасширеннаяПодсказка" id="6"/>
</InputField>
<CheckBoxField name=огироватьHttpЗапросы" id="7">
<DataPath>НаборКонстант.ЛогироватьHttpЗапросы</DataPath>
<EditMode>EnterOnInput</EditMode>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name=огироватьHttpЗапросыКонтекстноеМеню" id="8"/>
<ExtendedTooltip name=огироватьHttpЗапросыРасширеннаяПодсказка" id="9"/>
</CheckBoxField>
<CheckBoxField name="ТелеграмИспользоватьВебХук" id="10">
<DataPath>НаборКонстант.ТелеграмИспользоватьВебХук</DataPath>
<EditMode>EnterOnInput</EditMode>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ТелеграмИспользоватьВебХукКонтекстноеМеню" id="11"/>
<ExtendedTooltip name="ТелеграмИспользоватьВебХукРасширеннаяПодсказка" id="12"/>
<Events>
<Event name="OnChange">ТелеграмИспользоватьВебХукПриИзменении</Event>
</Events>
</CheckBoxField>
</ChildItems>
<Attributes>
<Attribute name="НаборКонстант" id="1">
<Type>
<v8:Type>cfg:ConstantsSet</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
<SavedData>true</SavedData>
</Attribute>
<Attribute name="КэшЗначений" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Кэш значений</v8:content>
</v8:item>
</Title>
<Type/>
</Attribute>
</Attributes>
</Form>

View File

@@ -0,0 +1,70 @@
#Область ОбработчикиСобытийФормы
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
Если ПараметрыЗаписи.Свойство("Модифицированность") Тогда
ОбновитьИнтерфейс();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
НужноУказатьВебхух = НаборКонстант.ТелеграмИспользоватьВебХук И НЕ ЗначениеЗаполнено(НаборКонстант.ТелеграмВебХук);
Если НужноУказатьВебхух Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не заполнен адрес вебхука";
Сообщение.Поле = "НаборКонстант.ТелеграмВебХук";
Сообщение.Сообщить();
Отказ = Истина;
Возврат;
КонецЕсли;
ПараметрыЗаписи.Вставить("Модифицированность", Модифицированность);
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
КэшЗначений = Новый Структура;
КэшЗначений.Вставить("ТелеграмИспользоватьВебХук", ПолучитьФункциональнуюОпцию("ТелеграмИспользоватьВебХук"));
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если КэшЗначений.ТелеграмИспользоватьВебХук И НЕ ТекущийОбъект.ТелеграмИспользоватьВебХук Тогда
ТелеграмРегламентВызовСервера.ЗапускПроверкиОбновлений();
КонецЕсли;
Если ТекущийОбъект.ТелеграмИспользоватьВебХук Тогда
ТелеграмМетодыВызовСервера.SetWebHook(ТекущийОбъект.ТелеграмВебХук);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТелеграмИспользоватьВебХукПриИзменении(Элемент)
УстановитьЗначениеКонстанты(НаборКонстант.ТелеграмИспользоватьВебХук);
ОбновитьИнтерфейс();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервереБезКонтекста
Процедура УстановитьЗначениеКонстанты(Знач ЗначениеКонстанты)
Константы.ТелеграмИспользоватьВебХук.Установить(ЗначениеКонстанты);
КонецПроцедуры
#КонецОбласти

View File

@@ -1,72 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<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.19">
<WindowOpeningMode>LockOwnerWindow</WindowOpeningMode>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<Events>
<Event name="AfterWrite">ПослеЗаписи</Event>
<Event name="OnOpen">ПриОткрытии</Event>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
</Events>
<ChildItems>
<InputField name="ТелеграмВебХук" id="1">
<DataPath>НаборКонстант.ТелеграмВебХук</DataPath>
<EditMode>EnterOnInput</EditMode>
<AutoMaxWidth>false</AutoMaxWidth>
<MultiLine>true</MultiLine>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="ТелеграмВебХукКонтекстноеМеню" id="2"/>
<ExtendedTooltip name="ТелеграмВебХукРасширеннаяПодсказка" id="3"/>
</InputField>
<Button name="УдалитьВебХук" id="4">
<Type>UsualButton</Type>
<CommandName>Form.Command.УдалитьВебХук</CommandName>
<ExtendedTooltip name="УдалитьВебХукРасширеннаяПодсказка" id="5"/>
</Button>
<Button name="ВывестиИнформациюОВебхуке" id="6">
<Type>UsualButton</Type>
<CommandName>Form.Command.ВывестиИнформациюОВебхуке</CommandName>
<ExtendedTooltip name="ВывестиИнформациюОВебхукеРасширеннаяПодсказка" id="7"/>
</Button>
</ChildItems>
<Attributes>
<Attribute name="НаборКонстант" id="1">
<Type>
<v8:Type>cfg:ConstantsSet</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
<SavedData>true</SavedData>
</Attribute>
</Attributes>
<Commands>
<Command name="УдалитьВебХук" id="1">
<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>
<Command name="ВывестиИнформациюОВебхуке" id="2">
<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

@@ -1,43 +0,0 @@
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
Ответ = ТелеграмМетодыВызовСервера.SetWebHook(ТелеграмВебХук());
ТекстСообщения = СтрШаблон(?(Ответ.Успех, "Успешно: %1","Ошибка: %1"), Ответ.Описание);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ТекстСообщения;
Сообщение.Сообщить();
КонецПроцедуры
&НаСервереБезКонтекста
Функция ТелеграмВебХук()
Возврат Константы.ТелеграмВебХук.Получить();
КонецФункции
&НаКлиенте
Процедура УдалитьВебХук(Команда)
Ответ = ТелеграмМетодыВызовСервера.DeleteWebhook();
ТекстСообщения = СтрШаблон(?(Ответ.Успех, "Успешно: %1","Ошибка: %1"), Ответ.Описание);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ТекстСообщения;
Сообщение.Сообщить();
КонецПроцедуры
&НаКлиенте
Процедура ВывестиИнформациюОВебхуке(Команда)
Ответ = ТелеграмМетодыВызовСервера.GetWebhookInfo();
Если Ответ.Успех И ЗначениеЗаполнено(Ответ.Тело) Тогда
Для каждого ПараметрОтвета из Ответ.Тело["result"] Цикл
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "" + ПараметрОтвета.Ключ + "=" + ПараметрОтвета.Значение;
Сообщение.Сообщить();
КонецЦикла;
КонецЕсли
КонецПроцедуры

View File

@@ -3,32 +3,16 @@
Процедура ОбработкаКомандыБота(Тело) Экспорт
МассивОбновленийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Тело);
МассивОбновленийТелеграм = ТелеграмОбщегоНазначенияВызовСервера.ОбновленияТелеграм(Тело);
Для каждого ОбновлениеТелеграм Из МассивОбновленийТелеграм Цикл
ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(ОбновлениеТелеграм);
ДанныеПользователя = РаботаСОбновлениямиВызовСервера.ПолучитьДанныеПользователя(ОбновлениеТелеграм.ИдЧата);
ТелеграмОбщегоНазначенияВызовСервера.СохранитьСообщениеВБазу(ОбновлениеТелеграм);
Если ОбновлениеТелеграм.Свойство("ИдСообщения") Тогда
Если ОбновлениеТелеграм.Сообщение.text = "/start" Тогда
ОбработатьКомандуСтарт(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/subscribe" Тогда
ОбработатьКомандуПодписки(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/add" Тогда
ОбработатьКомандуДобавитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/delete" Тогда
ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли ДанныеПользователя <> Неопределено И ДанныеПользователя.СтатусДиалога =
Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии Тогда
ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя);
КонецЕсли;
ОбработатьСообщение(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Свойство("ИдКоллбэка") <> Неопределено Тогда
Данные = ОбновлениеТелеграм.ДанныеКоллбэка;
Если СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.AddVersion)) Тогда
ДобавитьКонфигурациюВСписокОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.DeleteVersion)) Тогда
УдалитьКонфигурациюИзСпискаОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
КонецЕсли;
ОбработатьКоллбэк(ОбновлениеТелеграм);
Иначе
Продолжить;
КонецЕсли;
КонецЦикла;
@@ -38,9 +22,54 @@
#Область СлужебныеПроцедурыИФункции
Процедура ОбработатьСообщение(ОбновлениеТелеграм)
ДанныеПользователя = РаботаСОбновлениямиВызовСервера.ДанныеПользователя(ОбновлениеТелеграм.ИдЧата);
КомандаДляОбработки = ОбновлениеТелеграм.Сообщение.text;
Если КомандаДляОбработки = "/start" Тогда
ОбработатьКомандуСтарт(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/subscribe" Тогда
ОбработатьКомандуПодписки(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/add" Тогда
ОбработатьКомандуДобавитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/delete" Тогда
ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/notify_on" Тогда
ОбработатьКомандуВключитьОповещения(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/notify_off" Тогда
ОбработатьКомандуВыключитьОповещения(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/status" Тогда
ОбработатьКомандуСтатусКонфигурации(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/help" Тогда
ОбработатьКомандуВыводаПодсказки(ОбновлениеТелеграм);
ИначеЕсли ДанныеПользователя <> Неопределено И ДанныеПользователя.СтатусДиалога =
Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии Тогда
ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя);
Иначе
ОбработатьНеизвестнуюКоманду(ОбновлениеТелеграм);
КонецЕсли;
КонецПроцедуры
Процедура ОбработатьКоллбэк(ОбновлениеТелеграм)
Данные = ОбновлениеТелеграм.ДанныеКоллбэка;
Если СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.AddVersion)) Тогда
ДобавитьКонфигурациюВСписокОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.DeleteVersion)) Тогда
УдалитьКонфигурациюИзСпискаОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.GetStatus)) Тогда
ПолучитьДанныеСтатусаКонфигурации(Данные, ОбновлениеТелеграм.ИдЧата);
Иначе
ОбработатьНеизвестнуюКоманду(ОбновлениеТелеграм);
КонецЕсли;
КонецПроцедуры
Процедура ДобавитьКонфигурациюВСписокОтслеживания(ТекстСообщения, ИдЧата)
Команда = XMLСтрока(Перечисления.ВидыДанныхКоллбэков.AddVersion);
Команда = XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.AddVersion);
Если НЕ СтрНачинаетсяС(ТекстСообщения, Команда) Тогда
Возврат;
@@ -51,13 +80,12 @@
Конфигурация = РаботаСОбновлениямиВызовСервера.КонфигурацияПоИмени(ИмяКонфигурации);
Если Конфигурация <> Неопределено Тогда
ТекстОтвета = СтрШаблон("Отлично, добавляем в список конфигурацию ""%1"".", Конфигурация.Наименование) + Символы.ПС +
Символы.ВК + Символы.ПС +
"Для корректного отслеживания обновлений нужно ввести версию конфигурации (четыре группы цифр, разделённых точками):" +
Символы.ПС +
"Например: 3.1.30.197";
РаботаСОбновлениямиВызовСервера.УстановитьДанныеПользователя(ИдЧата, Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии,
ИмяКонфигурации);
ТекстОтвета = СтрШаблон("Отлично, добавляем в список конфигурацию ""%1"".", Конфигурация.Наименование) + Символы.ПС
+ Символы.ВК + Символы.ПС
+ "Для корректного отслеживания обновлений введите версию конфигурации (четыре группы цифр, разделённых точками):"
+ Символы.ПС + "Например: 3.1.30.197";
РаботаСОбновлениямиВызовСервера.УстановитьДанныеПользователя(ИдЧата,
Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии, ИмяКонфигурации);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета);
КонецЕсли;
@@ -65,7 +93,7 @@
Процедура УдалитьКонфигурациюИзСпискаОтслеживания(ТекстСообщения, ИдЧата)
Команда = XMLСтрока(Перечисления.ВидыДанныхКоллбэков.DeleteVersion);
Команда = XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.DeleteVersion);
Если НЕ СтрНачинаетсяС(ТекстСообщения, Команда) Тогда
Возврат;
КонецЕсли;
@@ -91,6 +119,55 @@
КонецПроцедуры
Процедура ПолучитьДанныеСтатусаКонфигурации(ТекстСообщения, ИдЧата)
Команда = XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.GetStatus);
Если НЕ СтрНачинаетсяС(ТекстСообщения, Команда) Тогда
Возврат;
КонецЕсли;
ИмяКонфигурации = СокрЛП(Сред(ТекстСообщения, СтрДлина(Команда) + 1));
Конфигурация = РаботаСОбновлениямиВызовСервера.КонфигурацияПоИмени(ИмяКонфигурации);
Если Конфигурация <> Неопределено Тогда
ДанныеКонфигурации = РаботаСОбновлениямиВызовСервера.СтатусКонфигурацииИзПодписки(ИдЧата, Конфигурация);
Если ДанныеКонфигурации = Неопределено Тогда
Возврат;
КонецЕсли;
РезультатСравненияВерсий = РаботаСОбновлениямиВызовСервера.СравнитьВерсииКонфигураций(
ДанныеКонфигурации.ТекущаяВерсия,
ДанныеКонфигурации.АктуальнаяВерсия);
Если РезультатСравненияВерсий <> Неопределено Тогда
Если РезультатСравненияВерсий < 0 Тогда
Диагностика = "Необходимо обновить текущую версию.";
ИначеЕсли РезультатСравненияВерсий > 0 Тогда
Диагностика = "Текущая версия не может быть старше актуальной!";
Иначе
Диагностика = "Обновление текущей версии не требуется.";
КонецЕсли;
Иначе
Диагностика = "";
КонецЕсли;
ТекстОтвета = СтрШаблон("&#8505 %1%2<code>%3</code> &#8594 <code>%4</code>%5%6",
ДанныеКонфигурации.Наименование,
Символы.ПС,
ДанныеКонфигурации.ТекущаяВерсия,
ДанныеКонфигурации.АктуальнаяВерсия,
Символы.ПС,
Диагностика);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML);
Иначе
ТекстОтвета = "По данной конфигурации информация отсутствует.";
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета);
КонецЕсли;
КонецПроцедуры
Процедура ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя)
ИдЧата = ОбновлениеТелеграм.ИдЧата;
@@ -99,7 +176,7 @@
Если НЕ ВерсияКонфигурацииКорректна(Версия) Тогда
ТекстОтвета = СтрШаблон("Вы ввели некорректный номер версии: %1%2Для корректного отслеживания обновлений нужно
|ввести версию конфигурации(четыре группы цифр, разделённых точками):Например: 3.1.30.197.", Версия, Символы.ПС);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,,);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета);
Возврат;
КонецЕсли;
@@ -127,7 +204,8 @@
МенеджерЗаписи.АктуальнаяВерсия = АктуальнаяВерсия;
Попытка
МенеджерЗаписи.Записать();
РаботаСОбновлениямиВызовСервера.УстановитьДанныеПользователя(ИдЧата, Перечисления.ТелеграмСтатусДиалога.НачальноеСостояние, "");
РаботаСОбновлениямиВызовСервера.УстановитьДанныеПользователя(ИдЧата,
Перечисления.ТелеграмСтатусДиалога.НачальноеСостояние, "");
ТекстОтвета = СтрШаблон("Версия: %1 успешно добавлена", Версия);
Исключение
ТекстОтвета = "При сохранении данных возникла ошибка";
@@ -160,18 +238,19 @@
Процедура ОбработатьКомандуСтарт(ОбновлениеТелеграм)
ТекстОтвета = "Привет! Я бот, который поможет тебе следить за обновлениями конфигураций 1С." + Символы.ПС +
Символы.ВК + Символы.ПС +
"Что я умею:" + Символы.ПС +
"- Отслеживать новые релизы" + Символы.ПС +
"- Присылать уведомления о выходе обновлений" + Символы.ПС +
"- Показывать текущую версию" + Символы.ПС +
Символы.ВК + Символы.ПС +
"/subscribe - Список конфигураций для отслеживания &#128276" + Символы.ПС +
"/add - Добавить конфигурацию в список отслеживания &#10133" + Символы.ПС +
"/delete - Удалить конфигурацию из списка отслеживания &#10134";
ТекстОтвета = "&#128075 Привет!"
+ Символы.ПС
+ "Я - бот, который поможет тебе следить за обновлениями конфигураций 1С."
+ Символы.ПС + Символы.ВК + Символы.ПС
+ "Что я умею:" + Символы.ПС
+ "- Отслеживать новые релизы" + Символы.ПС
+ "- Присылать уведомления о выходе обновлений" + Символы.ПС
+ "- Показывать текущую информацию о статусе конфигурации" + Символы.ПС
+ Символы.ПС
+ СписокПоддерживаемыхКоманд();
ТелеграмМетодыВызовСервера.SendMessage(ОбновлениеТелеграм.ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML);
ТелеграмМетодыВызовСервера.SendMessage(ОбновлениеТелеграм.ИдЧата, ТекстОтвета,
Перечисления.ТелеграмРежимРазметки.HTML);
КонецПроцедуры
@@ -184,19 +263,20 @@
ТекстОтвета = "Не удалось получить список конфигураций";
Иначе
Для каждого ПунктМенюПодписки Из СписокКонфигураций Цикл
ТекстОтвета = ТекстОтвета + СтрШаблон("%1 %2%3", ?(ПунктМенюПодписки.Подписка, "✉️", "◼️"),
ПунктМенюПодписки.Наименование,Символы.ПС);
ТекстОтвета = ТекстОтвета + СтрШаблон("%1 %2%3", ?(ПунктМенюПодписки.Подписка, "&#9989", "◼️"),
ПунктМенюПодписки.Наименование, Символы.ПС);
КонецЦикла;
КонецЕсли;
ТелеграмМетодыВызовСервера.SendMessage(ОбновлениеТелеграм.ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML);
ТелеграмМетодыВызовСервера.SendMessage(ОбновлениеТелеграм.ИдЧата, ТекстОтвета,
Перечисления.ТелеграмРежимРазметки.HTML);
КонецПроцедуры
Процедура ОбработатьКомандуДобавитьКонфигурацию(ОбновлениеТелеграм)
ИдЧата = ОбновлениеТелеграм.ИдЧата;
Команда = XMLСтрока(Перечисления.ВидыДанныхКоллбэков.AddVersion);
Команда = XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.AddVersion);
МассивРядов = ТелеграмРаботаСКлавиатурой.МассивРядовСоСпискомКонфигураций(ИдЧата, Команда, Ложь);
Если МассивРядов = Неопределено Тогда
@@ -206,14 +286,14 @@
Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураВстроенная(МассивРядов);
ТекстОтвета = "Выберите нужную конфигурацию для отслеживания обновлений";
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,, Клавиатура);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, , Клавиатура);
КонецПроцедуры
Процедура ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм)
ИдЧата = ОбновлениеТелеграм.ИдЧата;
Команда = XMLстрока(Перечисления.ВидыДанныхКоллбэков.DeleteVersion);
Команда = XMLстрока(Перечисления.ВидыДанныхОбратныхВызовов.DeleteVersion);
МассивРядов = ТелеграмРаботаСКлавиатурой.МассивРядовСоСпискомКонфигураций(ИдЧата, Команда, Истина);
Если МассивРядов = Неопределено Тогда
@@ -224,8 +304,76 @@
Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураВстроенная(МассивРядов);
ТекстОтвета = "Выберите нужную конфигурацию для отмены отслеживания обновлений";
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,, Клавиатура);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, , Клавиатура);
КонецПроцедуры
Процедура ОбработатьКомандуВключитьОповещения(ОбновлениеТелеграм)
УправлениеОповещениями(ОбновлениеТелеграм.ИдЧата, Истина);
КонецПроцедуры
Процедура ОбработатьКомандуВыключитьОповещения(ОбновлениеТелеграм)
УправлениеОповещениями(ОбновлениеТелеграм.ИдЧата, Ложь);
КонецПроцедуры
Процедура ОбработатьКомандуСтатусКонфигурации(ОбновлениеТелеграм)
ИдЧата = ОбновлениеТелеграм.ИдЧата;
Команда = XMLстрока(Перечисления.ВидыДанныхОбратныхВызовов.GetStatus);
МассивРядов = ТелеграмРаботаСКлавиатурой.МассивРядовСоСпискомКонфигураций(ИдЧата, Команда, Истина);
Если МассивРядов = Неопределено Тогда
ТекстОтвета = "Не удалось получить список конфигураций";
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета);
КонецЕсли;
Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураВстроенная(МассивРядов);
ТекстОтвета = "Выберите нужную конфигурацию для получения ее статуса";
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, , Клавиатура);
КонецПроцедуры
Процедура УправлениеОповещениями(ИдЧата, Включить)
ТекстОтвета = РегистрыСведений.УведомленияОНовыхВерсиях.УправлениеОповещениями(ИдЧата, Включить);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML);
КонецПроцедуры
Процедура ОбработатьНеизвестнуюКоманду(ОбновлениеТелеграм)
ТекстОтвета = "Данная команда не поддерживается.";
ТелеграмМетодыВызовСервера.SendMessage(ОбновлениеТелеграм.ИдЧата, ТекстОтвета);
КонецПроцедуры
Процедура ОбработатьКомандуВыводаПодсказки(ОбновлениеТелеграм)
ТекстОтвета = СписокПоддерживаемыхКоманд();
ТелеграмМетодыВызовСервера.SendMessage(ОбновлениеТелеграм.ИдЧата, ТекстОтвета,
Перечисления.ТелеграмРежимРазметки.HTML);
КонецПроцедуры
Функция СписокПоддерживаемыхКоманд()
ТекстПодсказки = "Список поддерживаемых команд:"
+ Символы.ВК + Символы.ПС
+ "/subscribe - Список конфигураций для отслеживания" + Символы.ПС
+ "/add - Добавить конфигурацию в список отслеживания" + Символы.ПС
+ "/delete - Удалить конфигурацию из списка отслеживания" + Символы.ПС
+ "/notify_on - Включить уведомления о новых версиях" + Символы.ПС
+ "/notify_off - Выключить уведомления о новых версиях" + Символы.ПС
+ "/status - Вывести информацию о статусе конфигурации" + Символы.ПС
+ "/help - Вывести список поддерживаемых команд";
Возврат ТекстПодсказки;
КонецФункции
#КонецОбласти

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.19">
<CommonModule uuid="9b0db731-7b36-48ff-b27d-b6946bc97a7b">
<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>true</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

View File

@@ -0,0 +1,63 @@
#Область ПрограммныйИнтерфейс
Процедура ПроверкаНеактуальныхВерсийКонфигураций() Экспорт
РегистрыСведений.ОтслеживаниеВерсийКонфигураций.АктуализироватьВерсииКонфигураций();
СписокДляРассылкиУведомлений = РаботаСОбновлениямиВызовСервера.СписокНеактуальныхКонфигурацийДляУведомления();
Для Каждого ПолучательУведомления Из СписокДляРассылкиУведомлений Цикл
ТекстСообщения = ТекстСообщенияОНеактуальнойВерсии(ПолучательУведомления.Конфигурации);
ТелеграмМетодыВызовСервера.SendMessage(ПолучательУведомления.ИдЧата, ТекстСообщения,
Перечисления.ТелеграмРежимРазметки.HTML);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ТекстСообщенияОНеактуальнойВерсии(КонфигурацииДляВывода)
ТекстСообщения = СтрШаблон("Следующие конфигурации имеют неактуальные версии:%1%2", Символы.ПС, Символы.ПС);
КонфигурацииСНекорректнымиВерсиями = Новый Массив;
Для каждого ДанныеКонфигурации Из КонфигурацииДляВывода Цикл
Если ДанныеКонфигурации.РезультатСравнения = Неопределено Тогда
Продолжить;
ИначеЕсли ДанныеКонфигурации.РезультатСравнения > 0 Тогда
КонфигурацииСНекорректнымиВерсиями.Добавить(ДанныеКонфигурации);
Продолжить;
Иначе
ТекстСообщения = ТекстСообщения + ФорматСтрокиСообщенияОНеактуальнойВерсии("&#128293", ДанныеКонфигурации);
КонецЕсли;
КонецЦикла;
Если КонфигурацииСНекорректнымиВерсиями.Количество() > 0 Тогда
ТекстСообщения = ТекстСообщения + СтрШаблон("Внимание! Текущая конфигурация старше актуальной:%1%2",
Символы.ПС, Символы.ПС);
Для каждого ДанныеКонфигурации Из КонфигурацииСНекорректнымиВерсиями Цикл
ТекстСообщения = ТекстСообщения + ФорматСтрокиСообщенияОНеактуальнойВерсии("&#128683", ДанныеКонфигурации);
КонецЦикла;
КонецЕсли;
Возврат ТекстСообщения;
КонецФункции
Функция ФорматСтрокиСообщенияОНеактуальнойВерсии(Эмодзи, ДанныеКонфигурации)
Возврат СтрШаблон("%1 %2%3 <code>%4</code> &#8594 <code>%5</code>%6%7",
Эмодзи,
ДанныеКонфигурации.КонфигурацияПредставление,
Символы.ПС,
ДанныеКонфигурации.ТекущаяВерсия,
ДанныеКонфигурации.АктуальнаяВерсия,
Символы.ПС,
Символы.ПС);
КонецФункции
#КонецОбласти

View File

@@ -15,12 +15,19 @@
Возврат Истина;
КонецЕсли;
// Если содержит только цифры, то в результате замен должна быть получена пустая строка.
// Проверять при помощи ПустаяСтрока нельзя, так как в исходной строке могут быть пробельные символы.
Возврат СтрДлина(
СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(
СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить( СтрЗаменить(
Значение, "0", ""), "1", ""), "2", ""), "3", ""), "4", ""), "5", ""), "6", ""), "7", ""), "8", ""), "9", "")) = 0;
// Пошаговая очистка строки от всех цифр
БезНулей = СтрЗаменить(Значение, "0", "");
БезЕдиниц = СтрЗаменить(БезНулей, "1", "");
БезДвоек = СтрЗаменить(БезЕдиниц, "2", "");
БезТроек = СтрЗаменить(БезДвоек, "3", "");
БезЧетверок = СтрЗаменить(БезТроек, "4", "");
БезПятерок = СтрЗаменить(БезЧетверок, "5", "");
БезШестерок = СтрЗаменить(БезПятерок, "6", "");
БезСемерок = СтрЗаменить(БезШестерок, "7", "");
БезВосьмерок = СтрЗаменить(БезСемерок, "8", "");
БезДевяток = СтрЗаменить(БезВосьмерок, "9", "");
Возврат СтрДлина(БезДевяток) = 0;
КонецФункции

View File

@@ -13,9 +13,9 @@
ТелоЗапроса.Вставить("platformVersion", "1.1.1.1");
КонецЕсли;
Соединение = Новый HTTPСоединение("update-api.1c.ru",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Соединение = НовоеСоединениеХТТП();
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса, , ТелоЗапроса);
Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса, , ТелоЗапроса);
КонецФункции
@@ -42,9 +42,11 @@
МассивКонфигураций = Новый Массив;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Конфигурация = Новый Структура("Наименование, Имя, ТекущаяВерсия, АктуальнаяВерсия",
ВыборкаДетальныеЗаписи.КонфигурацияНаименование,ВыборкаДетальныеЗаписи.КонфигурацияИмя,
ВыборкаДетальныеЗаписи.ТекущаяВерсия, ВыборкаДетальныеЗаписи.АктуальнаяВерсия);
Конфигурация = Новый Структура;
Конфигурация.Вставить("Наименование", ВыборкаДетальныеЗаписи.КонфигурацияНаименование);
Конфигурация.Вставить("Имя", ВыборкаДетальныеЗаписи.КонфигурацияИмя);
Конфигурация.Вставить("ТекущаяВерсия", ВыборкаДетальныеЗаписи.ТекущаяВерсия);
Конфигурация.Вставить("АктуальнаяВерсия", ВыборкаДетальныеЗаписи.АктуальнаяВерсия);
МассивКонфигураций.Добавить(Конфигурация);
КонецЦикла;
@@ -52,6 +54,39 @@
КонецФункции
Функция СтатусКонфигурацииИзПодписки(ИдЧата, Конфигурация) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОтслеживаниеВерсийКонфигураций.Конфигурация.Наименование КАК Наименование,
| ОтслеживаниеВерсийКонфигураций.ТекущаяВерсия КАК ТекущаяВерсия,
| ОтслеживаниеВерсийКонфигураций.АктуальнаяВерсия КАК АктуальнаяВерсия
|ИЗ
| РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций
|ГДЕ
| ОтслеживаниеВерсийКонфигураций.ИдЧата = &ИдЧата
| И ОтслеживаниеВерсийКонфигураций.Конфигурация = &Конфигурация";
Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
Запрос.УстановитьПараметр("Конфигурация", Конфигурация);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Результат = Новый Структура("Наименование, ТекущаяВерсия, АктуальнаяВерсия",
ВыборкаДетальныеЗаписи.Наименование,
ВыборкаДетальныеЗаписи.ТекущаяВерсия,
ВыборкаДетальныеЗаписи.АктуальнаяВерсия);
Возврат Результат;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция СписокКонфигураций(ИдЧата) Экспорт
Запрос = Новый Запрос;
@@ -97,54 +132,6 @@
КонецФункции
Функция АктуализироватьВерсииКонфигураций()Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОтслеживаниеВерсийКонфигураций.Конфигурация КАК Конфигурация,
| ОтслеживаниеВерсийКонфигураций.ИдЧата КАК ИдЧата,
| ОтслеживаниеВерсийКонфигураций.ТекущаяВерсия КАК ТекущаяВерсия,
| ОтслеживаниеВерсийКонфигураций.АктуальнаяВерсия КАК АктуальнаяВерсия
|ИЗ
| РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
КэшАктуальныхВерсий = РезультатЗапроса.Выгрузить().СкопироватьКолонки();
КэшАктуальныхВерсий.Колонки.Удалить("ИдЧата");
ОбработаноЗаписей = 0;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Конфигурация = ВыборкаДетальныеЗаписи.Конфигурация;
ТекущаяВерсия = ВыборкаДетальныеЗаписи.ТекущаяВерсия;
ИдЧата = ВыборкаДетальныеЗаписи.ИдЧата;
АктуальнаяВерсия = ПолучитьИзКэшаАктуальнуюВерсию(КэшАктуальныхВерсий, Конфигурация, ТекущаяВерсия);
Если АктуальнаяВерсия = Неопределено Тогда
Продолжить;
КонецЕсли;
Если АктуальнаяВерсия = ВыборкаДетальныеЗаписи.АктуальнаяВерсия Тогда
Продолжить;
КонецЕсли;
МенеджерЗаписи = РегистрыСведений.ОтслеживаниеВерсийКонфигураций.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Конфигурация = Конфигурация;
МенеджерЗаписи.ИдЧата = ИдЧата;
МенеджерЗаписи.ТекущаяВерсия = ТекущаяВерсия;
МенеджерЗаписи.АктуальнаяВерсия = АктуальнаяВерсия;
МенеджерЗаписи.Записать();
ОбработаноЗаписей = ОбработаноЗаписей + 1;
КонецЦикла;
Возврат ОбработаноЗаписей;
КонецФункции
Функция КонфигурацияПоИмени(ИмяКонфигурации) Экспорт
Запрос = Новый Запрос;
@@ -175,12 +162,12 @@
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТелеграмПользователь.Ссылка КАК Ссылка,
| ТелеграмПользователь.СтатусДиалога КАК СтатусДиалога
| ТелеграмПользователи.Ссылка КАК Ссылка,
| ТелеграмПользователи.СтатусДиалога КАК СтатусДиалога
|ИЗ
| Справочник.ТелеграмПользователь КАК ТелеграмПользователь
| Справочник.ТелеграмПользователи КАК ТелеграмПользователи
|ГДЕ
| ТелеграмПользователь.id = &ИдЧата";
| ТелеграмПользователи.id = &ИдЧата";
Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
@@ -189,27 +176,27 @@
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
ПользовательОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
Если ПользовательОбъект <> Неопределено Тогда
ПользовательОбъект.СтатусДиалога = НовыйСтатус;
ПользовательОбъект.ДополнительнаяИнформация = ДополнительнаяИнформация;
ПользовательОбъект.Записать();
КонецЕсли;
ПользовательОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
Если ПользовательОбъект <> Неопределено Тогда
ПользовательОбъект.СтатусДиалога = НовыйСтатус;
ПользовательОбъект.ДополнительнаяИнформация = ДополнительнаяИнформация;
ПользовательОбъект.Записать();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция ПолучитьДанныеПользователя(ИдЧата) Экспорт
Функция ДанныеПользователя(ИдЧата) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТелеграмПользователь.СтатусДиалога КАК СтатусДиалога,
| ТелеграмПользователь.ДополнительнаяИнформация КАК ДополнительнаяИнформация
| ТелеграмПользователи.СтатусДиалога КАК СтатусДиалога,
| ТелеграмПользователи.ДополнительнаяИнформация КАК ДополнительнаяИнформация
|ИЗ
| Справочник.ТелеграмПользователь КАК ТелеграмПользователь
| Справочник.ТелеграмПользователи КАК ТелеграмПользователи
|ГДЕ
| ТелеграмПользователь.id = &ИдЧата";
| ТелеграмПользователи.id = &ИдЧата";
Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
@@ -226,6 +213,104 @@
КонецФункции
Функция СписокНеактуальныхКонфигурацийДляУведомления() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УведомленияОНовыхВерсиях.ИдЧата КАК ИдЧата
|ПОМЕСТИТЬ ВТатыПолучающиеУведомления
|ИЗ
| РегистрСведений.УведомленияОНовыхВерсиях КАК УведомленияОНовыхВерсиях
|ГДЕ
| УведомленияОНовыхВерсиях.ОтправлятьУведомления
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОтслеживаниеВерсийКонфигураций.ИдЧата КАК ИдЧата,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ОтслеживаниеВерсийКонфигураций.Конфигурация) КАК КонфигурацияПредставление,
| ОтслеживаниеВерсийКонфигураций.ТекущаяВерсия КАК ТекущаяВерсия,
| ОтслеживаниеВерсийКонфигураций.АктуальнаяВерсия КАК АктуальнаяВерсия
|ИЗ
| РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций
|ГДЕ
| ОтслеживаниеВерсийКонфигураций.ТекущаяВерсия <> ОтслеживаниеВерсийКонфигураций.АктуальнаяВерсия
| И ОтслеживаниеВерсийКонфигураций.ИдЧата В
| (ВЫБРАТЬ
| Т.ИдЧата КАК ИдЧата
| ИЗ
| ВТатыПолучающиеУведомления КАК Т)
|ИТОГИ ПО
| ИдЧата";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаИдЧата = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ДанныеДляУведомлений = Новый Массив;
Пока ВыборкаИдЧата.Следующий() Цикл
ВыборкаДетальныеЗаписи = ВыборкаИдЧата.Выбрать();
ДанныеВерсийКонфигураций = Новый Массив;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ВерсииКонфигурации = Новый Структура;
ВерсииКонфигурации.Вставить("КонфигурацияПредставление", ВыборкаДетальныеЗаписи.КонфигурацияПредставление);
ВерсииКонфигурации.Вставить("ТекущаяВерсия", ВыборкаДетальныеЗаписи.ТекущаяВерсия);
ВерсииКонфигурации.Вставить("АктуальнаяВерсия", ВыборкаДетальныеЗаписи.АктуальнаяВерсия);
РезультатСравнения = СравнитьВерсииКонфигураций(ВыборкаДетальныеЗаписи.ТекущаяВерсия,
ВыборкаДетальныеЗаписи.АктуальнаяВерсия);
ВерсииКонфигурации.Вставить("РезультатСравнения", РезультатСравнения);
ДанныеВерсийКонфигураций.Добавить(ВерсииКонфигурации);
КонецЦикла;
УведомлениеИнформация = Новый Структура("ИдЧата, Конфигурации", ВыборкаИдЧата.ИдЧата, ДанныеВерсийКонфигураций);
ДанныеДляУведомлений.Добавить(УведомлениеИнформация);
КонецЦикла;
Возврат ДанныеДляУведомлений;
КонецФункции
// Возвращает результат сравнения двух версий конфигураций: текущей и актуальной.
//
// Параметры:
// ТекущаяВерсия - Строка - версия, установленная у пользователя
// АктуальнаяВерсия - Строка - версия, полученная с сайта вендора
//
// Возвращаемое значение:
// Отрицательное число - текущая версия меньше актуальной
// Положительное число - актуальная версия меньше текущей
// Ноль - номера версий одинаковые
//
Функция СравнитьВерсииКонфигураций(ТекущаяВерсия, АктуальнаяВерсия) Экспорт
НаборГруппТекущаяВерсия = СтрРазделить(ТекущаяВерсия, ".");
НаборГруппАктуальнаяВерсия = СтрРазделить(АктуальнаяВерсия, ".");
Если НаборГруппТекущаяВерсия.Количество() = 0 ИЛИ НаборГруппАктуальнаяВерсия.Количество() = 0 Тогда
Возврат Неопределено;
КонецЕсли;
МаксИндексТекущаяВерсия = НаборГруппТекущаяВерсия.ВГраница();
МаксИндексАктуальнаяВерсия = НаборГруппАктуальнаяВерсия.ВГраница();
Для Индекс = 0 По Макс(МаксИндексТекущаяВерсия, МаксИндексАктуальнаяВерсия) Цикл
ГруппаТекущаяВерсия = ?(Индекс <= МаксИндексТекущаяВерсия, Число(НаборГруппТекущаяВерсия[Индекс]), 0);
ГруппаАктуальнаяВерсия = ?(Индекс <= МаксИндексАктуальнаяВерсия, Число(НаборГруппАктуальнаяВерсия[Индекс]), 0);
Компаратор = ГруппаТекущаяВерсия - ГруппаАктуальнаяВерсия;
Если Компаратор <> 0 Тогда
Возврат Компаратор;
КонецЕсли;
КонецЦикла;
Возврат 0;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -242,34 +327,10 @@
КонецФункции
Функция ПолучитьИзКэшаАктуальнуюВерсию(Кэш, Конфигурация, ТекущаяВерсия)
СтруктураОтбора = Новый Структура("Конфигурация, ТекущаяВерсия", Конфигурация, ТекущаяВерсия);
МассивСтрок = Кэш.НайтиСтроки(СтруктураОтбора);
Если МассивСтрок.Количество() <> 0 Тогда
Возврат МассивСтрок[0].АктуальнаяВерсия;
КонецЕсли;
Функция НовоеСоединениеХТТП(Таймаут = 0)
Ответ = АктуальнаяВерсияКонфигурации(Конфигурация, ТекущаяВерсия);
Если Ответ.Успех Тогда
АктуальнаяВерсияССервера = Ответ["Тело"]["configurationUpdateResponse"]["configurationVersion"];
Если АктуальнаяВерсияССервера = Неопределено Тогда
//Если запрос выполнен без ошибок и в запросе была передана актуальная версия - с сервера обновлений приходит null.
// Дополнительно проверим версию платформы, если что-то пришло, значит текущая версия существует
// и её назначаем актуальной. Таким образом отличаем некорректную версию текущей конфигурации от совпадения текущей и актуальной.
АктуальнаяВерсияПлатформы = Ответ["Тело"]["platformUpdateResponse"]["platformVersion"];
Если АктуальнаяВерсияПлатформы <> Неопределено Тогда
АктуальнаяВерсияССервера = ТекущаяВерсия;
КонецЕсли;
КонецЕсли;
НоваяСтрока = Кэш.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураОтбора);
НоваяСтрока.АктуальнаяВерсия = АктуальнаяВерсияССервера;
Возврат АктуальнаяВерсияССервера;
КонецЕсли;
Возврат Неопределено;
Возврат Новый HTTPСоединение("update-api.1c.ru", 443, , , , ?(Таймаут > 0, Таймаут, 15),
Новый ЗащищенноеСоединениеOpenSSL);
КонецФункции

View File

@@ -9,14 +9,15 @@
КонецЕсли;
Если РежимРазметки <> Неопределено Тогда
Если РежимРазметки = Перечисления.ТелеграмРежимРазметки.HTML ИЛИ РежимРазметки = Перечисления.ТелеграмРежимРазметки.Markdown Тогда
Если РежимРазметки = Перечисления.ТелеграмРежимРазметки.HTML
ИЛИ РежимРазметки = Перечисления.ТелеграмРежимРазметки.Markdown Тогда
ТелоЗапроса.Вставить("parse_mode", Строка(РежимРазметки));
КонецЕсли;
КонецЕсли;
АдресРесурса = АдресРесурсаПоИмениМетода("sendMessage");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса,, ТелоЗапроса);
Соединение = НовоеСоединениеХТТП();
Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса, , ТелоЗапроса);
КонецФункции
@@ -24,35 +25,38 @@
ПараметрыЗапроса = Новый Структура("url", АдресВебхук);
АдресРесурса = АдресРесурсаПоИмениМетода("setWebhook");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
Соединение = НовоеСоединениеХТТП();
Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
КонецФункции
Функция DeleteWebhook() Экспорт
АдресРесурса = АдресРесурсаПоИмениМетода("deleteWebhook");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
Соединение = НовоеСоединениеХТТП();
Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
КонецФункции
Функция GetWebhookInfo() Экспорт
АдресРесурса = АдресРесурсаПоИмениМетода("getWebhookInfo");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
Соединение = НовоеСоединениеХТТП();
Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
КонецФункции
Функция GetUpdates() Экспорт
Функция GetUpdates(Таймаут = 0) Экспорт
Смещение = ? (ТелеграмОбщегоНазначения.ИдПоследнегоСообщения() = 0,0,
Формат(ТелеграмОбщегоНазначения.ИдПоследнегоСообщения() + 1, "ЧГ=0"));
Смещение = ? (ТелеграмОбщегоНазначенияВызовСервера.ИдПоследнегоСообщения() = 0, 0,
Формат(ТелеграмОбщегоНазначенияВызовСервера.ИдПоследнегоСообщения() + 1, "ЧГ=0"));
ПараметрыЗапроса = Новый Структура("offset", Смещение);
Если Таймаут > 0 Тогда
ПараметрыЗапроса.Вставить("timeout", Таймаут);
КонецЕсли;
АдресРесурса = АдресРесурсаПоИмениМетода("getUpdates");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
Соединение = НовоеСоединениеХТТП(Таймаут);
Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
КонецФункции
@@ -60,16 +64,16 @@
АдресРесурса = АдресРесурсаПоИмениМетода("getFile");
ПараметрыЗапроса = Новый Структура("file_id", ИдФайла);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
Соединение = НовоеСоединениеХТТП();
Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
КонецФункции
Функция GetMe() Экспорт
АдресРесурса = АдресРесурсаПоИмениМетода("getMe");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
Соединение = НовоеСоединениеХТТП();
Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
КонецФункции
@@ -77,10 +81,10 @@
АдресРесурса = АдресРесурсаПоИмениМетода("sendDocument");
Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
ДвоичныеДанныеДокумента = ДвоичныеДанныеДокумента(ИдЧата, ДокументДляОтправки, Надпись, БезУведомления, Разделитель);
ДвоичныеДанныеДокумента = ДвоичныеДанныеДокумента(ИдЧата, ДокументДляОтправки, Разделитель, Надпись, БезУведомления);
ДанныеДокумента = Новый Структура("Разделитель, ДвоичныеДанные", Разделитель, ДвоичныеДанныеДокумента);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса,, ДанныеДокумента);
Соединение = НовоеСоединениеХТТП();
Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса, , ДанныеДокумента);
КонецФункции
@@ -98,8 +102,8 @@
Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
ДвоичныеДанныеФото = ДвоичныеДанныеФайла(ФайлДляОтправки, ИмяФайла, "image/jpeg", "photo", Разделитель);
ДанныеФото = Новый Структура("Разделитель, ДвоичныеДанные", Разделитель, ДвоичныеДанныеФото);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса, ДанныеФото);
Соединение = НовоеСоединениеХТТП();
Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса, ДанныеФото);
КонецФункции
@@ -119,12 +123,13 @@
КонецФункции
Функция ДвоичныеДанныеДокумента(ИдЧата, Документ, Надпись = Неопределено, БезУведомления = Ложь, Разделитель)
Функция ДвоичныеДанныеДокумента(ИдЧата, Документ, Разделитель, Надпись = Неопределено, БезУведомления = Ложь)
//Параметры ИдЧата, Надпись, БезУведомления можно передавать также в параметрах запроса, а не в теле как здесь
// Параметры ИдЧата, Надпись, БезУведомления можно передавать также в параметрах запроса, а не в теле как здесь
// Отправка фото сделана именно так. Все значения, кроме непосредственно фото задаются в параметрах запроса.
Если Документ = Неопределено ИЛИ Не (Документ.Свойство("ДанныеФайла") И ТипЗнч(Документ.ДанныеФайла) = Тип("ДвоичныеДанные")) Тогда
Если Документ = Неопределено ИЛИ Не (Документ.Свойство("ДанныеФайла")
И ТипЗнч(Документ.ДанныеФайла) = Тип("ДвоичныеДанные")) Тогда
ВызватьИсключение "Неверный параметр Документ: ожидается непустой объект, содержащий двоичные данные";
КонецЕсли;
@@ -162,7 +167,8 @@
КонецФункции
Процедура ЗаписатьЭлементаЗапроса(ЗаписьДанных, Разделитель, ИмяПараметра, Значение, ИмяФайла = Неопределено, ТипСодержимого = Неопределено)
Процедура ЗаписатьЭлементаЗапроса(ЗаписьДанных, Разделитель, ИмяПараметра, Значение, ИмяФайла = Неопределено,
ТипСодержимого = Неопределено)
Если Значение = Неопределено Тогда
Возврат;
@@ -170,10 +176,11 @@
ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
Если ИмяФайла <> Неопределено Тогда
ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=%1; filename=%2", ИмяПараметра, ИмяФайла));
СтрокаДляЗаписи = СтрШаблон("Content-Disposition: form-data; name=%1; filename=%2", ИмяПараметра, ИмяФайла);
Иначе
ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=%1", ИмяПараметра));
СтрокаДляЗаписи = СтрШаблон("Content-Disposition: form-data; name=%1", ИмяПараметра);
КонецЕсли;
ЗаписьДанных.ЗаписатьСтроку(СтрокаДляЗаписи);
Если ТипСодержимого <> Неопределено Тогда
ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Type: %1", ТипСодержимого));
@@ -203,4 +210,11 @@
КонецФункции
Функция НовоеСоединениеХТТП(Таймаут = 0)
Возврат Новый HTTPСоединение("api.telegram.org", 443, , , , ?(Таймаут > 0, Таймаут, 15),
Новый ЗащищенноеСоединениеOpenSSL);
КонецФункции
#КонецОбласти

View File

@@ -2,11 +2,11 @@
<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.19">
<CommonModule uuid="4dc6cf4e-e097-4cb0-ba80-0472e448fac0">
<Properties>
<Name>ТелеграмОбщегоНазначения</Name>
<Name>ТелеграмОбщегоНазначенияВызовСервера</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Телеграм общего назначения</v8:content>
<v8:content>Телеграм общего назначения вызов сервера</v8:content>
</v8:item>
</Synonym>
<Comment/>

View File

@@ -5,9 +5,9 @@
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(МАКСИМУМ(ТелеграмСообщения.ИдСообщения), 0) КАК ИдСообщения
| ЕСТЬNULL(МАКСИМУМ(ТелеграмИсторияСообщений.ИдСообщения), 0) КАК ИдСообщения
|ИЗ
| РегистрСведений.ТелеграмСообщения КАК ТелеграмСообщения";
| РегистрСведений.ТелеграмИсторияСообщений КАК ТелеграмИсторияСообщений";
РезультатЗапроса = Запрос.Выполнить();
@@ -21,34 +21,12 @@
КонецФункции
// Получить обновления, пришедшие от вебхука и сохранить в базу
Процедура ОбработатьИСохранитьОбновленияТелеграм(ТелоЗапроса) Экспорт
ДанныеОбновления = HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоЗапроса);
Если ДанныеОбновления = Неопределено Тогда
Возврат;
КонецЕсли;
Если ЭтоМассивОбновлений(ДанныеОбновления) Тогда
МассивОбновлений = ДанныеОбновления["result"];
Для каждого Обновление Из МассивОбновлений Цикл
ПараметрыСообщения = СтруктураСообщенияТелеграм(Обновление);
СохранитьСообщениеВБазу(ПараметрыСообщения);
КонецЦикла;
ИначеЕсли ЭтоОдиночноеОбновление(ДанныеОбновления) Тогда
ПараметрыСообщения = СтруктураСообщенияТелеграм(ДанныеОбновления);
СохранитьСообщениеВБазу(ПараметрыСообщения);
КонецЕсли;
КонецПроцедуры
Функция ОбновленияТелеграм(ТелоЗапроса) Экспорт
Если ТипЗнч(ТелоЗапроса) = Тип("Соответствие") Тогда
ДанныеОбновления = ТелоЗапроса;
ИначеЕсли ТипЗнч(ТелоЗапроса) = Тип("Строка") Тогда
ДанныеОбновления = HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоЗапроса);
ДанныеОбновления = ХТТПОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоЗапроса);
Иначе
Возврат Неопределено;
КонецЕсли;
@@ -62,22 +40,190 @@
Если ЭтоМассивОбновлений(ДанныеОбновления) Тогда
МассивОбновлений = ДанныеОбновления["result"];
Для каждого Обновление Из МассивОбновлений Цикл
ПараметрыСообщения = СтруктураСообщенияТелеграм(Обновление);
МассивСообщенийТелеграм.Добавить(ПараметрыСообщения)
ПараметрыСообщения = ПараметрыСообщения(Обновление);
Если ПараметрыСообщения <> Неопределено Тогда
МассивСообщенийТелеграм.Добавить(ПараметрыСообщения);
КонецЕсли;
КонецЦикла;
ИначеЕсли ЭтоОдиночноеОбновление(ДанныеОбновления) Тогда
Если ДанныеОбновления.Получить("message") <> Неопределено Тогда
ПараметрыСообщения = СтруктураСообщенияТелеграм(ДанныеОбновления);
ИначеЕсли ДанныеОбновления.Получить("callback_query") <> Неопределено Тогда
ПараметрыСообщения = СтруктураКоллбэкЗапроса(ДанныеОбновления);
ПараметрыСообщения = ПараметрыСообщения(ДанныеОбновления);
Если ПараметрыСообщения <> Неопределено Тогда
МассивСообщенийТелеграм.Добавить(ПараметрыСообщения);
КонецЕсли;
МассивСообщенийТелеграм.Добавить(ПараметрыСообщения)
Иначе
Возврат Неопределено;
КонецЕсли;
Возврат МассивСообщенийТелеграм;
КонецФункции
Процедура СохранитьСообщениеВБазу(СтруктураСообщения) Экспорт
МенеджерЗаписи = РегистрыСведений.ТелеграмИсторияСообщений.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураСообщения);
Если СтруктураСообщения.Свойство("ИдКоллбэкЗапроса") Тогда
МенеджерЗаписи.ИдСообщения = СтруктураСообщения.ИдКоллбэкЗапроса;
КонецЕсли;
МенеджерЗаписи.Записать();
КонецПроцедуры
Функция ПолучитьФайлССервераТелеграм(ПутьКФайлуНаСервере) Экспорт
АдресРесурса = СтрШаблон("file/bot%1/%2", ТелеграмПовторноеИспользование.ТелеграмТокен(), ПутьКФайлуНаСервере);
Соединение = Новый HTTPСоединение("api.telegram.org", 443, , , , 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, , Истина);
КонецФункции
Функция ДанныеДокументаПоИд(ИдДокумента) Экспорт
Ответ = ТелеграмМетодыВызовСервера.GetFile(ИдДокумента);
Если Ответ.Успех И Ответ.Тело.Получить("result") <> Неопределено Тогда
Возврат ПолучитьФайлССервераТелеграм(Ответ.Тело["result"]["file_path"]);
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ЭтоМассивОбновлений(СоответствиеОбновления)
Результат = СоответствиеОбновления.Получить("ok");
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
Возврат Ложь;
КонецФункции
Функция ЭтоОдиночноеОбновление(СоответствиеОбновления)
ИдОбновления = СоответствиеОбновления.Получить("update_id");
Сообщение = СоответствиеОбновления.Получить("message");
КоллбэкЗапрос = СоответствиеОбновления.Получить("callback_query");
Если ИдОбновления <> Неопределено И (Сообщение <> Неопределено ИЛИ КоллбэкЗапрос <> Неопределено) Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
Функция АвторСообщения(СоответствиеОт)
Если СоответствиеОт.Получить("id") = Неопределено Тогда
Возврат Справочники.ТелеграмПользователи.НеОпределен;
КонецЕсли;
Автор = Справочники.ТелеграмПользователи.НайтиПоРеквизиту("id", СоответствиеОт["id"]);
Если Не ЗначениеЗаполнено(Автор) Тогда
НовыйПользователь = Справочники.ТелеграмПользователи.СоздатьЭлемент();
НовыйПользователь.Наименование = СоответствиеОт["first_name"];
НовыйПользователь.id = СоответствиеОт["id"];
НовыйПользователь.last_name = СоответствиеОт["last_name"];
НовыйПользователь.username = СоответствиеОт["username"];
НовыйПользователь.Записать();
Автор = НовыйПользователь.Ссылка;
КонецЕсли;
Возврат Автор;
КонецФункции
Функция ТелеграмСообщение(СообщениеДляОбработки, Автор)
ИдСообщения = СообщениеДляОбработки.Получить("message_id");
Если ИдСообщения = Неопределено Тогда
Возврат Справочники.ТелеграмСообщения.ПустаяСсылка();
КонецЕсли;
ИтоговоеСообщение = Справочники.ТелеграмСообщения.НайтиПоРеквизиту("id", ИдСообщения);
Если НЕ ЗначениеЗаполнено(ИтоговоеСообщение) Тогда
НовоеСообщение = Справочники.ТелеграмСообщения.СоздатьЭлемент();
НовоеСообщение.Наименование = "Сообщение № " + ИдСообщения + " от " + Автор;
НовоеСообщение.id = ИдСообщения;
НовоеСообщение.Автор = Автор;
Если СообщениеДляОбработки.Получить("text") <> Неопределено Тогда
НовоеСообщение.text = СообщениеДляОбработки["text"];
КонецЕсли;
Если СообщениеДляОбработки.Получить("document") <> Неопределено Тогда
НовоеСообщение.document = СформироватьДокумент(СообщениеДляОбработки["document"]);
КонецЕсли;
НовоеСообщение.date = TimeStampToDate(СообщениеДляОбработки["date"]);
НовоеСообщение.Записать();
ИтоговоеСообщение = НовоеСообщение.Ссылка;
КонецЕсли;
Возврат ИтоговоеСообщение;
КонецФункции
Функция СформироватьДокумент(СоответствиеДокумент)
ИдДокумента = СоответствиеДокумент.Получить("file_unique_id");
Если ИдДокумента = Неопределено Тогда
Возврат Справочники.ТелеграмДокументы.ПустаяСсылка();
КонецЕсли;
ИтоговыйДокумент = Справочники.ТелеграмДокументы.НайтиПоРеквизиту("id", ИдДокумента);
Если НЕ ЗначениеЗаполнено(ИтоговыйДокумент) Тогда
НовыйДокумент = Справочники.ТелеграмДокументы.СоздатьЭлемент();
НовыйДокумент.Наименование = СоответствиеДокумент["file_name"];
НовыйДокумент.id = ИдДокумента;
НовыйДокумент.file_name = СоответствиеДокумент["file_name"];
НовыйДокумент.mime_type = СоответствиеДокумент["mime_type"];
НовыйДокумент.file_size = СоответствиеДокумент["file_size"];
ДанныеДокумента = ДанныеДокументаПоИд(СоответствиеДокумент["file_id"]);
Если ДанныеДокумента <> Неопределено Тогда
НовыйДокумент.ДанныеФайла = Новый ХранилищеЗначения(ДанныеДокумента);
КонецЕсли;
НовыйДокумент.Записать();
ИтоговыйДокумент = НовыйДокумент.Ссылка;
КонецЕсли;
Возврат ИтоговыйДокумент;
КонецФункции
Функция TimeStampToDate(ЮниксТайм)
Возврат Дата(1970, 1, 1, 1, 0, 0) + СмещениеСтандартногоВремени(ЧасовойПоясСеанса()) + ЮниксТайм;
КонецФункции
Функция ПараметрыСообщения(ДанныеОбновления)
Если ДанныеОбновления.Получить("message") <> Неопределено Тогда
Результат = СтруктураСообщенияТелеграм(ДанныеОбновления);
ИначеЕсли ДанныеОбновления.Получить("callback_query") <> Неопределено Тогда
Результат = СтруктураКоллбэкЗапроса(ДанныеОбновления);
Иначе
Результат = Неопределено;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция СтруктураСообщенияТелеграм(Обновление)
ДанныеСообщения = Обновление["message"];
@@ -127,152 +273,4 @@
КонецФункции
Процедура СохранитьСообщениеВБазу(СтруктураСообщения) Экспорт
МенеджерЗаписи = РегистрыСведений.ТелеграмСообщения.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураСообщения);
МенеджерЗаписи.Записать();
КонецПроцедуры
Функция ПолучитьФайлССервераТелеграм(ПутьКФайлуНаСервере) Экспорт
АдресРесурса = СтрШаблон("file/bot%1/%2", ТелеграмПовторноеИспользование.ТелеграмТокен(), ПутьКФайлуНаСервере);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса,, Истина);
КонецФункции
Функция ДанныеДокументаПоИд(ИдДокумента) Экспорт
Ответ = ТелеграмМетодыВызовСервера.GetFile(ИдДокумента);
Если Ответ.Успех И Ответ.Тело.Получить("result") <> Неопределено Тогда
Возврат ПолучитьФайлССервераТелеграм(Ответ.Тело["result"]["file_path"]);
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ЭтоМассивОбновлений(СоответствиеОбновления)
Результат = СоответствиеОбновления.Получить("ok");
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
Возврат Ложь;
КонецФункции
Функция ЭтоОдиночноеОбновление(СоответствиеОбновления)
ИдОбновления = СоответствиеОбновления.Получить("update_id");
Сообщение = СоответствиеОбновления.Получить("message");
КоллбэкЗапрос = СоответствиеОбновления.Получить("callback_query");
Если ИдОбновления <> Неопределено И (Сообщение <> Неопределено ИЛИ КоллбэкЗапрос <> Неопределено) Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
Функция АвторСообщения(СоответствиеОт)
Если СоответствиеОт.Получить("id") = Неопределено Тогда
Возврат Справочники.ТелеграмПользователь.НеОпределен;
КонецЕсли;
Автор = Справочники.ТелеграмПользователь.НайтиПоРеквизиту("id", СоответствиеОт["id"]);
Если Не ЗначениеЗаполнено(Автор) Тогда
НовыйПользователь = Справочники.ТелеграмПользователь.СоздатьЭлемент();
НовыйПользователь.Наименование = СоответствиеОт["first_name"];
НовыйПользователь.id = СоответствиеОт["id"];
НовыйПользователь.last_name = СоответствиеОт["last_name"];
НовыйПользователь.username = СоответствиеОт["username"];
НовыйПользователь.Записать();
Автор = НовыйПользователь.Ссылка;
КонецЕсли;
Возврат Автор;
КонецФункции
Функция ТелеграмСообщение(СообщениеДляОбработки, Автор)
ИдСообщения = СообщениеДляОбработки.Получить("message_id");
Если ИдСообщения = Неопределено Тогда
Возврат Справочники.ТелеграмСообщение.ПустаяСсылка();
КонецЕсли;
ИтоговоеСообщение = Справочники.ТелеграмСообщение.НайтиПоРеквизиту("id", ИдСообщения);
Если НЕ ЗначениеЗаполнено(ИтоговоеСообщение) Тогда
НовоеСообщение = Справочники.ТелеграмСообщение.СоздатьЭлемент();
НовоеСообщение.Наименование = "Сообщение № " + ИдСообщения + " от " + Автор;
НовоеСообщение.id = ИдСообщения;
НовоеСообщение.Автор = Автор;
Если СообщениеДляОбработки.Получить("text") <> Неопределено Тогда
НовоеСообщение.text = СообщениеДляОбработки["text"];
КонецЕсли;
Если СообщениеДляОбработки.Получить("document") <> Неопределено Тогда
НовоеСообщение.document = СформироватьДокумент(СообщениеДляОбработки["document"]);
КонецЕсли;
НовоеСообщение.date = TimeStampToDate(СообщениеДляОбработки["date"]);
НовоеСообщение.Записать();
ИтоговоеСообщение = НовоеСообщение.Ссылка;
КонецЕсли;
Возврат ИтоговоеСообщение;
КонецФункции
Функция СформироватьДокумент(СоответствиеДокумент)
ИдДокумента = СоответствиеДокумент.Получить("file_unique_id");
Если ИдДокумента = Неопределено Тогда
Возврат Справочники.ТелеграмДокумент.ПустаяСсылка();
КонецЕсли;
ИтоговыйДокумент = Справочники.ТелеграмДокумент.НайтиПоРеквизиту("id", ИдДокумента);
Если НЕ ЗначениеЗаполнено(ИтоговыйДокумент) Тогда
НовыйДокумент = Справочники.ТелеграмДокумент.СоздатьЭлемент();
НовыйДокумент.Наименование = СоответствиеДокумент["file_name"];
НовыйДокумент.id = ИдДокумента;
НовыйДокумент.file_name = СоответствиеДокумент["file_name"];
НовыйДокумент.mime_type = СоответствиеДокумент["mime_type"];
НовыйДокумент.file_size = СоответствиеДокумент["file_size"];
ДанныеДокумента = ДанныеДокументаПоИд(СоответствиеДокумент["file_id"]);
Если ДанныеДокумента <> Неопределено Тогда
НовыйДокумент.ДанныеФайла = Новый ХранилищеЗначения(ДанныеДокумента);
КонецЕсли;
НовыйДокумент.Записать();
ИтоговыйДокумент = НовыйДокумент.Ссылка;
КонецЕсли;
Возврат ИтоговыйДокумент;
КонецФункции
Функция TimeStampToDate(ЮниксТайм)
Возврат Дата(1970,1,1,1,0,0) + СмещениеСтандартногоВремени(ЧасовойПоясСеанса()) + ЮниксТайм;
КонецФункции
#КонецОбласти

View File

@@ -1,4 +1,4 @@
#Область ПрограммныйИнтерфейс
#Область СлужебныйПрограммныйИнтерфейс
Функция ТелеграмТокен() Экспорт
@@ -6,7 +6,7 @@
КонецФункции
Функция ЛогироватьHttpЗапросы() Экспорт
Функция ЛогироватьХТТПЗапросы() Экспорт
Возврат Константы.ЛогироватьHttpЗапросы.Получить();

View File

@@ -79,17 +79,12 @@
Возврат Неопределено;
Иначе
МассивРядов = Новый Массив;
Для каждого ПунктМенюПодписки Из СписокКонфигураций Цикл
Если Подписка = Неопределено
ИЛИ (Подписка И ПунктМенюПодписки.Подписка)
ИЛИ (НЕ Подписка И НЕ ПунктМенюПодписки.Подписка) Тогда
Для каждого Конфигурация Из СписокКонфигураций Цикл
Если НужноДобавитьКнопкуСКонфигурацией(Подписка, Конфигурация) Тогда
МассивКнопок = Новый Массив;
МассивКнопок.Добавить(ТелеграмРаботаСКлавиатурой.КнопкаКлавиатурыВстроенной(
ПунктМенюПодписки.Наименование
,
,
СтрШаблон("%1 %2", Команда, ПунктМенюПодписки.Имя)
));
КнопкаКлавиатурыВстроенной = ТелеграмРаботаСКлавиатурой.КнопкаКлавиатурыВстроенной(Конфигурация.Наименование, ,
СтрШаблон("%1 %2", Команда, Конфигурация.Имя));
МассивКнопок.Добавить(КнопкаКлавиатурыВстроенной);
МассивРядов.Добавить(МассивКнопок);
КонецЕсли;
КонецЦикла;
@@ -100,4 +95,13 @@
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция НужноДобавитьКнопкуСКонфигурацией(Подписка, Конфигурация)
Возврат Подписка = Неопределено ИЛИ (Подписка И Конфигурация.Подписка) ИЛИ (НЕ Подписка И НЕ Конфигурация.Подписка);
КонецФункции
#КонецОбласти

View File

@@ -1,22 +1,19 @@
#Область ПрограммныйИнтерфейс
// Получить обновления и обработать их по расписанию
Процедура ПроверкаОбновленийПоРасписанию() Экспорт
// Проверка установлен ли вебхук
Ответ = HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелеграмМетодыВызовСервера.GetWebhookInfo());
Если Ответ["ok"] И ЗначениеЗаполнено(Ответ["result"]["url"]) Тогда
Возврат;
КонецЕсли;
ТелеграмМетодыВызовСервера.DeleteWebhook();
Ответ = ТелеграмМетодыВызовСервера.GetUpdates();
Если Ответ <> Неопределено Тогда
МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ);
Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл
ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм);
ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text)
КонецЦикла;
КонецЕсли;
Пока Истина Цикл
Если Константы.ТелеграмИспользоватьВебХук.Получить() Тогда
Прервать;
КонецЕсли;
Ответ = ТелеграмМетодыВызовСервера.GetUpdates(30);
Если Ответ.Успех Тогда
БотОбщегоНазначения.ОбработкаКомандыБота(Ответ.Тело);
КонецЕсли;
КонецЦикла;
КонецПроцедуры

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.19">
<CommonModule uuid="0b8f8a9c-1ef3-45e8-b342-e6956990e2af">
<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>false</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>true</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

View File

@@ -0,0 +1,16 @@
#Область ПрограммныйИнтерфейс
Процедура ЗапускПроверкиОбновлений() Экспорт
Если НЕ ПолучитьФункциональнуюОпцию("ТелеграмИспользоватьВебХук") Тогда
Попытка
ФоновыеЗадания.Выполнить("ТелеграмРегламент.ПроверкаОбновленийПоРасписанию", ,"GetTelegramUpdatesLongPolling");
Исключение
ЗаписьЖурналаРегистрации("Телеграм-бот.Ошибка", УровеньЖурналаРегистрации.Ошибка, , ,
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЕсли;
КонецПроцедуры
#КонецОбласти

View File

@@ -2,7 +2,7 @@
<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.19">
<CommonModule uuid="efcaabde-708f-4990-928d-8c4c280e6352">
<Properties>
<Name>HttpОбщегоНазначенияВызовСервера</Name>
<Name>ХТТПОбщегоНазначенияВызовСервера</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>

View File

@@ -14,12 +14,12 @@
КонецЕсли;
Запрос = Новый HTTPЗапрос(АдресРесурса);
Запрос.Заголовки.Вставить("Content-Type","application/json");
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Ответ = Соединение.Получить(Запрос);
ТелоОтветаКакСтрока = Ответ.ПолучитьТелоКакСтроку();
РезультатЗапроса.Тело = ?(ДвоичныеДанные, Ответ.ПолучитьТелоКакДвоичныеДанные(),
HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоОтветаКакСтрока));
ХТТПОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоОтветаКакСтрока));
Если НЕ ДвоичныеДанные И РезультатЗапроса.Тело.Получить("description") <> Неопределено Тогда
РезультатЗапроса.Описание = РезультатЗапроса.Тело["description"];
@@ -29,18 +29,19 @@
Если КодСостояния = 200 Тогда
РезультатЗапроса.Успех = Истина;
Иначе
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка,,,
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка, , ,
СтрШаблон("Ошибка выполнения HTTP-запроса. Код состояния = %1. Описание:%2", КодСостояния,
РезультатЗапроса.Описание));
КонецЕсли;
Если ТелеграмПовторноеИспользование.ЛогироватьHttpЗапросы() Тогда
ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодHTTPЗапроса.GET, ТелоОтветаКакСтрока, КодСостояния);
Если ТелеграмПовторноеИспользование.ЛогироватьХТТПЗапросы() Тогда
ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодХТТПЗапроса.GET, ТелоОтветаКакСтрока, КодСостояния);
КонецЕсли;
Исключение
РезультатЗапроса.Успех = Ложь;
РезультатЗапроса.Описание = "Исключение при выполнении HTTP-запроса: " + ОписаниеОшибки();
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка,,, РезультатЗапроса.Описание);
РезультатЗапроса.Описание = "Исключение при выполнении HTTP-запроса: "
+ ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка, , , РезультатЗапроса.Описание);
КонецПопытки;
Возврат РезультатЗапроса;
@@ -66,38 +67,40 @@
Запрос.Заголовки.Вставить("Content-Length", Формат(Данные.ДвоичныеДанные.Размер(), "ЧН=0; ЧГ="));
Запрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Данные.Разделитель);
Иначе
Запрос.Заголовки.Вставить("Content-Type","application/json");
Запрос.УстановитьТелоИзСтроки(HttpОбщегоНазначенияВызовСервера.ОбъектВСтрокуJson(Данные));
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Запрос.УстановитьТелоИзСтроки(ХТТПОбщегоНазначенияВызовСервера.ОбъектВСтрокуJson(Данные));
КонецЕсли;
Иначе
Запрос.Заголовки.Вставить("Content-Type","application/json");
Запрос.Заголовки.Вставить("Content-Type", "application/json");
КонецЕсли;
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
ТелоОтветаКакСтрока = Ответ.ПолучитьТелоКакСтроку();
ТелоДляОтвета = HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоОтветаКакСтрока);
ТелоДляОтвета = ХТТПОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоОтветаКакСтрока);
Если ТелоДляОтвета <> Неопределено Тогда
РезультатЗапроса.Тело = ТелоДляОтвета;
РезультатЗапроса.Описание = ?(ТелоДляОтвета.Получить("description") <> Неопределено, ТелоДляОтвета["description"], "");
РезультатЗапроса.Описание = ?(ТелоДляОтвета.Получить("description") <> Неопределено,
ТелоДляОтвета["description"], "");
КонецЕсли;
КодСостояния = Ответ.КодСостояния;
Если КодСостояния = 200 Тогда
РезультатЗапроса.Успех = Истина;
Иначе
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка,,,
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка, , ,
СтрШаблон("Ошибка выполнения HTTP-запроса. Код состояния = %1. Описание:%2", КодСостояния,
РезультатЗапроса.Описание));
КонецЕсли;
Если ТелеграмПовторноеИспользование.ЛогироватьHttpЗапросы() Тогда
ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодHTTPЗапроса.POST, ТелоОтветаКакСтрока, КодСостояния);
Если ТелеграмПовторноеИспользование.ЛогироватьХТТПЗапросы() Тогда
ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодХТТПЗапроса.POST, ТелоОтветаКакСтрока, КодСостояния);
КонецЕсли;
Исключение
РезультатЗапроса.Успех = Ложь;
РезультатЗапроса.Описание = "Исключение при выполнении HTTP-запроса: " + ОписаниеОшибки();
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка,,, РезультатЗапроса.Описание);
РезультатЗапроса.Описание = "Исключение при выполнении HTTP-запроса: "
+ ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка, , , РезультатЗапроса.Описание);
КонецПопытки;
Возврат РезультатЗапроса;
@@ -117,8 +120,8 @@
ЧтениеJSON.Закрыть();
Возврат ИтоговоеСоответствие;
Исключение
Ошибка = ОписаниеОшибки();
ЗаписьЖурналаРегистрации("Ошибка конвертации из JSON в объект", УровеньЖурналаРегистрации.Ошибка,,,Ошибка);
ЗаписьЖурналаРегистрации("Ошибка конвертации из JSON в объект", УровеньЖурналаРегистрации.Ошибка, , ,
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Возврат Неопределено;
@@ -131,7 +134,6 @@
Возврат "";
КонецЕсли;
ЗаписьJSON = Новый ЗаписьJSON;
ПараметрыЗаписи = Новый ПараметрыЗаписиJSON(, Символы.Таб);
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписи);
@@ -139,8 +141,8 @@
ЗаписатьJSON(ЗаписьJSON, Объект);
Возврат ЗаписьJSON.Закрыть();
Исключение
Ошибка = ОписаниеОшибки();
ЗаписьЖурналаРегистрации("Ошибка конвертации объекта в JSON", УровеньЖурналаРегистрации.Ошибка,,,Ошибка);
ЗаписьЖурналаРегистрации("Ошибка конвертации объекта в JSON", УровеньЖурналаРегистрации.Ошибка, , ,
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Возврат "";
@@ -164,23 +166,23 @@
ИнформацияОбОшибке = ИнформацияОбОшибке();
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка, , ,
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
СтруктураОтвета = Новый Структура("result, description", "error", КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
СтруктураОтвета = Новый Структура("result, description", "error",
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
Возврат ОтветJson(СтруктураОтвета, 500);
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ОтветJson(Объект, КодСостояния)
Ответ = Новый HTTPСервисОтвет(КодСостояния);
Ответ.Заголовки.Вставить("Content-Type","application/json");
Ответ.Заголовки.Вставить("Content-Type", "application/json");
Ответ.УстановитьТелоИзСтроки(ОбъектВСтрокуJson(Объект));
Возврат Ответ;
@@ -209,12 +211,12 @@
АдресРесурса = СтрЗаменить(АдресРесурса, Константы.ТелеграмТокен.Получить(), "#token#");
Лог = Документы.ЛогHttpЗапроса.СоздатьДокумент();
Лог = Документы.ЛогиХТТПЗапросов.СоздатьДокумент();
Лог.Дата = ТекущаяДатаСеанса();
Лог.HTTPЗапрос = АдресРесурса;
Лог.Запрос = АдресРесурса;
Лог.Метод = Метод;
Лог.КодСостояния = КодСостояния;
Лог.HTTPОтвет = HttpОбщегоНазначенияВызовСервера.ФорматированныйJson(ТелоОтветаКакСтрока);
Лог.Ответ = ХТТПОбщегоНазначенияВызовСервера.ФорматированныйJson(ТелоОтветаКакСтрока);
Лог.Записать();
КонецПроцедуры

View File

@@ -247,36 +247,45 @@
<Language>Русский</Language>
<Subsystem>ТелеграмБот</Subsystem>
<Subsystem>Обновления</Subsystem>
<Subsystem>Администрирование</Subsystem>
<CommonPicture>КартинкаБот</CommonPicture>
<CommonModule>HttpОбщегоНазначенияВызовСервера</CommonModule>
<Role>ПолныеПрава</Role>
<Role>АдминистраторСистемы</Role>
<Role>ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</Role>
<CommonModule>ХТТПОбщегоНазначенияВызовСервера</CommonModule>
<CommonModule>БотОбщегоНазначения</CommonModule>
<CommonModule>ОбновленияРегламент</CommonModule>
<CommonModule>ОбщегоНазначенияКлиентСервер</CommonModule>
<CommonModule>РаботаСОбновлениямиВызовСервера</CommonModule>
<CommonModule>РаботаСФайламиКлиентСервер</CommonModule>
<CommonModule>ТелеграмМетодыВызовСервера</CommonModule>
<CommonModule>ТелеграмОбщегоНазначения</CommonModule>
<CommonModule>ТелеграмОбщегоНазначенияВызовСервера</CommonModule>
<CommonModule>ТелеграмПовторноеИспользование</CommonModule>
<CommonModule>ТелеграмРаботаСКлавиатурой</CommonModule>
<CommonModule>ТелеграмРегламент</CommonModule>
<CommonModule>БотОбщегоНазначения</CommonModule>
<CommonModule>ОбщегоНазначенияКлиентСервер</CommonModule>
<HTTPService>HTTPСервис_Telegram</HTTPService>
<ScheduledJob>ПроверкаОбновленийТелеграм</ScheduledJob>
<CommonModule>ТелеграмРегламентВызовСервера</CommonModule>
<HTTPService>СервисТелеграм</HTTPService>
<ScheduledJob>ПроверкаАктуальностиКонфигураций</ScheduledJob>
<FunctionalOption>ТелеграмИспользоватьВебХук</FunctionalOption>
<Constant>ТелеграмТокен</Constant>
<Constant>ТелеграмВебХук</Constant>
<Constant>ЛогироватьHttpЗапросы</Constant>
<CommonForm>ТелеграмВебХук</CommonForm>
<Catalog>ТелеграмПользователь</Catalog>
<Catalog>ТелеграмСообщение</Catalog>
<Catalog>ТелеграмДокумент</Catalog>
<Constant>ТелеграмИспользоватьВебХук</Constant>
<Constant>НачальноеЗаполнениеВыполнено</Constant>
<CommonForm>Настройки</CommonForm>
<Catalog>ТелеграмПользователи</Catalog>
<Catalog>ТелеграмСообщения</Catalog>
<Catalog>ТелеграмДокументы</Catalog>
<Catalog>Конфигурации</Catalog>
<Document>ЛогHttpЗапроса</Document>
<Enum>МетодHTTPЗапроса</Enum>
<Document>ЛогиХТТПЗапросов</Document>
<Enum>МетодХТТПЗапроса</Enum>
<Enum>ТелеграмРежимРазметки</Enum>
<Enum>ТелеграмСтатусДиалога</Enum>
<Enum>ВидыДанныхКоллбэков</Enum>
<DataProcessor>РаботаССообщениями</DataProcessor>
<DataProcessor>РаботаСОбновлениями</DataProcessor>
<InformationRegister>ТелеграмСообщения</InformationRegister>
<Enum>ВидыДанныхОбратныхВызовов</Enum>
<DataProcessor>НачальноеЗаполнениеДанных</DataProcessor>
<InformationRegister>ТелеграмИсторияСообщений</InformationRegister>
<InformationRegister>ОтслеживаниеВерсийКонфигураций</InformationRegister>
<InformationRegister>УведомленияОНовыхВерсиях</InformationRegister>
</ChildObjects>
</Configuration>
</MetaDataObject>

View File

@@ -27,7 +27,7 @@
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<UseStandardCommands>true</UseStandardCommands>
<UseStandardCommands>false</UseStandardCommands>
<DefaultForm/>
<ExtendedPresentation/>
<Explanation/>

View File

@@ -0,0 +1,58 @@
<?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.19">
<Constant uuid="443664ab-523b-44a0-bd39-3bdfba215113">
<InternalInfo>
<xr:GeneratedType name="ConstantManager.НачальноеЗаполнениеВыполнено" category="Manager">
<xr:TypeId>daee5ccf-9121-4c23-9f60-1e96fc9edbe5</xr:TypeId>
<xr:ValueId>294e80f1-f93d-4bee-98b4-b7e41f72b54d</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="ConstantValueManager.НачальноеЗаполнениеВыполнено" category="ValueManager">
<xr:TypeId>0db0a252-b2e0-4689-9b34-0ce61b8ddc3a</xr:TypeId>
<xr:ValueId>649d5178-b02c-4425-bc5c-a0d4b431d2e7</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="ConstantValueKey.НачальноеЗаполнениеВыполнено" category="ValueKey">
<xr:TypeId>40ee8abe-1064-4ca4-9e1a-c2086fcfa797</xr:TypeId>
<xr:ValueId>980981e0-7957-48bb-9485-d0533ab0611e</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>НачальноеЗаполнениеВыполнено</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Начальное заполнение выполнено</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<UseStandardCommands>false</UseStandardCommands>
<DefaultForm/>
<ExtendedPresentation/>
<Explanation/>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<DataLockControlMode>Managed</DataLockControlMode>
<DataHistory>DontUse</DataHistory>
<UpdateDataHistoryImmediatelyAfterWrite>false</UpdateDataHistoryImmediatelyAfterWrite>
<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>
</Properties>
</Constant>
</MetaDataObject>

View File

@@ -31,8 +31,8 @@
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<UseStandardCommands>true</UseStandardCommands>
<DefaultForm>CommonForm.ТелеграмВебХук</DefaultForm>
<UseStandardCommands>false</UseStandardCommands>
<DefaultForm/>
<ExtendedPresentation/>
<Explanation/>
<PasswordMode>false</PasswordMode>

View File

@@ -0,0 +1,58 @@
<?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.19">
<Constant uuid="c8ca36f3-ed9b-4dbb-bbec-82bc51ae3ff3">
<InternalInfo>
<xr:GeneratedType name="ConstantManager.ТелеграмИспользоватьВебХук" category="Manager">
<xr:TypeId>9912d333-64ab-49bf-a71a-87474c019bea</xr:TypeId>
<xr:ValueId>ffdfad80-3e08-4abc-9e41-fc787988d12a</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="ConstantValueManager.ТелеграмИспользоватьВебХук" category="ValueManager">
<xr:TypeId>12109e6a-54b7-494c-94ec-dc4fbc1dbbd0</xr:TypeId>
<xr:ValueId>7023cb97-365d-4772-8087-3afa07f0c4a3</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="ConstantValueKey.ТелеграмИспользоватьВебХук" category="ValueKey">
<xr:TypeId>13a35c4a-835b-4f75-a0a3-e15f7af2dc08</xr:TypeId>
<xr:ValueId>7c1ee7cc-e485-447d-b999-bf52bf1343c1</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ТелеграмИспользоватьВебХук</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Телеграм использовать веб хук</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<UseStandardCommands>false</UseStandardCommands>
<DefaultForm/>
<ExtendedPresentation/>
<Explanation/>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<DataLockControlMode>Managed</DataLockControlMode>
<DataHistory>DontUse</DataHistory>
<UpdateDataHistoryImmediatelyAfterWrite>false</UpdateDataHistoryImmediatelyAfterWrite>
<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>
</Properties>
</Constant>
</MetaDataObject>

View File

@@ -31,7 +31,7 @@
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<UseStandardCommands>true</UseStandardCommands>
<UseStandardCommands>false</UseStandardCommands>
<DefaultForm/>
<ExtendedPresentation/>
<Explanation/>

View File

@@ -1,27 +1,27 @@
<?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.19">
<DataProcessor uuid="6a6de453-1c7e-4af2-9ed7-b9b7e86af49a">
<DataProcessor uuid="155c92fe-5a0f-4b5a-9251-8f7187b8f8a6">
<InternalInfo>
<xr:GeneratedType name="DataProcessorObject.РаботаСОбновлениями" category="Object">
<xr:TypeId>d03df4e7-3d99-41bc-80a9-2aa356d9f81e</xr:TypeId>
<xr:ValueId>888ddf20-8cde-4fa1-9984-ba1c5680b5ff</xr:ValueId>
<xr:GeneratedType name="DataProcessorObject.НачальноеЗаполнениеДанных" category="Object">
<xr:TypeId>f6d22c74-3f20-4aec-81c6-a9f6dceea5f0</xr:TypeId>
<xr:ValueId>ee8a7198-3478-4b4c-b421-23f2818fad0b</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DataProcessorManager.РаботаСОбновлениями" category="Manager">
<xr:TypeId>f0d25f79-1825-46a9-ae42-59c02e02df69</xr:TypeId>
<xr:ValueId>f9356985-f1dc-4bdc-a11c-d30b4656a52b</xr:ValueId>
<xr:GeneratedType name="DataProcessorManager.НачальноеЗаполнениеДанных" category="Manager">
<xr:TypeId>b721b5f6-2068-4461-8368-e63a275a5f61</xr:TypeId>
<xr:ValueId>9d497305-5abe-42e2-8945-bccfa03998bd</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>РаботаСОбновлениями</Name>
<Name>НачальноеЗаполнениеДанных</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Работа с обновлениями</v8:content>
<v8:content>Начальное заполнение данных</v8:content>
</v8:item>
</Synonym>
<Comment/>
<UseStandardCommands>true</UseStandardCommands>
<DefaultForm>DataProcessor.РаботаСОбновлениями.Form.Форма</DefaultForm>
<DefaultForm>DataProcessor.НачальноеЗаполнениеДанных.Form.Форма</DefaultForm>
<AuxiliaryForm/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<ExtendedPresentation/>

View File

@@ -1,6 +1,6 @@
<?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.19">
<Form uuid="8f9f0e37-0f05-451c-b8a9-602ea9193afc">
<Form uuid="2357a0a6-0f8a-4b97-ada8-ee23eae78138">
<Properties>
<Name>Форма</Name>
<Synonym>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<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.19">
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<ChildItems>
<Button name="ПровестиИнициализацию" id="1">
<Type>UsualButton</Type>
<CommandName>Form.Command.ПровестиИнициализацию</CommandName>
<ExtendedTooltip name="ПровестиИнициализациюРасширеннаяПодсказка" id="2"/>
</Button>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:DataProcessorObject.НачальноеЗаполнениеДанных</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
</Attributes>
<Commands>
<Command name="ПровестиИнициализацию" id="1">
<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

@@ -0,0 +1,132 @@
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПровестиИнициализацию(Команда)
Если НачальноеЗаполнениеВыполнено() И СлужебныеСтруктурыПроинициализированы() Тогда
СообщениеПользователю("Данные уже проинициализированы.");
Возврат;
ИначеЕсли СлужебныеСтруктурыПроинициализированы() Тогда
СообщениеПользователю("Данные уже проинициализированы.");
НачальноеЗаполнениеВыполненоУстановить(Истина);
Возврат;
Иначе
ПровестиИнициализациюНаСервере();
СообщениеПользователю("Данные проинициализированы успешно.");
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервереБезКонтекста
Процедура ПровестиИнициализациюНаСервере()
НачатьТранзакцию();
Попытка
ЗаполнитьСправочникКонфигурацииНачальнымиДанными();
НачальноеЗаполнениеВыполненоУстановить(Истина);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации("Обработка начального заполнения.Ошибка", УровеньЖурналаРегистрации.Ошибка, , ,
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецПроцедуры
&НаСервереБезКонтекста
Функция СлужебныеСтруктурыПроинициализированы()
Результат = Ложь;
Если СправочникКонфигурацииЗаполненНачальнымиДанными() Тогда
Результат = Истина;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервереБезКонтекста
Функция СправочникКонфигурацииЗаполненНачальнымиДанными()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Конфигурации.Имя КАК Имя
|ИЗ
| Справочник.Конфигурации КАК Конфигурации
|ГДЕ
| Конфигурации.Имя В(&ИменаКонфигураций)";
ИменаКонфигураций = Новый Массив;
ИменаКонфигураций.Добавить("Accounting");
ИменаКонфигураций.Добавить("HRM");
ИменаКонфигураций.Добавить("ARAutomation");
ИменаКонфигураций.Добавить("SmallBusiness");
Запрос.УстановитьПараметр("ИменаКонфигураций", ИменаКонфигураций);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Возврат ВыборкаДетальныеЗаписи.Количество() = ИменаКонфигураций.Количество();
КонецФункции
&НаСервереБезКонтекста
Процедура ЗаполнитьСправочникКонфигурацииНачальнымиДанными()
НовыйСправочник = Справочники.Конфигурации.СоздатьЭлемент();
НовыйСправочник.Наименование = "Комплексная автоматизация";
НовыйСправочник.Имя = "ARAutomation";
НовыйСправочник.Код = "000000001";
НовыйСправочник.Записать();
НовыйСправочник = Справочники.Конфигурации.СоздатьЭлемент();
НовыйСправочник.Наименование = "Зарплата и управление персоналом";
НовыйСправочник.Имя = "HRM";
НовыйСправочник.Код = "000000002";
НовыйСправочник.Записать();
НовыйСправочник = Справочники.Конфигурации.СоздатьЭлемент();
НовыйСправочник.Наименование = "Бухгалтерия предприятия";
НовыйСправочник.Имя = "Accounting";
НовыйСправочник.Код = "000000003";
НовыйСправочник.Записать();
НовыйСправочник = Справочники.Конфигурации.СоздатьЭлемент();
НовыйСправочник.Наименование = "Управление нашей фирмой";
НовыйСправочник.Имя = "SmallBusiness";
НовыйСправочник.Код = "000000004";
НовыйСправочник.Записать();
КонецПроцедуры
&НаКлиенте
Процедура СообщениеПользователю(ТекстСообщения)
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон(НСтр("ru = '%1'"), ТекстСообщения);
Сообщение.Сообщить();
КонецПроцедуры
&НаСервереБезКонтекста
Функция НачальноеЗаполнениеВыполнено()
Возврат Константы.НачальноеЗаполнениеВыполнено.Получить();
КонецФункции
&НаСервереБезКонтекста
Процедура НачальноеЗаполнениеВыполненоУстановить(Знач Признак)
Константы.НачальноеЗаполнениеВыполнено.Установить(Признак);
КонецПроцедуры
#КонецОбласти

View File

@@ -1,83 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<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.19">
<AutoSaveDataInSettings>Use</AutoSaveDataInSettings>
<SaveDataInSettings>UseList</SaveDataInSettings>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<ChildItems>
<InputField name="ИдЧата" id="3">
<DataPath>ИдЧата</DataPath>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="ИдЧатаКонтекстноеМеню" id="4"/>
<ExtendedTooltip name="ИдЧатаРасширеннаяПодсказка" id="5"/>
</InputField>
<Button name="АктуальнаяВерсияКонфигурации" id="1">
<Type>UsualButton</Type>
<CommandName>Form.Command.АктуальнаяВерсияКонфигурации</CommandName>
<ExtendedTooltip name="АктуальнаяВерсияКонфигурацииРасширеннаяПодсказка" id="2"/>
</Button>
<Button name="АктуализироватьВерсии" id="6">
<Type>UsualButton</Type>
<CommandName>Form.Command.АктуализироватьВерсии</CommandName>
<ExtendedTooltip name="АктуализироватьВерсииРасширеннаяПодсказка" id="7"/>
</Button>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:DataProcessorObject.РаботаСОбновлениями</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
<Attribute name="ИдЧата" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Ид чата</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:decimal</v8:Type>
<v8:NumberQualifiers>
<v8:Digits>15</v8:Digits>
<v8:FractionDigits>0</v8:FractionDigits>
<v8:AllowedSign>Any</v8:AllowedSign>
</v8:NumberQualifiers>
</Type>
<Save>
<Field>ИдЧата</Field>
</Save>
</Attribute>
</Attributes>
<Commands>
<Command name="АктуальнаяВерсияКонфигурации" id="1">
<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>
<Command name="АктуализироватьВерсии" id="2">
<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

@@ -1,45 +0,0 @@
&НаКлиенте
Процедура АктуальнаяВерсияКонфигурации()
Конфигурация = КонфигурацияДляТеста();
ОтветАктуальнаяВерсияКонфигурации = РаботаСОбновлениямиВызовСервера.АктуальнаяВерсияКонфигурации(Конфигурация,"2.4.13.275");
ТекстСообщения = "Не удалось получить информацию по обновлению";
Если ОтветАктуальнаяВерсияКонфигурации.Успех Тогда
АктуальнаяВерсияКонфигурации = ОтветАктуальнаяВерсияКонфигурации["Тело"]["configurationUpdateResponse"]["configurationVersion"];
АктуальнаяВерсияПлатформы = ОтветАктуальнаяВерсияКонфигурации["Тело"]["configurationUpdateResponse"]["platformVersion"];
СсылкаНаРелиз = ОтветАктуальнаяВерсияКонфигурации["Тело"]["configurationUpdateResponse"]["updateInfoUrl"];
ТекстСообщения = СтрШаблон("Актуальная конфигурация: [%1](%2)%3Платформа: %4", АктуальнаяВерсияКонфигурации, СсылкаНаРелиз, Символы.ПС, АктуальнаяВерсияПлатформы);
КонецЕсли;
ОтветТелеграм = ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстСообщения,
ПредопределенноеЗначение("Перечисление.ТелеграмРежимРазметки.Markdown"));
КонецПроцедуры
&НаСервереБезКонтекста
Функция КонфигурацияДляТеста()
Возврат Справочники.Конфигурации.НайтиПоРеквизиту("Имя", "ARAutomation");
КонецФункции
&НаКлиенте
Процедура АктуализироватьВерсии(Команда)
ОбработаноЗаписей = АктуализироватьВерсииНаСервере(ИдЧата);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон("Актуализация версий выполнена. Обновлено %1 записей", ОбработаноЗаписей);
Сообщение.Сообщить();
КонецПроцедуры
&НаСервереБезКонтекста
Функция АктуализироватьВерсииНаСервере(ИдЧата)
Возврат РаботаСОбновлениямиВызовСервера.АктуализироватьВерсииКонфигураций();
КонецФункции

View File

@@ -1,34 +0,0 @@
<?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.19">
<DataProcessor uuid="168a0153-7a94-49dc-9f9a-719c8b58bd1c">
<InternalInfo>
<xr:GeneratedType name="DataProcessorObject.РаботаССообщениями" category="Object">
<xr:TypeId>2c761f39-689d-4cf5-ab61-81089624c383</xr:TypeId>
<xr:ValueId>457171ce-0693-48a8-975c-dbd7499e90bc</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DataProcessorManager.РаботаССообщениями" category="Manager">
<xr:TypeId>e4281817-188f-4d03-a366-9f47ac9832f9</xr:TypeId>
<xr:ValueId>40dc4dda-7a39-482c-aab1-de02c4d74a6f</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>РаботаССообщениями</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Работа с сообщениями</v8:content>
</v8:item>
</Synonym>
<Comment/>
<UseStandardCommands>true</UseStandardCommands>
<DefaultForm>DataProcessor.РаботаССообщениями.Form.Форма</DefaultForm>
<AuxiliaryForm/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<ExtendedPresentation/>
<Explanation/>
</Properties>
<ChildObjects>
<Form>Форма</Form>
</ChildObjects>
</DataProcessor>
</MetaDataObject>

View File

@@ -1,385 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<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.19">
<AutoSaveDataInSettings>Use</AutoSaveDataInSettings>
<SaveDataInSettings>UseList</SaveDataInSettings>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<ChildItems>
<InputField name="Сообщения" id="3">
<DataPath>Сообщения</DataPath>
<MultiLine>true</MultiLine>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="СообщенияКонтекстноеМеню" id="4"/>
<ExtendedTooltip name="СообщенияРасширеннаяПодсказка" id="5"/>
</InputField>
<Button name="ПолучитьСообщения" id="1">
<Type>UsualButton</Type>
<CommandName>Form.Command.ПолучитьСообщения</CommandName>
<ExtendedTooltip name="ПолучитьСообщенияРасширеннаяПодсказка" id="2"/>
</Button>
<UsualGroup name="Webhook" id="17">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Webhook</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Webhook</v8:content>
</v8:item>
</ToolTip>
<Group>Vertical</Group>
<ExtendedTooltip name="WebhookРасширеннаяПодсказка" id="18"/>
<ChildItems>
<InputField name="АдресВебхук" id="8">
<DataPath>АдресВебхук</DataPath>
<MultiLine>true</MultiLine>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="АдресВебхукКонтекстноеМеню" id="9"/>
<ExtendedTooltip name="АдресВебхукРасширеннаяПодсказка" id="10"/>
</InputField>
<UsualGroup name=руппа1" id="24">
<Group>AlwaysHorizontal</Group>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name=руппа1РасширеннаяПодсказка" id="25"/>
<ChildItems>
<Button name="SetWebHook" id="11">
<Type>UsualButton</Type>
<CommandName>Form.Command.SetWebHook</CommandName>
<ExtendedTooltip name="SetWebHookРасширеннаяПодсказка" id="12"/>
</Button>
<Button name="GetWebhookInfo" id="6">
<Type>UsualButton</Type>
<CommandName>Form.Command.GetWebhookInfo</CommandName>
<ExtendedTooltip name="GetWebhookInfoРасширеннаяПодсказка" id="7"/>
</Button>
<Button name="DeleteWebhook" id="26">
<Type>UsualButton</Type>
<CommandName>Form.Command.DeleteWebhook</CommandName>
<ExtendedTooltip name="DeleteWebhookРасширеннаяПодсказка" id="27"/>
</Button>
</ChildItems>
</UsualGroup>
</ChildItems>
</UsualGroup>
<UsualGroup name="Post" id="19">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Post</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Post</v8:content>
</v8:item>
</ToolTip>
<Group>Vertical</Group>
<Representation>StrongSeparation</Representation>
<ExtendedTooltip name="PostРасширеннаяПодсказка" id="20"/>
<ChildItems>
<InputField name="СообщениеДляОтправки" id="21">
<DataPath>СообщениеДляОтправки</DataPath>
<MultiLine>true</MultiLine>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="СообщениеДляОтправкиКонтекстноеМеню" id="22"/>
<ExtendedTooltip name="СообщениеДляОтправкиРасширеннаяПодсказка" id="23"/>
</InputField>
<UsualGroup name=руппа2" id="28">
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name=руппа2РасширеннаяПодсказка" id="29"/>
<ChildItems>
<Button name="PostЗапрос" id="13">
<Type>UsualButton</Type>
<CommandName>Form.Command.PostЗапрос</CommandName>
<ExtendedTooltip name="PostЗапросРасширеннаяПодсказка" id="14"/>
</Button>
</ChildItems>
</UsualGroup>
</ChildItems>
</UsualGroup>
<UsualGroup name="ЗагрузкаДокументов" id="30">
<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>
<Group>Vertical</Group>
<Representation>StrongSeparation</Representation>
<ExtendedTooltip name="ЗагрузкаДокументовРасширеннаяПодсказка" id="31"/>
<ChildItems>
<InputField name="ИдФайла" id="32">
<DataPath>ИдФайла</DataPath>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="ИдФайлаКонтекстноеМеню" id="33"/>
<ExtendedTooltip name="ИдФайлаРасширеннаяПодсказка" id="34"/>
</InputField>
<Button name="СкачатьФайл" id="35">
<Type>UsualButton</Type>
<CommandName>Form.Command.СкачатьФайл</CommandName>
<ExtendedTooltip name="СкачатьФайлРасширеннаяПодсказка" id="36"/>
</Button>
</ChildItems>
</UsualGroup>
<UsualGroup name="SendDocument" id="39">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Send document</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Send document</v8:content>
</v8:item>
</ToolTip>
<Representation>StrongSeparation</Representation>
<ExtendedTooltip name="SendDocumentРасширеннаяПодсказка" id="40"/>
<ChildItems>
<InputField name="ИдЧата" id="45">
<DataPath>ИдЧата</DataPath>
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
<ContextMenu name="ИдЧатаКонтекстноеМеню" id="46"/>
<ExtendedTooltip name="ИдЧатаРасширеннаяПодсказка" id="47"/>
</InputField>
<Button name="SendDocument1" id="41">
<Type>UsualButton</Type>
<CommandName>Form.Command.SendDocument</CommandName>
<ExtendedTooltip name="SendDocument1РасширеннаяПодсказка" id="42"/>
</Button>
<Button name="SendPhoto" id="43">
<Type>UsualButton</Type>
<CommandName>Form.Command.SendPhoto</CommandName>
<ExtendedTooltip name="SendPhotoРасширеннаяПодсказка" id="44"/>
</Button>
</ChildItems>
</UsualGroup>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:DataProcessorObject.РаботаССообщениями</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
<Attribute name="Сообщения" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сообщения</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="АдресВебхук" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Адрес вебхук</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<Save>
<Field>АдресВебхук</Field>
</Save>
</Attribute>
<Attribute name="СообщениеДляОтправки" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сообщение для отправки</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="ИдФайла" id="5">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Ид файла</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<Save>
<Field>ИдФайла</Field>
</Save>
</Attribute>
<Attribute name="ИдЧата" id="6">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Ид чата</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:decimal</v8:Type>
<v8:NumberQualifiers>
<v8:Digits>15</v8:Digits>
<v8:FractionDigits>0</v8:FractionDigits>
<v8:AllowedSign>Any</v8:AllowedSign>
</v8:NumberQualifiers>
</Type>
<Save>
<Field>ИдЧата</Field>
</Save>
</Attribute>
</Attributes>
<Commands>
<Command name="ПолучитьСообщения" id="1">
<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>
<Command name="GetWebhookInfo" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Get webhook info</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Get webhook info</v8:content>
</v8:item>
</ToolTip>
<Action>getWebhookInfo</Action>
</Command>
<Command name="SetWebHook" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Set web hook</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Set web hook</v8:content>
</v8:item>
</ToolTip>
<Action>SetWebHook</Action>
</Command>
<Command name="PostЗапрос" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Post запрос</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Post запрос</v8:content>
</v8:item>
</ToolTip>
<Action>PostЗапрос</Action>
</Command>
<Command name="DeleteWebhook" id="5">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Delete webhook</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Delete webhook</v8:content>
</v8:item>
</ToolTip>
<Action>DeleteWebhook</Action>
</Command>
<Command name="СкачатьФайл" id="6">
<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>
<Command name="SendDocument" id="8">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Send document</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Send document</v8:content>
</v8:item>
</ToolTip>
<Action>SendDocument</Action>
</Command>
<Command name="SendPhoto" id="7">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Send photo</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Send photo</v8:content>
</v8:item>
</ToolTip>
<Action>SendPhoto</Action>
</Command>
</Commands>
</Form>

View File

@@ -1,149 +0,0 @@
&НаКлиенте
Процедура ПолучитьСообщения(Команда)
Ответ = ПолучитьСообщенияНаСервере();
ВывестиОтвет(Ответ);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьСообщенияНаСервере()
Ответ = ТелеграмМетодыВызовСервера.GetUpdates();
БотОбщегоНазначения.ОбработкаКомандыБота(Ответ);
Возврат Ответ;
КонецФункции
&НаКлиенте
Процедура getWebhookInfo(Команда)
Ответ = ТелеграмМетодыВызовСервера.GetWebhookInfo();
Если НЕ Ответ = Неопределено Тогда
ВывестиОтвет(Ответ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура SetWebHook(Команда)
Ответ = ТелеграмМетодыВызовСервера.SetWebHook(АдресВебхук);
Если НЕ Ответ = Неопределено Тогда
ВывестиОтвет(Ответ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура PostЗапрос(Команда)
МассивРядов = Новый Массив;
МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Конфигурации;Подписки");
МассивРядов.Добавить(МассивКнопок);
Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина);
Ответ = ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, СообщениеДляОтправки,
ПредопределенноеЗначение("Перечисление.ТелеграмРежимРазметки.HTML"), Клавиатура);
Если НЕ Ответ = Неопределено Тогда
ВывестиОтвет(Ответ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура DeleteWebhook(Команда)
Ответ = ТелеграмМетодыВызовСервера.DeleteWebhook();
Если НЕ Ответ = Неопределено Тогда
ВывестиОтвет(Ответ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВывестиОтвет(Ответ)
ТекстСообщения = СтрШаблон("Выполнено %1.%2%3", ?(Ответ.Успех, "успешно", "с ошибкой"), Символы.ПС, Ответ.Описание);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ТекстСообщения;
Сообщение.Сообщить();
КонецПроцедуры
&НаКлиенте
Процедура СкачатьФайл(Команда)
СкачатьФайлНаСервере(ИдФайла);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СкачатьФайлНаСервере(ИдФайла)
НовыйДокумент = Справочники.ТелеграмДокумент.СоздатьЭлемент();
НовыйДокумент.Наименование = "Тестовый документ";
НовыйДокумент.id = "AgADLXoAAmMlIUk";
НовыйДокумент.file_name = "test.pdf";
НовыйДокумент.mime_type = "application/pdf";
НовыйДокумент.file_size = 811482;
Ответ = ТелеграмОбщегоНазначения.ДанныеДокументаПоИд(ИдФайла);
Если Ответ.Успех Тогда
НовыйДокумент.ДанныеФайла = Новый ХранилищеЗначения(Ответ.Тело);
КонецЕсли;
НовыйДокумент.Записать();
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон("Документ %1 успешно записан", НовыйДокумент.Ссылка);
Сообщение.Сообщить();
КонецПроцедуры
&НаКлиенте
Процедура SendDocument(Команда)
ДанныеДокумента = ДанныеДокументаСервер();
Ответ = ТелеграмМетодыВызовСервера.SendDocument(ИдЧата, ДанныеДокумента, "Отправлен документ");
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДанныеДокументаСервер()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТелеграмДокумент.ДанныеФайла КАК ДанныеФайла,
| ТелеграмДокумент.file_name КАК ИмяФайла
|ИЗ
| Справочник.ТелеграмДокумент КАК ТелеграмДокумент";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат Новый Структура("ИмяФайла, ДанныеФайла", ВыборкаДетальныеЗаписи.ИмяФайла, ВыборкаДетальныеЗаписи.ДанныеФайла.Получить());
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура SendPhoto(Команда)
ДанныеКартинки = ДанныеКартинки();
Ответ = ТелеграмМетодыВызовСервера.SendPhoto(ИдЧата, ДанныеКартинки, "telegram_bot.jpg", "Отправлено фото");
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДанныеКартинки()
Возврат БиблиотекаКартинок.КартинкаБот.ПолучитьДвоичныеДанные();
КонецФункции

View File

@@ -2,33 +2,33 @@
<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.19">
<Document uuid="7ca26a17-d7b3-4ec0-bd51-2dd2951e242f">
<InternalInfo>
<xr:GeneratedType name="DocumentObject.ЛогHttpЗапроса" category="Object">
<xr:GeneratedType name="DocumentObject.ЛогиХТТПЗапросов" category="Object">
<xr:TypeId>ea6e9e6f-fd73-405a-bac6-96eee781c8e5</xr:TypeId>
<xr:ValueId>d94f7494-6432-421e-bebf-573e35cee4ad</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DocumentRef.ЛогHttpЗапроса" category="Ref">
<xr:GeneratedType name="DocumentRef.ЛогиХТТПЗапросов" category="Ref">
<xr:TypeId>dc268b14-03bf-4907-a652-b52e45d59363</xr:TypeId>
<xr:ValueId>4e5a9388-65a8-48a6-b32e-c1d494e2e2a3</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DocumentSelection.ЛогHttpЗапроса" category="Selection">
<xr:GeneratedType name="DocumentSelection.ЛогиХТТПЗапросов" category="Selection">
<xr:TypeId>a65053fd-9227-430b-affd-6cb0b5383140</xr:TypeId>
<xr:ValueId>9aeb4fba-27a8-4e05-8a74-d8afba4ff2ff</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DocumentList.ЛогHttpЗапроса" category="List">
<xr:GeneratedType name="DocumentList.ЛогиХТТПЗапросов" category="List">
<xr:TypeId>bd353e78-0d8b-46a4-816e-df8cf45ed3df</xr:TypeId>
<xr:ValueId>f8cc591c-5150-4294-acf9-9f5ef49f7996</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DocumentManager.ЛогHttpЗапроса" category="Manager">
<xr:GeneratedType name="DocumentManager.ЛогиХТТПЗапросов" category="Manager">
<xr:TypeId>cae7dc26-80c9-4d43-8a24-96aa775739fc</xr:TypeId>
<xr:ValueId>1c720f88-df95-4bf7-9cf9-35d32df85dc3</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ЛогHttpЗапроса</Name>
<Name>ЛогиХТТПЗапросов</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Лог http запроса</v8:content>
<v8:content>Логи HTTP запросов</v8:content>
</v8:item>
</Synonym>
<Comment/>
@@ -43,14 +43,14 @@
<Characteristics/>
<BasedOn/>
<InputByString>
<xr:Field>Document.ЛогHttpЗапроса.StandardAttribute.Number</xr:Field>
<xr:Field>Document.ЛогиХТТПЗапросов.StandardAttribute.Number</xr:Field>
</InputByString>
<CreateOnInput>Use</CreateOnInput>
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
<DefaultObjectForm>Document.ЛогHttpЗапроса.Form.ФормаДокумента</DefaultObjectForm>
<DefaultListForm>Document.ЛогHttpЗапроса.Form.ФормаСписка</DefaultListForm>
<DefaultObjectForm>Document.ЛогиХТТПЗапросов.Form.ФормаДокумента</DefaultObjectForm>
<DefaultListForm>Document.ЛогиХТТПЗапросов.Form.ФормаСписка</DefaultListForm>
<DefaultChoiceForm/>
<AuxiliaryObjectForm/>
<AuxiliaryListForm/>
@@ -80,11 +80,11 @@
<ChildObjects>
<Attribute uuid="99c7021d-50c9-4a2d-b375-21b52de8d2df">
<Properties>
<Name>HTTPЗапрос</Name>
<Name>Запрос</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>HTTPЗапрос</v8:content>
<v8:content>Запрос</v8:content>
</v8:item>
</Synonym>
<Comment/>
@@ -123,11 +123,11 @@
</Attribute>
<Attribute uuid="156814c3-b941-4a59-a92f-439b400475d0">
<Properties>
<Name>HTTPОтвет</Name>
<Name>Ответ</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>HTTPОтвет</v8:content>
<v8:content>Ответ</v8:content>
</v8:item>
</Synonym>
<Comment/>
@@ -175,7 +175,7 @@
</Synonym>
<Comment/>
<Type>
<v8:Type>cfg:EnumRef.МетодHTTPЗапроса</v8:Type>
<v8:Type>cfg:EnumRef.МетодХТТПЗапроса</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>

View File

@@ -46,7 +46,7 @@
<ExtendedTooltip name="HTTPРасширеннаяПодсказка" id="14"/>
<ChildItems>
<InputField name="HTTPЗапрос" id="7">
<DataPath>Объект.HTTPЗапрос</DataPath>
<DataPath>Объект.Запрос</DataPath>
<EditMode>EnterOnInput</EditMode>
<AutoMaxWidth>false</AutoMaxWidth>
<MultiLine>true</MultiLine>
@@ -55,7 +55,7 @@
<ExtendedTooltip name="HTTPЗапросРасширеннаяПодсказка" id="9"/>
</InputField>
<InputField name="HTTPОтвет" id="10">
<DataPath>Объект.HTTPОтвет</DataPath>
<DataPath>Объект.Ответ</DataPath>
<EditMode>EnterOnInput</EditMode>
<AutoMaxWidth>false</AutoMaxWidth>
<MultiLine>true</MultiLine>
@@ -69,7 +69,7 @@
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:DocumentObject.ЛогHttpЗапроса</v8:Type>
<v8:Type>cfg:DocumentObject.ЛогиХТТПЗапросов</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
<SavedData>true</SavedData>

View File

@@ -1,7 +1,10 @@

#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЭтаФорма.ТолькоПросмотр = Истина;
ТолькоПросмотр = Истина;
КонецПроцедуры
#КонецОбласти

View File

@@ -90,7 +90,7 @@
<ExtendedTooltip name="КодСостоянияРасширеннаяПодсказка" id="33"/>
</LabelField>
<LabelField name="HTTPЗапрос" id="28">
<DataPath>Список.HTTPЗапрос</DataPath>
<DataPath>Список.Запрос</DataPath>
<ContextMenu name="HTTPЗапросКонтекстноеМеню" id="29"/>
<ExtendedTooltip name="HTTPЗапросРасширеннаяПодсказка" id="30"/>
</LabelField>
@@ -106,7 +106,7 @@
<Settings xsi:type="DynamicList">
<ManualQuery>false</ManualQuery>
<DynamicDataRead>true</DynamicDataRead>
<MainTable>Document.ЛогHttpЗапроса</MainTable>
<MainTable>Document.ЛогиХТТПЗапросов</MainTable>
<ListSettings>
<dcsset:filter>
<dcsset:viewMode>Normal</dcsset:viewMode>

View File

@@ -2,25 +2,25 @@
<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.19">
<Enum uuid="49b74ca2-e1cc-4ac3-9da2-d2e3c99a5044">
<InternalInfo>
<xr:GeneratedType name="EnumRef.ВидыДанныхКоллбэков" category="Ref">
<xr:GeneratedType name="EnumRef.ВидыДанныхОбратныхВызовов" category="Ref">
<xr:TypeId>faee0c1e-a312-43c8-8af2-20618cc53904</xr:TypeId>
<xr:ValueId>b6d6ee51-fdfe-47bd-bc31-3147751dc7fc</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="EnumManager.ВидыДанныхКоллбэков" category="Manager">
<xr:GeneratedType name="EnumManager.ВидыДанныхОбратныхВызовов" category="Manager">
<xr:TypeId>268e63a6-adc9-4961-9d35-92c1ddc296e3</xr:TypeId>
<xr:ValueId>6e68fa9a-2345-462c-98d4-6c31908cb17b</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="EnumList.ВидыДанныхКоллбэков" category="List">
<xr:GeneratedType name="EnumList.ВидыДанныхОбратныхВызовов" category="List">
<xr:TypeId>6bf0eedb-c7aa-4a05-ae0f-3900e6b21ff7</xr:TypeId>
<xr:ValueId>7947dc7b-96c2-4672-8ebe-c48dba063c3e</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ВидыДанныхКоллбэков</Name>
<Name>ВидыДанныхОбратныхВызовов</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Виды данных коллбэков</v8:content>
<v8:content>Виды данных callbacks</v8:content>
</v8:item>
</Synonym>
<Comment/>
@@ -62,6 +62,18 @@
<Comment/>
</Properties>
</EnumValue>
<EnumValue uuid="a1e5fa2c-ce22-4e45-9920-0d7e77168996">
<Properties>
<Name>GetStatus</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Get status</v8:content>
</v8:item>
</Synonym>
<Comment/>
</Properties>
</EnumValue>
</ChildObjects>
</Enum>
</MetaDataObject>

View File

@@ -2,21 +2,21 @@
<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.19">
<Enum uuid="71ba9b1f-8966-4c88-accf-4683d4764b70">
<InternalInfo>
<xr:GeneratedType name="EnumRef.МетодHTTPЗапроса" category="Ref">
<xr:GeneratedType name="EnumRef.МетодХТТПЗапроса" category="Ref">
<xr:TypeId>062ec44f-ddff-4eb2-9d67-ace1243a7874</xr:TypeId>
<xr:ValueId>cdbc4fda-6d89-4e83-950b-648b679c0a5c</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="EnumManager.МетодHTTPЗапроса" category="Manager">
<xr:GeneratedType name="EnumManager.МетодХТТПЗапроса" category="Manager">
<xr:TypeId>75bb42b3-89ee-4666-a3d9-dfe18b9c28e1</xr:TypeId>
<xr:ValueId>bc3f9676-2064-4845-a533-556e907c48bf</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="EnumList.МетодHTTPЗапроса" category="List">
<xr:GeneratedType name="EnumList.МетодХТТПЗапроса" category="List">
<xr:TypeId>ac64ef38-c6cc-4bc3-a870-1784bd2b1317</xr:TypeId>
<xr:ValueId>35a3a837-9322-46af-9807-8d233146ed18</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>МетодHTTPЗапроса</Name>
<Name>МетодХТТПЗапроса</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>

View File

@@ -0,0 +1,9 @@
#Область ОбработчикиСобытий
Процедура ПриНачалеРаботыСистемы()
ТелеграмРегламентВызовСервера.ЗапускПроверкиОбновлений();
КонецПроцедуры
#КонецОбласти

View File

@@ -0,0 +1,20 @@
<?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.19">
<FunctionalOption uuid="d932ef2d-9a85-49b0-ad5d-5e1f7579c75b">
<Properties>
<Name>ТелеграмИспользоватьВебХук</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Телеграм использовать веб хук</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Location>Constant.ТелеграмИспользоватьВебХук</Location>
<PrivilegedGetMode>true</PrivilegedGetMode>
<Content>
<xr:Object>Constant.ТелеграмВебХук</xr:Object>
</Content>
</Properties>
</FunctionalOption>
</MetaDataObject>

View File

@@ -2,11 +2,11 @@
<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.19">
<HTTPService uuid="85b4fbb0-1bf6-43f5-a35b-0e0b14ecac91">
<Properties>
<Name>HTTPСервис_Telegram</Name>
<Name>СервисТелеграм</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>HTTPСервис telegram</v8:content>
<v8:content>Сервис телеграм</v8:content>
</v8:item>
</Synonym>
<Comment/>
@@ -17,8 +17,13 @@
<ChildObjects>
<URLTemplate uuid="8c9514bd-6990-4128-80c1-c3bf77ae6769">
<Properties>
<Name>ШаблонURL1</Name>
<Synonym/>
<Name>Шаблон1</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Шаблон1</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Template>/update</Template>
</Properties>
@@ -41,8 +46,13 @@
</URLTemplate>
<URLTemplate uuid="fd611f01-bc5b-412f-9d6a-395f20daf8f7">
<Properties>
<Name>ШаблонURL2</Name>
<Synonym/>
<Name>Шаблон2</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Шаблон2</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Template>/info</Template>
</Properties>

View File

@@ -1,15 +1,15 @@

#Область ОбработчикиСобытий
Функция ШаблонURL1PostGetUpdate(Запрос)
Попытка
//ТелеграмОбщегоНазначения.ОбработатьИСохранитьОбновленияТелеграм(Запрос.ПолучитьТелоКакСтроку());
БотОбщегоНазначения.ОбработкаКомандыБота(Запрос.ПолучитьТелоКакСтроку());
Ответ = HttpОбщегоНазначенияВызовСервера.ОтветУспех();
Ответ = ХТТПОбщегоНазначенияВызовСервера.ОтветУспех();
Возврат Ответ;
Исключение
ЗаписьЖурналаРегистрации("Телеграм-бот.Ошибка", УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат HttpОбщегоНазначенияВызовСервера.ОтветОшибка();
ЗаписьЖурналаРегистрации("Телеграм-бот.Ошибка", УровеньЖурналаРегистрации.Ошибка, , ,
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат ХТТПОбщегоНазначенияВызовСервера.ОтветОшибка();
КонецПопытки;
КонецФункции
@@ -20,13 +20,15 @@
ОтветБотИнфо = ТелеграмМетодыВызовСервера.GetMe();
Если ОтветБотИнфо.Успех Тогда
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(HttpОбщегоНазначенияВызовСервера.ОбъектВСтрокуJson(ОтветБотИнфо.Тело));
Ответ.УстановитьТелоИзСтроки(ХТТПОбщегоНазначенияВызовСервера.ОбъектВСтрокуJson(ОтветБотИнфо.Тело));
Возврат Ответ;
КонецЕсли;
Исключение
ЗаписьЖурналаРегистрации("Телеграм-бот.Ошибка", УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат HttpОбщегоНазначенияВызовСервера.ОтветОшибка();
ЗаписьЖурналаРегистрации("Телеграм-бот.Ошибка", УровеньЖурналаРегистрации.Ошибка, , ,
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат ХТТПОбщегоНазначенияВызовСервера.ОтветОшибка();
КонецПопытки;
КонецФункции
#КонецОбласти

View File

@@ -0,0 +1,87 @@
#Область ПрограммныйИнтерфейс
Функция АктуализироватьВерсииКонфигураций() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОтслеживаниеВерсийКонфигураций.Конфигурация КАК Конфигурация,
| ОтслеживаниеВерсийКонфигураций.ИдЧата КАК ИдЧата,
| ОтслеживаниеВерсийКонфигураций.ТекущаяВерсия КАК ТекущаяВерсия,
| ОтслеживаниеВерсийКонфигураций.АктуальнаяВерсия КАК АктуальнаяВерсия
|ИЗ
| РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
КэшАктуальныхВерсий = РезультатЗапроса.Выгрузить().СкопироватьКолонки();
КэшАктуальныхВерсий.Колонки.Удалить("ИдЧата");
ОбработаноЗаписей = 0;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Конфигурация = ВыборкаДетальныеЗаписи.Конфигурация;
ТекущаяВерсия = ВыборкаДетальныеЗаписи.ТекущаяВерсия;
ИдЧата = ВыборкаДетальныеЗаписи.ИдЧата;
АктуальнаяВерсия = ПолучитьИзКэшаАктуальнуюВерсию(КэшАктуальныхВерсий, Конфигурация, ТекущаяВерсия);
Если АктуальнаяВерсия = Неопределено Тогда
Продолжить;
КонецЕсли;
Если АктуальнаяВерсия = ВыборкаДетальныеЗаписи.АктуальнаяВерсия Тогда
Продолжить;
КонецЕсли;
МенеджерЗаписи = РегистрыСведений.ОтслеживаниеВерсийКонфигураций.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Конфигурация = Конфигурация;
МенеджерЗаписи.ИдЧата = ИдЧата;
МенеджерЗаписи.ТекущаяВерсия = ТекущаяВерсия;
МенеджерЗаписи.АктуальнаяВерсия = АктуальнаяВерсия;
МенеджерЗаписи.Записать();
ОбработаноЗаписей = ОбработаноЗаписей + 1;
КонецЦикла;
Возврат ОбработаноЗаписей;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ПолучитьИзКэшаАктуальнуюВерсию(Кэш, Конфигурация, ТекущаяВерсия)
СтруктураОтбора = Новый Структура("Конфигурация, ТекущаяВерсия", Конфигурация, ТекущаяВерсия);
МассивСтрок = Кэш.НайтиСтроки(СтруктураОтбора);
Если МассивСтрок.Количество() <> 0 Тогда
Возврат МассивСтрок[0].АктуальнаяВерсия;
КонецЕсли;
Ответ = РаботаСОбновлениямиВызовСервера.АктуальнаяВерсияКонфигурации(Конфигурация, ТекущаяВерсия);
Если Ответ.Успех Тогда
АктуальнаяВерсияССервера = Ответ["Тело"]["configurationUpdateResponse"]["configurationVersion"];
Если АктуальнаяВерсияССервера = Неопределено Тогда
// Если запрос выполнен без ошибок и в запросе была передана актуальная версия - с сервера обновлений приходит null.
// Дополнительно проверим версию платформы, если что-то пришло, значит текущая версия существует
// и её назначаем актуальной. Таким образом отличаем некорректную версию текущей конфигурации
// от совпадения текущей и актуальной.
АктуальнаяВерсияПлатформы = Ответ["Тело"]["platformUpdateResponse"]["platformVersion"];
Если АктуальнаяВерсияПлатформы <> Неопределено Тогда
АктуальнаяВерсияССервера = ТекущаяВерсия;
КонецЕсли;
КонецЕсли;
НоваяСтрока = Кэш.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтруктураОтбора);
НоваяСтрока.АктуальнаяВерсия = АктуальнаяВерсияССервера;
Возврат АктуальнаяВерсияССервера;
КонецЕсли;
Возврат Неопределено;
КонецФункции
#КонецОбласти

View File

@@ -2,41 +2,41 @@
<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.19">
<InformationRegister uuid="fa99a49c-8f89-4d1c-bed9-ad8ae5f1f875">
<InternalInfo>
<xr:GeneratedType name="InformationRegisterRecord.ТелеграмСообщения" category="Record">
<xr:GeneratedType name="InformationRegisterRecord.ТелеграмИсторияСообщений" category="Record">
<xr:TypeId>9444c860-a15a-48eb-8b4c-29d90b5c8541</xr:TypeId>
<xr:ValueId>eca768ad-6630-4ee4-831d-cd6fd9764e3d</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterManager.ТелеграмСообщения" category="Manager">
<xr:GeneratedType name="InformationRegisterManager.ТелеграмИсторияСообщений" category="Manager">
<xr:TypeId>d628eea0-6995-470d-aecc-51d8bd8ed74c</xr:TypeId>
<xr:ValueId>1c4d0ec8-9752-4a4d-a549-70205ba4e912</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterSelection.ТелеграмСообщения" category="Selection">
<xr:GeneratedType name="InformationRegisterSelection.ТелеграмИсторияСообщений" category="Selection">
<xr:TypeId>0c0e64e8-b32e-4995-8a76-42bf05a83183</xr:TypeId>
<xr:ValueId>b1078888-faa2-407f-922d-032e4b6316c3</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterList.ТелеграмСообщения" category="List">
<xr:GeneratedType name="InformationRegisterList.ТелеграмИсторияСообщений" category="List">
<xr:TypeId>064168d2-83fe-4d6e-ac7f-0dea8e6f87ba</xr:TypeId>
<xr:ValueId>7c6a16a0-6839-4bc7-b6e4-39c69f23b01c</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterRecordSet.ТелеграмСообщения" category="RecordSet">
<xr:GeneratedType name="InformationRegisterRecordSet.ТелеграмИсторияСообщений" category="RecordSet">
<xr:TypeId>d3cf9ed0-1f6c-4914-adfe-1035aa3fbaa0</xr:TypeId>
<xr:ValueId>de6174d6-baf0-4a9f-be96-a20177e1f591</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterRecordKey.ТелеграмСообщения" category="RecordKey">
<xr:GeneratedType name="InformationRegisterRecordKey.ТелеграмИсторияСообщений" category="RecordKey">
<xr:TypeId>e3f0086a-be84-4744-b45d-f1c7bfb2d1e9</xr:TypeId>
<xr:ValueId>ccffa851-6e1c-4300-a1ee-f81650a30bcd</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterRecordManager.ТелеграмСообщения" category="RecordManager">
<xr:GeneratedType name="InformationRegisterRecordManager.ТелеграмИсторияСообщений" category="RecordManager">
<xr:TypeId>d3d49311-3925-4a11-bc57-fea0f92c011b</xr:TypeId>
<xr:ValueId>b272acb8-75cb-429a-9076-2a2c10e3edc0</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>ТелеграмСообщения</Name>
<Name>ТелеграмИсторияСообщений</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Телеграм сообщения</v8:content>
<v8:content>История сообщений</v8:content>
</v8:item>
</Synonym>
<Comment/>
@@ -75,7 +75,7 @@
</Synonym>
<Comment/>
<Type>
<v8:Type>cfg:CatalogRef.ТелеграмСообщение</v8:Type>
<v8:Type>cfg:CatalogRef.ТелеграмСообщения</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
@@ -200,7 +200,7 @@
</Synonym>
<Comment/>
<Type>
<v8:Type>cfg:CatalogRef.ТелеграмПользователь</v8:Type>
<v8:Type>cfg:CatalogRef.ТелеграмПользователи</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>

View File

@@ -0,0 +1,156 @@
<?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.19">
<InformationRegister uuid="d3461208-ab0d-48b0-a2fe-f4555454b5bf">
<InternalInfo>
<xr:GeneratedType name="InformationRegisterRecord.УведомленияОНовыхВерсиях" category="Record">
<xr:TypeId>1ddf54a2-3a5d-4946-b427-506bcd95309c</xr:TypeId>
<xr:ValueId>cdb2e881-03b3-48c3-9ec7-36462b294999</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterManager.УведомленияОНовыхВерсиях" category="Manager">
<xr:TypeId>eb27fce8-427d-4986-b690-8b604cfb6e06</xr:TypeId>
<xr:ValueId>dd7778d0-3d88-4d72-9401-ad365a283424</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterSelection.УведомленияОНовыхВерсиях" category="Selection">
<xr:TypeId>163d29b8-7d9a-4c51-8145-21104edd9cf0</xr:TypeId>
<xr:ValueId>1b5d9f41-7c3f-4236-a370-49896e8aaa4f</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterList.УведомленияОНовыхВерсиях" category="List">
<xr:TypeId>9af2c819-a19b-4b90-b979-ee6c3b018789</xr:TypeId>
<xr:ValueId>fa5f217a-afc0-4b7a-aa11-60b18156061b</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterRecordSet.УведомленияОНовыхВерсиях" category="RecordSet">
<xr:TypeId>e63c7fa6-bac4-472c-a645-8e7eb0d5a1a4</xr:TypeId>
<xr:ValueId>71240200-3f61-4922-8563-3eb04bb4f15a</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterRecordKey.УведомленияОНовыхВерсиях" category="RecordKey">
<xr:TypeId>3c8868ef-6bbc-4fb2-a0e6-6dcf2ad2e4fe</xr:TypeId>
<xr:ValueId>161d890d-6e0f-49ac-a1d3-b12797973f7d</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterRecordManager.УведомленияОНовыхВерсиях" category="RecordManager">
<xr:TypeId>c75317f4-5fca-4b82-859c-adcce2cdcd0f</xr:TypeId>
<xr:ValueId>0c55617c-1757-49b7-a647-f6b027904fcb</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>УведомленияОНовыхВерсиях</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Уведомления о новых версиях</v8:content>
</v8:item>
</Synonym>
<Comment/>
<UseStandardCommands>true</UseStandardCommands>
<EditType>InDialog</EditType>
<DefaultRecordForm/>
<DefaultListForm/>
<AuxiliaryRecordForm/>
<AuxiliaryListForm/>
<InformationRegisterPeriodicity>Nonperiodical</InformationRegisterPeriodicity>
<WriteMode>Independent</WriteMode>
<MainFilterOnPeriod>false</MainFilterOnPeriod>
<IncludeHelpInContents>false</IncludeHelpInContents>
<DataLockControlMode>Managed</DataLockControlMode>
<FullTextSearch>DontUse</FullTextSearch>
<EnableTotalsSliceFirst>false</EnableTotalsSliceFirst>
<EnableTotalsSliceLast>false</EnableTotalsSliceLast>
<RecordPresentation/>
<ExtendedRecordPresentation/>
<ListPresentation/>
<ExtendedListPresentation/>
<Explanation/>
<DataHistory>DontUse</DataHistory>
<UpdateDataHistoryImmediatelyAfterWrite>false</UpdateDataHistoryImmediatelyAfterWrite>
<ExecuteAfterWriteDataHistoryVersionProcessing>false</ExecuteAfterWriteDataHistoryVersionProcessing>
</Properties>
<ChildObjects>
<Resource uuid="cdc02f8b-b82c-48d9-b936-bb2515c15258">
<Properties>
<Name>ОтправлятьУведомления</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отправлять уведомления</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</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>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
<DataHistory>Use</DataHistory>
</Properties>
</Resource>
<Dimension uuid="3d0a0b1e-a7f9-4b8d-b95c-6e23973e0896">
<Properties>
<Name>ИдЧата</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Ид чата</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:decimal</v8:Type>
<v8:NumberQualifiers>
<v8:Digits>15</v8:Digits>
<v8:FractionDigits>0</v8:FractionDigits>
<v8:AllowedSign>Any</v8:AllowedSign>
</v8:NumberQualifiers>
</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>
<Master>false</Master>
<MainFilter>true</MainFilter>
<DenyIncompleteValues>false</DenyIncompleteValues>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
<DataHistory>Use</DataHistory>
<TypeReductionMode>TransformValues</TypeReductionMode>
</Properties>
</Dimension>
</ChildObjects>
</InformationRegister>
</MetaDataObject>

View File

@@ -0,0 +1,22 @@
#Область ПрограммныйИнтерфейс
Функция УправлениеОповещениями(ИдЧата, Включить) Экспорт
МенеджерЗаписи = СоздатьМенеджерЗаписи();
МенеджерЗаписи.ИдЧата = ИдЧата;
МенеджерЗаписи.Прочитать();
Если МенеджерЗаписи.Выбран() Тогда
Если МенеджерЗаписи.ОтправлятьУведомления = Включить Тогда
Возврат СтрШаблон("Оповещения уже %1", ?(Включить, "включены", "выключены"));
Иначе
МенеджерЗаписи.ОтправлятьУведомления = Включить;
МенеджерЗаписи.Записать();
Возврат СтрШаблон("Оповещения %1", ?(Включить, "включены &#128265", "выключены &#128263"));
КонецЕсли;
КонецЕсли;
Возврат СтрШаблон("Не удалось %1 оповещения", ?(Включить, "включить", "выключить"));
КонецФункции
#КонецОбласти

View File

@@ -1,22 +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.19">
<Form uuid="9babb459-ecb3-4084-9cb5-1bb9ef62606e">
<Role uuid="75596ea7-f58a-40d8-b6a8-c7d57ea30fdc">
<Properties>
<Name>Форма</Name>
<Name>АдминистраторСистемы</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
<v8:content>Администратор системы</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</Role>
</MetaDataObject>

View File

@@ -0,0 +1,93 @@
<?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.19">
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.Конфигурация</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<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>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
</Rights>

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.19">
<Role uuid="89613b54-254e-48c5-a2aa-99499ec7e0d5">
<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,17 @@
<?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.19">
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.Конфигурация</name>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>true</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>true</value>
</right>
</object>
</Rights>

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.19">
<Role uuid="7b81670d-7d17-4a08-9595-a9e6604513be">
<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,969 @@
<?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.19">
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>DataProcessor.НачальноеЗаполнениеДанных</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.ТелеграмПользователи</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Insert</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>Delete</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>InteractiveInsert</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>InteractiveSetDeletionMark</name>
<value>true</value>
</right>
<right>
<name>InteractiveClearDeletionMark</name>
<value>true</value>
</right>
<right>
<name>InteractiveDeleteMarked</name>
<value>true</value>
</right>
<right>
<name>InputByString</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>Subsystem.Администрирование</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.ТелеграмТокен</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.ТелеграмСообщения</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Insert</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>Delete</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>InteractiveInsert</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>InteractiveSetDeletionMark</name>
<value>true</value>
</right>
<right>
<name>InteractiveClearDeletionMark</name>
<value>true</value>
</right>
<right>
<name>InteractiveDeleteMarked</name>
<value>true</value>
</right>
<right>
<name>InputByString</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.НачальноеЗаполнениеВыполнено</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.ЛогироватьHttpЗапросы</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>HTTPService.СервисТелеграм.URLTemplate.Шаблон2.Method.GeBotInfo</name>
<right>
<name>Use</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.ТелеграмДокументы</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Insert</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>Delete</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>InteractiveInsert</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>InteractiveSetDeletionMark</name>
<value>true</value>
</right>
<right>
<name>InteractiveClearDeletionMark</name>
<value>true</value>
</right>
<right>
<name>InteractiveDeleteMarked</name>
<value>true</value>
</right>
<right>
<name>InputByString</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>Document.ЛогиХТТПЗапросов</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Insert</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>Delete</name>
<value>true</value>
</right>
<right>
<name>Posting</name>
<value>true</value>
</right>
<right>
<name>UndoPosting</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>InteractiveInsert</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>InteractiveSetDeletionMark</name>
<value>true</value>
</right>
<right>
<name>InteractiveClearDeletionMark</name>
<value>true</value>
</right>
<right>
<name>InteractiveDeleteMarked</name>
<value>true</value>
</right>
<right>
<name>InteractivePosting</name>
<value>true</value>
</right>
<right>
<name>InteractivePostingRegular</name>
<value>true</value>
</right>
<right>
<name>InteractiveUndoPosting</name>
<value>true</value>
</right>
<right>
<name>InteractiveChangeOfPosted</name>
<value>true</value>
</right>
<right>
<name>InputByString</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ОтслеживаниеВерсийКонфигураций</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>TotalsControl</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>Subsystem.ТелеграмБот</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>CommonForm.Настройки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.ТелеграмИспользоватьВебХук</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.УведомленияОНовыхВерсиях</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>TotalsControl</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.Конфигурация</name>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<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>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.ТелеграмВебХук</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>HTTPService.СервисТелеграм.URLTemplate.Шаблон1.Method.PostGetUpdate</name>
<right>
<name>Use</name>
<value>true</value>
</right>
</object>
<object>
<name>Subsystem.Обновления</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ТелеграмИсторияСообщений</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>TotalsControl</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.Конфигурации</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Insert</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>Delete</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>InteractiveInsert</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>InteractiveSetDeletionMark</name>
<value>true</value>
</right>
<right>
<name>InteractiveClearDeletionMark</name>
<value>true</value>
</right>
<right>
<name>InteractiveDeleteMarked</name>
<value>true</value>
</right>
<right>
<name>InputByString</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
</Rights>

View File

@@ -1,20 +1,20 @@
<?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.19">
<ScheduledJob uuid="4cf78f82-d10a-4ca4-88f3-1d4a0b0198de">
<ScheduledJob uuid="79975f8c-5a0b-4b2b-b314-5e6574a7b213">
<Properties>
<Name>ПроверкаОбновленийТелеграм</Name>
<Name>ПроверкаАктуальностиКонфигураций</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Проверка обновлений телеграм</v8:content>
<v8:content>Проверка актуальности конфигураций</v8:content>
</v8:item>
</Synonym>
<Comment/>
<MethodName>CommonModule.ТелеграмРегламент.ПроверкаОбновленийПоРасписанию</MethodName>
<MethodName>CommonModule.ОбновленияРегламент.ПроверкаНеактуальныхВерсийКонфигураций</MethodName>
<Description/>
<Key/>
<Use>false</Use>
<Predefined>false</Predefined>
<Use>true</Use>
<Predefined>true</Predefined>
<RestartCountOnFailure>3</RestartCountOnFailure>
<RestartIntervalOnFailure>10</RestartIntervalOnFailure>
</Properties>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<JobSchedule xmlns="http://v8.1c.ru/8.3/xcf/extrnprops" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.19">
<Schedule BeginDate="0001-01-01" EndDate="0001-01-01" BeginTime="09:00:00" EndTime="18:00:00" CompletionTime="00:00:00" CompletionInterval="0" RepeatPeriodInDay="14400" RepeatPause="0" WeekDayInMonth="0" DayInMonth="0" WeeksPeriod="1" DaysRepeatPeriod="1">
<ent:WeekDays>1 2 3 4 5</ent:WeekDays>
<ent:Months>1 2 3 4 5 6 7 8 9 10 11 12</ent:Months>
<ent:DetailedDailySchedules BeginDate="0001-01-01" EndDate="0001-01-01" BeginTime="09:00:00" EndTime="18:00:00" CompletionTime="00:00:00" CompletionInterval="0" RepeatPeriodInDay="14400" RepeatPause="0" WeekDayInMonth="0" DayInMonth="0" WeeksPeriod="1" DaysRepeatPeriod="0">
<ent:WeekDays/>
<ent:Months/>
</ent:DetailedDailySchedules>
</Schedule>
</JobSchedule>

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<JobSchedule xmlns="http://v8.1c.ru/8.3/xcf/extrnprops" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.19">
<Schedule BeginDate="0001-01-01" EndDate="0001-01-01" BeginTime="00:00:00" EndTime="00:00:00" CompletionTime="00:00:00" CompletionInterval="0" RepeatPeriodInDay="15" RepeatPause="0" WeekDayInMonth="0" DayInMonth="0" WeeksPeriod="1" DaysRepeatPeriod="1">
<ent:WeekDays>1 2 3 4 5 6 7</ent:WeekDays>
<ent:Months>1 2 3 4 5 6 7 8 9 10 11 12</ent:Months>
</Schedule>
</JobSchedule>

View File

@@ -0,0 +1,26 @@
<?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.19">
<Subsystem uuid="191ccf7b-8705-44d7-a181-a6cfe9eee132">
<Properties>
<Name>Администрирование</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Администрирование</v8:content>
</v8:item>
</Synonym>
<Comment/>
<IncludeHelpInContents>true</IncludeHelpInContents>
<IncludeInCommandInterface>true</IncludeInCommandInterface>
<UseOneCommand>false</UseOneCommand>
<Explanation/>
<Picture/>
<Content>
<xr:Item xsi:type="xr:MDObjectRef">CommonForm.Настройки</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">DataProcessor.НачальноеЗаполнениеДанных</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Document.ЛогиХТТПЗапросов</xr:Item>
</Content>
</Properties>
<ChildObjects/>
</Subsystem>
</MetaDataObject>

View File

@@ -16,11 +16,15 @@
<Explanation/>
<Picture/>
<Content>
<xr:Item xsi:type="xr:MDObjectRef">DataProcessor.РаботаСОбновлениями</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">6a6de453-1c7e-4af2-9ed7-b9b7e86af49a</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">InformationRegister.ОтслеживаниеВерсийКонфигураций</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Catalog.Конфигурации</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.ТелеграмСтатусДиалога</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.ВидыДанныхКоллбэков</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.ВидыДанныхОбратныхВызовов</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">ScheduledJob.ПроверкаАктуальностиКонфигураций</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.ОбновленияРегламент</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">InformationRegister.УведомленияОНовыхВерсиях</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.РаботаСОбновлениямиВызовСервера</xr:Item>
</Content>
</Properties>
<ChildObjects/>

View File

@@ -17,20 +17,23 @@
<Picture/>
<Content>
<xr:Item xsi:type="xr:MDObjectRef">Constant.ТелеграмТокен</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">InformationRegister.ТелеграмСообщения</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">DataProcessor.РаботаССообщениями</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Catalog.ТелеграмПользователь</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Catalog.ТелеграмСообщение</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">HTTPService.HTTPСервис_Telegram</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">InformationRegister.ТелеграмИсторияСообщений</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">168a0153-7a94-49dc-9f9a-719c8b58bd1c</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Catalog.ТелеграмПользователи</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Catalog.ТелеграмСообщения</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">HTTPService.СервисТелеграм</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Constant.ТелеграмВебХук</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonForm.ТелеграмВебХук</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Constant.ЛогироватьHttpЗапросы</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Document.ЛогHttpЗапроса</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Catalog.ТелеграмДокумент</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Document.ЛогиХТТПЗапросов</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Catalog.ТелеграмДокументы</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonPicture.КартинкаБот</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.ТелеграмРежимРазметки</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.ТелеграмСтатусДиалога</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.ВидыДанныхКоллбэков</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Enum.ВидыДанныхОбратныхВызовов</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.БотОбщегоНазначения</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonModule.ТелеграмРаботаСКлавиатурой</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Constant.ТелеграмИспользоватьВебХук</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">FunctionalOption.ТелеграмИспользоватьВебХук</xr:Item>
</Content>
</Properties>
<ChildObjects/>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<CommandInterface xmlns="http://v8.1c.ru/8.3/xcf/extrnprops" 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.19">
<CommandsVisibility>
<Command name="Document.ЛогиХТТПЗапросов.StandardCommand.OpenList">
<Visibility>
<xr:Common>false</xr:Common>
</Visibility>
</Command>
</CommandsVisibility>
</CommandInterface>

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<VERSION>17</VERSION>
<VERSION>44</VERSION>