Compare commits

39 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
f73fd3ce5b Рефакторинг по замечаниям Sonarqube
- Снял галку "Вызов сервера"
2025-06-10 10:01:06 +03:00
d532d38991 Рефакторинг по замечаниям Sonarqube
- Исправлено форматирование модуля
2025-06-10 09:58:17 +03:00
425307d175 Рефакторинг по замечаниям Sonarqube
- Проставил галки обчного приложения в общих модулях. Иначе ругалось на Общий модуль недопустимого типа.
- Удалил закомментированный код.
2025-06-10 09:55:40 +03:00
aeb6776a9b Рефакторинг по замечаниям Sonarqube
- Исправлено форматирование модуля
2025-06-10 09:27:12 +03:00
82 changed files with 3000 additions and 1560 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"> <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"> <Catalog uuid="60022782-c6f7-4159-929b-db83d2828a89">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="CatalogObject.ТелеграмДокумент" category="Object"> <xr:GeneratedType name="CatalogObject.ТелеграмДокументы" category="Object">
<xr:TypeId>79fc9728-5c36-4c76-8dd3-304174405d63</xr:TypeId> <xr:TypeId>79fc9728-5c36-4c76-8dd3-304174405d63</xr:TypeId>
<xr:ValueId>cdcdd7f9-03b6-48e9-98eb-e0ba4fa6e7bb</xr:ValueId> <xr:ValueId>cdcdd7f9-03b6-48e9-98eb-e0ba4fa6e7bb</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="CatalogRef.ТелеграмДокумент" category="Ref"> <xr:GeneratedType name="CatalogRef.ТелеграмДокументы" category="Ref">
<xr:TypeId>2fac0edc-75c5-4f25-b2bc-a8a1b5499fd3</xr:TypeId> <xr:TypeId>2fac0edc-75c5-4f25-b2bc-a8a1b5499fd3</xr:TypeId>
<xr:ValueId>e857f5ed-7f18-4fde-9155-eb2cf4041d60</xr:ValueId> <xr:ValueId>e857f5ed-7f18-4fde-9155-eb2cf4041d60</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="CatalogSelection.ТелеграмДокумент" category="Selection"> <xr:GeneratedType name="CatalogSelection.ТелеграмДокументы" category="Selection">
<xr:TypeId>6ccceb70-b829-4d4e-a3f4-21fb3d9d3147</xr:TypeId> <xr:TypeId>6ccceb70-b829-4d4e-a3f4-21fb3d9d3147</xr:TypeId>
<xr:ValueId>ac14aa95-fdda-4e82-99a2-4c93f4ddb7cf</xr:ValueId> <xr:ValueId>ac14aa95-fdda-4e82-99a2-4c93f4ddb7cf</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="CatalogList.ТелеграмДокумент" category="List"> <xr:GeneratedType name="CatalogList.ТелеграмДокументы" category="List">
<xr:TypeId>cab9b204-3208-4e79-a2d4-217df0367bf3</xr:TypeId> <xr:TypeId>cab9b204-3208-4e79-a2d4-217df0367bf3</xr:TypeId>
<xr:ValueId>9e82e379-59ad-4891-b7e5-3831151f7791</xr:ValueId> <xr:ValueId>9e82e379-59ad-4891-b7e5-3831151f7791</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="CatalogManager.ТелеграмДокумент" category="Manager"> <xr:GeneratedType name="CatalogManager.ТелеграмДокументы" category="Manager">
<xr:TypeId>9df89e29-979d-4bcd-beb3-c10b2eba3ee5</xr:TypeId> <xr:TypeId>9df89e29-979d-4bcd-beb3-c10b2eba3ee5</xr:TypeId>
<xr:ValueId>860e25d0-f5de-4c0b-a880-a42fb7296c13</xr:ValueId> <xr:ValueId>860e25d0-f5de-4c0b-a880-a42fb7296c13</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
</InternalInfo> </InternalInfo>
<Properties> <Properties>
<Name>ТелеграмДокумент</Name> <Name>ТелеграмДокументы</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Телеграм документ</v8:content> <v8:content>Вложенные файлы</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <Comment/>
@@ -54,13 +54,13 @@
<QuickChoice>false</QuickChoice> <QuickChoice>false</QuickChoice>
<ChoiceMode>BothWays</ChoiceMode> <ChoiceMode>BothWays</ChoiceMode>
<InputByString> <InputByString>
<xr:Field>Catalog.ТелеграмДокумент.StandardAttribute.Description</xr:Field> <xr:Field>Catalog.ТелеграмДокументы.StandardAttribute.Description</xr:Field>
<xr:Field>Catalog.ТелеграмДокумент.StandardAttribute.Code</xr:Field> <xr:Field>Catalog.ТелеграмДокументы.StandardAttribute.Code</xr:Field>
</InputByString> </InputByString>
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString> <SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString> <FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString> <ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
<DefaultObjectForm>Catalog.ТелеграмДокумент.Form.ФормаЭлемента</DefaultObjectForm> <DefaultObjectForm>Catalog.ТелеграмДокументы.Form.ФормаЭлемента</DefaultObjectForm>
<DefaultFolderForm/> <DefaultFolderForm/>
<DefaultListForm/> <DefaultListForm/>
<DefaultChoiceForm/> <DefaultChoiceForm/>

View File

@@ -3,6 +3,9 @@
<WindowOpeningMode>LockOwnerWindow</WindowOpeningMode> <WindowOpeningMode>LockOwnerWindow</WindowOpeningMode>
<UseForFoldersAndItems>Items</UseForFoldersAndItems> <UseForFoldersAndItems>Items</UseForFoldersAndItems>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/> <AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<Events>
<Event name="BeforeClose">ПередЗакрытием</Event>
</Events>
<ChildItems> <ChildItems>
<InputField name="Код" id="1"> <InputField name="Код" id="1">
<DataPath>Объект.Code</DataPath> <DataPath>Объект.Code</DataPath>
@@ -50,36 +53,51 @@
<ContextMenu name="file_sizeКонтекстноеМеню" id="17"/> <ContextMenu name="file_sizeКонтекстноеМеню" id="17"/>
<ExtendedTooltip name="file_sizeРасширеннаяПодсказка" id="18"/> <ExtendedTooltip name="file_sizeРасширеннаяПодсказка" id="18"/>
</InputField> </InputField>
<Button name="ПолучитьФайл" id="19"> <Button name="СохранитьФайл" id="21">
<Type>UsualButton</Type> <Type>UsualButton</Type>
<CommandName>Form.Command.ПросмотрФайла</CommandName> <CommandName>Form.Command.СохранитьФайл</CommandName>
<ExtendedTooltip name="ПолучитьФайлРасширеннаяПодсказка" id="20"/> <ExtendedTooltip name="СохранитьФайлРасширеннаяПодсказка" id="22"/>
</Button> </Button>
</ChildItems> </ChildItems>
<Attributes> <Attributes>
<Attribute name="Объект" id="1"> <Attribute name="Объект" id="1">
<Type> <Type>
<v8:Type>cfg:CatalogObject.ТелеграмДокумент</v8:Type> <v8:Type>cfg:CatalogObject.ТелеграмДокументы</v8:Type>
</Type> </Type>
<MainAttribute>true</MainAttribute> <MainAttribute>true</MainAttribute>
<SavedData>true</SavedData> <SavedData>true</SavedData>
</Attribute> </Attribute>
</Attributes> <Attribute name="АдресВременногоХранилища" id="2">
<Commands>
<Command name="ПросмотрФайла" id="1">
<Title> <Title>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <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> </v8:item>
</Title> </Title>
<ToolTip> <ToolTip>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Просмотр файла</v8:content> <v8:content>Сохранить файл</v8:content>
</v8:item> </v8:item>
</ToolTip> </ToolTip>
<Action>ПросмотрФайла</Action> <Action>СохранениеФайла</Action>
</Command> </Command>
</Commands> </Commands>
</Form> </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"> <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"> <Catalog uuid="18f1501f-401f-4148-9beb-d450ca3baa64">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="CatalogObject.ТелеграмПользователь" category="Object"> <xr:GeneratedType name="CatalogObject.ТелеграмПользователи" category="Object">
<xr:TypeId>771bbf76-6560-490f-bddf-4b57282bb979</xr:TypeId> <xr:TypeId>771bbf76-6560-490f-bddf-4b57282bb979</xr:TypeId>
<xr:ValueId>e6f77041-f666-4790-b64e-0346b7ba6d24</xr:ValueId> <xr:ValueId>e6f77041-f666-4790-b64e-0346b7ba6d24</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="CatalogRef.ТелеграмПользователь" category="Ref"> <xr:GeneratedType name="CatalogRef.ТелеграмПользователи" category="Ref">
<xr:TypeId>a3385365-db96-4682-a1f0-05a799ca7d13</xr:TypeId> <xr:TypeId>a3385365-db96-4682-a1f0-05a799ca7d13</xr:TypeId>
<xr:ValueId>aad9e481-4b51-41bd-bbcc-841dfe7d7fea</xr:ValueId> <xr:ValueId>aad9e481-4b51-41bd-bbcc-841dfe7d7fea</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="CatalogSelection.ТелеграмПользователь" category="Selection"> <xr:GeneratedType name="CatalogSelection.ТелеграмПользователи" category="Selection">
<xr:TypeId>21ffa4af-08a6-43da-bf5c-2a6cec872acb</xr:TypeId> <xr:TypeId>21ffa4af-08a6-43da-bf5c-2a6cec872acb</xr:TypeId>
<xr:ValueId>2d2e8ba9-725d-4052-8709-d150e516b287</xr:ValueId> <xr:ValueId>2d2e8ba9-725d-4052-8709-d150e516b287</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="CatalogList.ТелеграмПользователь" category="List"> <xr:GeneratedType name="CatalogList.ТелеграмПользователи" category="List">
<xr:TypeId>57848e3d-1e86-47e4-8af0-6131e4d2cf11</xr:TypeId> <xr:TypeId>57848e3d-1e86-47e4-8af0-6131e4d2cf11</xr:TypeId>
<xr:ValueId>ee125c26-eed1-4fec-9caf-f070ac7e16e7</xr:ValueId> <xr:ValueId>ee125c26-eed1-4fec-9caf-f070ac7e16e7</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="CatalogManager.ТелеграмПользователь" category="Manager"> <xr:GeneratedType name="CatalogManager.ТелеграмПользователи" category="Manager">
<xr:TypeId>7e7dd14a-ed48-4c12-a6a3-be34e103c20e</xr:TypeId> <xr:TypeId>7e7dd14a-ed48-4c12-a6a3-be34e103c20e</xr:TypeId>
<xr:ValueId>ada062d3-22c5-4398-8454-e271927d264c</xr:ValueId> <xr:ValueId>ada062d3-22c5-4398-8454-e271927d264c</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
</InternalInfo> </InternalInfo>
<Properties> <Properties>
<Name>ТелеграмПользователь</Name> <Name>ТелеграмПользователи</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Телеграм пользователь</v8:content> <v8:content>Пользователи</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <Comment/>
@@ -54,8 +54,8 @@
<QuickChoice>false</QuickChoice> <QuickChoice>false</QuickChoice>
<ChoiceMode>BothWays</ChoiceMode> <ChoiceMode>BothWays</ChoiceMode>
<InputByString> <InputByString>
<xr:Field>Catalog.ТелеграмПользователь.StandardAttribute.Description</xr:Field> <xr:Field>Catalog.ТелеграмПользователи.StandardAttribute.Description</xr:Field>
<xr:Field>Catalog.ТелеграмПользователь.StandardAttribute.Code</xr:Field> <xr:Field>Catalog.ТелеграмПользователи.StandardAttribute.Code</xr:Field>
</InputByString> </InputByString>
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString> <SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString> <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"> <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"> <Catalog uuid="2a31c1a9-1ae9-42df-a414-339628101fc7">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="CatalogObject.ТелеграмСообщение" category="Object"> <xr:GeneratedType name="CatalogObject.ТелеграмСообщения" category="Object">
<xr:TypeId>f2bf8442-369f-4ac3-8d31-0da98dc3c6e7</xr:TypeId> <xr:TypeId>f2bf8442-369f-4ac3-8d31-0da98dc3c6e7</xr:TypeId>
<xr:ValueId>78de350c-a632-47bf-b8d9-14a931a433bc</xr:ValueId> <xr:ValueId>78de350c-a632-47bf-b8d9-14a931a433bc</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="CatalogRef.ТелеграмСообщение" category="Ref"> <xr:GeneratedType name="CatalogRef.ТелеграмСообщения" category="Ref">
<xr:TypeId>c171c60d-856c-4711-9f89-44d38a4ca0b5</xr:TypeId> <xr:TypeId>c171c60d-856c-4711-9f89-44d38a4ca0b5</xr:TypeId>
<xr:ValueId>df29ebc7-d9a6-40b2-bf81-4b8b55edc9ca</xr:ValueId> <xr:ValueId>df29ebc7-d9a6-40b2-bf81-4b8b55edc9ca</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="CatalogSelection.ТелеграмСообщение" category="Selection"> <xr:GeneratedType name="CatalogSelection.ТелеграмСообщения" category="Selection">
<xr:TypeId>202a8ac1-4473-44de-8db2-b844bc3a5de9</xr:TypeId> <xr:TypeId>202a8ac1-4473-44de-8db2-b844bc3a5de9</xr:TypeId>
<xr:ValueId>3f6bdd2b-54f0-45fc-8b79-9556b41fa48d</xr:ValueId> <xr:ValueId>3f6bdd2b-54f0-45fc-8b79-9556b41fa48d</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="CatalogList.ТелеграмСообщение" category="List"> <xr:GeneratedType name="CatalogList.ТелеграмСообщения" category="List">
<xr:TypeId>e7b590ed-fc6d-4d6a-9724-bc68170e3d5b</xr:TypeId> <xr:TypeId>e7b590ed-fc6d-4d6a-9724-bc68170e3d5b</xr:TypeId>
<xr:ValueId>b6014560-6014-4b02-9c70-8b513ffb1486</xr:ValueId> <xr:ValueId>b6014560-6014-4b02-9c70-8b513ffb1486</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="CatalogManager.ТелеграмСообщение" category="Manager"> <xr:GeneratedType name="CatalogManager.ТелеграмСообщения" category="Manager">
<xr:TypeId>8d1e4c24-ea65-462d-81a4-d5db7c9fef57</xr:TypeId> <xr:TypeId>8d1e4c24-ea65-462d-81a4-d5db7c9fef57</xr:TypeId>
<xr:ValueId>def7c3f6-b096-41bf-aafe-07390a894118</xr:ValueId> <xr:ValueId>def7c3f6-b096-41bf-aafe-07390a894118</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
</InternalInfo> </InternalInfo>
<Properties> <Properties>
<Name>ТелеграмСообщение</Name> <Name>ТелеграмСообщения</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Телеграм сообщение</v8:content> <v8:content>Сообщения</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <Comment/>
@@ -54,8 +54,8 @@
<QuickChoice>false</QuickChoice> <QuickChoice>false</QuickChoice>
<ChoiceMode>BothWays</ChoiceMode> <ChoiceMode>BothWays</ChoiceMode>
<InputByString> <InputByString>
<xr:Field>Catalog.ТелеграмСообщение.StandardAttribute.Description</xr:Field> <xr:Field>Catalog.ТелеграмСообщения.StandardAttribute.Description</xr:Field>
<xr:Field>Catalog.ТелеграмСообщение.StandardAttribute.Code</xr:Field> <xr:Field>Catalog.ТелеграмСообщения.StandardAttribute.Code</xr:Field>
</InputByString> </InputByString>
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString> <SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString> <FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
@@ -230,7 +230,7 @@
</Synonym> </Synonym>
<Comment/> <Comment/>
<Type> <Type>
<v8:Type>cfg:CatalogRef.ТелеграмПользователь</v8:Type> <v8:Type>cfg:CatalogRef.ТелеграмПользователи</v8:Type>
</Type> </Type>
<PasswordMode>false</PasswordMode> <PasswordMode>false</PasswordMode>
<Format/> <Format/>
@@ -270,7 +270,7 @@
</Synonym> </Synonym>
<Comment/> <Comment/>
<Type> <Type>
<v8:Type>cfg:CatalogRef.ТелеграмДокумент</v8:Type> <v8:Type>cfg:CatalogRef.ТелеграмДокументы</v8:Type>
</Type> </Type>
<PasswordMode>false</PasswordMode> <PasswordMode>false</PasswordMode>
<Format/> <Format/>

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <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> <Properties>
<Name>ТелеграмВебХук</Name> <Name>Настройки</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Телеграм веб хук</v8:content> <v8:content>Настройки</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <Comment/>
@@ -16,7 +16,7 @@
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value> <v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value> <v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes> </UsePurposes>
<UseStandardCommands>false</UseStandardCommands> <UseStandardCommands>true</UseStandardCommands>
<ExtendedPresentation/> <ExtendedPresentation/>
<Explanation/> <Explanation/>
</Properties> </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

@@ -14,7 +14,7 @@
<ClientManagedApplication>false</ClientManagedApplication> <ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server> <Server>true</Server>
<ExternalConnection>true</ExternalConnection> <ExternalConnection>true</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication> <ClientOrdinaryApplication>true</ClientOrdinaryApplication>
<ServerCall>false</ServerCall> <ServerCall>false</ServerCall>
<Privileged>false</Privileged> <Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse> <ReturnValuesReuse>DontUse</ReturnValuesReuse>

View File

@@ -1,33 +1,18 @@
#Область ПрограммныйИнтерфейс
#Область ПрограммныйИнтерфейс
Процедура ОбработкаКомандыБота(Тело) Экспорт Процедура ОбработкаКомандыБота(Тело) Экспорт
МассивОбновленийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Тело); МассивОбновленийТелеграм = ТелеграмОбщегоНазначенияВызовСервера.ОбновленияТелеграм(Тело);
Для каждого ОбновлениеТелеграм Из МассивОбновленийТелеграм Цикл Для каждого ОбновлениеТелеграм Из МассивОбновленийТелеграм Цикл
ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(ОбновлениеТелеграм); ТелеграмОбщегоНазначенияВызовСервера.СохранитьСообщениеВБазу(ОбновлениеТелеграм);
ДанныеПользователя = РаботаСОбновлениямиВызовСервера.ПолучитьДанныеПользователя(ОбновлениеТелеграм.ИдЧата);
Если ОбновлениеТелеграм.Свойство("ИдСообщения") Тогда Если ОбновлениеТелеграм.Свойство("ИдСообщения") Тогда
Если ОбновлениеТелеграм.Сообщение.text = "/start" Тогда ОбработатьСообщение(ОбновлениеТелеграм);
ОбработатьКомандуСтарт(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/subscribe" Тогда
ОбработатьКомандуПодписки(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/add" Тогда
ОбработатьКомандуДобавитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/delete" Тогда
ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли ДанныеПользователя <> Неопределено И ДанныеПользователя.СтатусДиалога =
Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии Тогда
ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя);
КонецЕсли;
ИначеЕсли ОбновлениеТелеграм.Свойство("ИдКоллбэка") <> Неопределено Тогда ИначеЕсли ОбновлениеТелеграм.Свойство("ИдКоллбэка") <> Неопределено Тогда
Данные = ОбновлениеТелеграм.ДанныеКоллбэка; ОбработатьКоллбэк(ОбновлениеТелеграм);
Если СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.AddVersion)) Тогда Иначе
ДобавитьКонфигурациюВСписокОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата); Продолжить;
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.DeleteVersion)) Тогда
УдалитьКонфигурациюИзСпискаОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -37,9 +22,54 @@
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
Процедура ОбработатьСообщение(ОбновлениеТелеграм)
ДанныеПользователя = РаботаСОбновлениямиВызовСервера.ДанныеПользователя(ОбновлениеТелеграм.ИдЧата);
КомандаДляОбработки = ОбновлениеТелеграм.Сообщение.text;
Если КомандаДляОбработки = "/start" Тогда
ОбработатьКомандуСтарт(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/subscribe" Тогда
ОбработатьКомандуПодписки(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/add" Тогда
ОбработатьКомандуДобавитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/delete" Тогда
ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/notify_on" Тогда
ОбработатьКомандуВключитьОповещения(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/notify_off" Тогда
ОбработатьКомандуВыключитьОповещения(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/status" Тогда
ОбработатьКомандуСтатусКонфигурации(ОбновлениеТелеграм);
ИначеЕсли КомандаДляОбработки = "/help" Тогда
ОбработатьКомандуВыводаПодсказки(ОбновлениеТелеграм);
ИначеЕсли ДанныеПользователя <> Неопределено И ДанныеПользователя.СтатусДиалога =
Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии Тогда
ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя);
Иначе
ОбработатьНеизвестнуюКоманду(ОбновлениеТелеграм);
КонецЕсли;
КонецПроцедуры
Процедура ОбработатьКоллбэк(ОбновлениеТелеграм)
Данные = ОбновлениеТелеграм.ДанныеКоллбэка;
Если СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.AddVersion)) Тогда
ДобавитьКонфигурациюВСписокОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.DeleteVersion)) Тогда
УдалитьКонфигурациюИзСпискаОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.GetStatus)) Тогда
ПолучитьДанныеСтатусаКонфигурации(Данные, ОбновлениеТелеграм.ИдЧата);
Иначе
ОбработатьНеизвестнуюКоманду(ОбновлениеТелеграм);
КонецЕсли;
КонецПроцедуры
Процедура ДобавитьКонфигурациюВСписокОтслеживания(ТекстСообщения, ИдЧата) Процедура ДобавитьКонфигурациюВСписокОтслеживания(ТекстСообщения, ИдЧата)
Команда = XMLСтрока(Перечисления.ВидыДанныхКоллбэков.AddVersion); Команда = XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.AddVersion);
Если НЕ СтрНачинаетсяС(ТекстСообщения, Команда) Тогда Если НЕ СтрНачинаетсяС(ТекстСообщения, Команда) Тогда
Возврат; Возврат;
@@ -50,13 +80,12 @@
Конфигурация = РаботаСОбновлениямиВызовСервера.КонфигурацияПоИмени(ИмяКонфигурации); Конфигурация = РаботаСОбновлениямиВызовСервера.КонфигурацияПоИмени(ИмяКонфигурации);
Если Конфигурация <> Неопределено Тогда Если Конфигурация <> Неопределено Тогда
ТекстОтвета = СтрШаблон("Отлично, добавляем в список конфигурацию ""%1"".", Конфигурация.Наименование) + Символы.ПС + ТекстОтвета = СтрШаблон("Отлично, добавляем в список конфигурацию ""%1"".", Конфигурация.Наименование) + Символы.ПС
Символы.ВК + Символы.ПС + + Символы.ВК + Символы.ПС
"Для корректного отслеживания обновлений нужно ввести версию конфигурации (четыре группы цифр, разделённых точками):" + + "Для корректного отслеживания обновлений введите версию конфигурации (четыре группы цифр, разделённых точками):"
Символы.ПС + + Символы.ПС + "Например: 3.1.30.197";
"Например: 3.1.30.197"; РаботаСОбновлениямиВызовСервера.УстановитьДанныеПользователя(ИдЧата,
РаботаСОбновлениямиВызовСервера.УстановитьДанныеПользователя(ИдЧата, Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии, Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии, ИмяКонфигурации);
ИмяКонфигурации);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета); ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета);
КонецЕсли; КонецЕсли;
@@ -64,7 +93,7 @@
Процедура УдалитьКонфигурациюИзСпискаОтслеживания(ТекстСообщения, ИдЧата) Процедура УдалитьКонфигурациюИзСпискаОтслеживания(ТекстСообщения, ИдЧата)
Команда = XMLСтрока(Перечисления.ВидыДанныхКоллбэков.DeleteVersion); Команда = XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.DeleteVersion);
Если НЕ СтрНачинаетсяС(ТекстСообщения, Команда) Тогда Если НЕ СтрНачинаетсяС(ТекстСообщения, Команда) Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -90,6 +119,55 @@
КонецПроцедуры КонецПроцедуры
Процедура ПолучитьДанныеСтатусаКонфигурации(ТекстСообщения, ИдЧата)
Команда = XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.GetStatus);
Если НЕ СтрНачинаетсяС(ТекстСообщения, Команда) Тогда
Возврат;
КонецЕсли;
ИмяКонфигурации = СокрЛП(Сред(ТекстСообщения, СтрДлина(Команда) + 1));
Конфигурация = РаботаСОбновлениямиВызовСервера.КонфигурацияПоИмени(ИмяКонфигурации);
Если Конфигурация <> Неопределено Тогда
ДанныеКонфигурации = РаботаСОбновлениямиВызовСервера.СтатусКонфигурацииИзПодписки(ИдЧата, Конфигурация);
Если ДанныеКонфигурации = Неопределено Тогда
Возврат;
КонецЕсли;
РезультатСравненияВерсий = РаботаСОбновлениямиВызовСервера.СравнитьВерсииКонфигураций(
ДанныеКонфигурации.ТекущаяВерсия,
ДанныеКонфигурации.АктуальнаяВерсия);
Если РезультатСравненияВерсий <> Неопределено Тогда
Если РезультатСравненияВерсий < 0 Тогда
Диагностика = "Необходимо обновить текущую версию.";
ИначеЕсли РезультатСравненияВерсий > 0 Тогда
Диагностика = "Текущая версия не может быть старше актуальной!";
Иначе
Диагностика = "Обновление текущей версии не требуется.";
КонецЕсли;
Иначе
Диагностика = "";
КонецЕсли;
ТекстОтвета = СтрШаблон("&#8505 %1%2<code>%3</code> &#8594 <code>%4</code>%5%6",
ДанныеКонфигурации.Наименование,
Символы.ПС,
ДанныеКонфигурации.ТекущаяВерсия,
ДанныеКонфигурации.АктуальнаяВерсия,
Символы.ПС,
Диагностика);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML);
Иначе
ТекстОтвета = "По данной конфигурации информация отсутствует.";
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета);
КонецЕсли;
КонецПроцедуры
Процедура ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя) Процедура ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя)
ИдЧата = ОбновлениеТелеграм.ИдЧата; ИдЧата = ОбновлениеТелеграм.ИдЧата;
@@ -98,7 +176,7 @@
Если НЕ ВерсияКонфигурацииКорректна(Версия) Тогда Если НЕ ВерсияКонфигурацииКорректна(Версия) Тогда
ТекстОтвета = СтрШаблон("Вы ввели некорректный номер версии: %1%2Для корректного отслеживания обновлений нужно ТекстОтвета = СтрШаблон("Вы ввели некорректный номер версии: %1%2Для корректного отслеживания обновлений нужно
|ввести версию конфигурации(четыре группы цифр, разделённых точками):Например: 3.1.30.197.", Версия, Символы.ПС); |ввести версию конфигурации(четыре группы цифр, разделённых точками):Например: 3.1.30.197.", Версия, Символы.ПС);
ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,,); ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -126,7 +204,8 @@
МенеджерЗаписи.АктуальнаяВерсия = АктуальнаяВерсия; МенеджерЗаписи.АктуальнаяВерсия = АктуальнаяВерсия;
Попытка Попытка
МенеджерЗаписи.Записать(); МенеджерЗаписи.Записать();
РаботаСОбновлениямиВызовСервера.УстановитьДанныеПользователя(ИдЧата, Перечисления.ТелеграмСтатусДиалога.НачальноеСостояние, ""); РаботаСОбновлениямиВызовСервера.УстановитьДанныеПользователя(ИдЧата,
Перечисления.ТелеграмСтатусДиалога.НачальноеСостояние, "");
ТекстОтвета = СтрШаблон("Версия: %1 успешно добавлена", Версия); ТекстОтвета = СтрШаблон("Версия: %1 успешно добавлена", Версия);
Исключение Исключение
ТекстОтвета = "При сохранении данных возникла ошибка"; ТекстОтвета = "При сохранении данных возникла ошибка";
@@ -159,18 +238,19 @@
Процедура ОбработатьКомандуСтарт(ОбновлениеТелеграм) Процедура ОбработатьКомандуСтарт(ОбновлениеТелеграм)
ТекстОтвета = "Привет! Я бот, который поможет тебе следить за обновлениями конфигураций 1С." + Символы.ПС + ТекстОтвета = "&#128075 Привет!"
Символы.ВК + Символы.ПС + + Символы.ПС
"Что я умею:" + Символы.ПС + + "Я - бот, который поможет тебе следить за обновлениями конфигураций 1С."
"- Отслеживать новые релизы" + Символы.ПС + + Символы.ПС + Символы.ВК + Символы.ПС
"- Присылать уведомления о выходе обновлений" + Символы.ПС + + "Что я умею:" + Символы.ПС
"- Показывать текущую версию" + Символы.ПС + + "- Отслеживать новые релизы" + Символы.ПС
Символы.ВК + Символы.ПС + + "- Присылать уведомления о выходе обновлений" + Символы.ПС
"/subscribe - Список конфигураций для отслеживания &#128276" + Символы.ПС + + "- Показывать текущую информацию о статусе конфигурации" + Символы.ПС
"/add - Добавить конфигурацию в список отслеживания &#10133" + Символы.ПС + + Символы.ПС
"/delete - Удалить конфигурацию из списка отслеживания &#10134"; + СписокПоддерживаемыхКоманд();
ТелеграмМетодыВызовСервера.SendMessage(ОбновлениеТелеграм.ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML); ТелеграмМетодыВызовСервера.SendMessage(ОбновлениеТелеграм.ИдЧата, ТекстОтвета,
Перечисления.ТелеграмРежимРазметки.HTML);
КонецПроцедуры КонецПроцедуры
@@ -183,19 +263,20 @@
ТекстОтвета = "Не удалось получить список конфигураций"; ТекстОтвета = "Не удалось получить список конфигураций";
Иначе Иначе
Для каждого ПунктМенюПодписки Из СписокКонфигураций Цикл Для каждого ПунктМенюПодписки Из СписокКонфигураций Цикл
ТекстОтвета = ТекстОтвета + СтрШаблон("%1 %2%3", ?(ПунктМенюПодписки.Подписка, "✉️", "◼️"), ТекстОтвета = ТекстОтвета + СтрШаблон("%1 %2%3", ?(ПунктМенюПодписки.Подписка, "&#9989", "◼️"),
ПунктМенюПодписки.Наименование, Символы.ПС); ПунктМенюПодписки.Наименование, Символы.ПС);
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
ТелеграмМетодыВызовСервера.SendMessage(ОбновлениеТелеграм.ИдЧата, ТекстОтвета, Перечисления.ТелеграмРежимРазметки.HTML); ТелеграмМетодыВызовСервера.SendMessage(ОбновлениеТелеграм.ИдЧата, ТекстОтвета,
Перечисления.ТелеграмРежимРазметки.HTML);
КонецПроцедуры КонецПроцедуры
Процедура ОбработатьКомандуДобавитьКонфигурацию(ОбновлениеТелеграм) Процедура ОбработатьКомандуДобавитьКонфигурацию(ОбновлениеТелеграм)
ИдЧата = ОбновлениеТелеграм.ИдЧата; ИдЧата = ОбновлениеТелеграм.ИдЧата;
Команда = XMLСтрока(Перечисления.ВидыДанныхКоллбэков.AddVersion); Команда = XMLСтрока(Перечисления.ВидыДанныхОбратныхВызовов.AddVersion);
МассивРядов = ТелеграмРаботаСКлавиатурой.МассивРядовСоСпискомКонфигураций(ИдЧата, Команда, Ложь); МассивРядов = ТелеграмРаботаСКлавиатурой.МассивРядовСоСпискомКонфигураций(ИдЧата, Команда, Ложь);
Если МассивРядов = Неопределено Тогда Если МассивРядов = Неопределено Тогда
@@ -212,7 +293,7 @@
Процедура ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм) Процедура ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм)
ИдЧата = ОбновлениеТелеграм.ИдЧата; ИдЧата = ОбновлениеТелеграм.ИдЧата;
Команда = XMLстрока(Перечисления.ВидыДанныхКоллбэков.DeleteVersion); Команда = XMLстрока(Перечисления.ВидыДанныхОбратныхВызовов.DeleteVersion);
МассивРядов = ТелеграмРаботаСКлавиатурой.МассивРядовСоСпискомКонфигураций(ИдЧата, Команда, Истина); МассивРядов = ТелеграмРаботаСКлавиатурой.МассивРядовСоСпискомКонфигураций(ИдЧата, Команда, Истина);
Если МассивРядов = Неопределено Тогда Если МассивРядов = Неопределено Тогда
@@ -227,4 +308,72 @@
КонецПроцедуры КонецПроцедуры
Процедура ОбработатьКомандуВключитьОповещения(ОбновлениеТелеграм)
УправлениеОповещениями(ОбновлениеТелеграм.ИдЧата, Истина);
КонецПроцедуры
Процедура ОбработатьКомандуВыключитьОповещения(ОбновлениеТелеграм)
УправлениеОповещениями(ОбновлениеТелеграм.ИдЧата, Ложь);
КонецПроцедуры
Процедура ОбработатьКомандуСтатусКонфигурации(ОбновлениеТелеграм)
ИдЧата = ОбновлениеТелеграм.ИдЧата;
Команда = 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

@@ -14,7 +14,7 @@
<ClientManagedApplication>true</ClientManagedApplication> <ClientManagedApplication>true</ClientManagedApplication>
<Server>true</Server> <Server>true</Server>
<ExternalConnection>true</ExternalConnection> <ExternalConnection>true</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication> <ClientOrdinaryApplication>true</ClientOrdinaryApplication>
<ServerCall>false</ServerCall> <ServerCall>false</ServerCall>
<Privileged>false</Privileged> <Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse> <ReturnValuesReuse>DontUse</ReturnValuesReuse>

View File

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

View File

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

View File

@@ -14,7 +14,7 @@
<ClientManagedApplication>true</ClientManagedApplication> <ClientManagedApplication>true</ClientManagedApplication>
<Server>true</Server> <Server>true</Server>
<ExternalConnection>true</ExternalConnection> <ExternalConnection>true</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication> <ClientOrdinaryApplication>true</ClientOrdinaryApplication>
<ServerCall>false</ServerCall> <ServerCall>false</ServerCall>
<Privileged>false</Privileged> <Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse> <ReturnValuesReuse>DontUse</ReturnValuesReuse>

View File

@@ -1,4 +1,5 @@
#Область ПрограммныйИнтерфейс
#Область ПрограммныйИнтерфейс
Функция ПолучитьРасширениеИмениФайла(Знач ИмяФайла) Экспорт Функция ПолучитьРасширениеИмениФайла(Знач ИмяФайла) Экспорт

View File

@@ -9,14 +9,15 @@
КонецЕсли; КонецЕсли;
Если РежимРазметки <> Неопределено Тогда Если РежимРазметки <> Неопределено Тогда
Если РежимРазметки = Перечисления.ТелеграмРежимРазметки.HTML ИЛИ РежимРазметки = Перечисления.ТелеграмРежимРазметки.Markdown Тогда Если РежимРазметки = Перечисления.ТелеграмРежимРазметки.HTML
ИЛИ РежимРазметки = Перечисления.ТелеграмРежимРазметки.Markdown Тогда
ТелоЗапроса.Вставить("parse_mode", Строка(РежимРазметки)); ТелоЗапроса.Вставить("parse_mode", Строка(РежимРазметки));
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
АдресРесурса = АдресРесурсаПоИмениМетода("sendMessage"); АдресРесурса = АдресРесурсаПоИмениМетода("sendMessage");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL); Соединение = НовоеСоединениеХТТП();
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса,, ТелоЗапроса); Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса, , ТелоЗапроса);
КонецФункции КонецФункции
@@ -24,35 +25,38 @@
ПараметрыЗапроса = Новый Структура("url", АдресВебхук); ПараметрыЗапроса = Новый Структура("url", АдресВебхук);
АдресРесурса = АдресРесурсаПоИмениМетода("setWebhook"); АдресРесурса = АдресРесурсаПоИмениМетода("setWebhook");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL); Соединение = НовоеСоединениеХТТП();
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса); Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
КонецФункции КонецФункции
Функция DeleteWebhook() Экспорт Функция DeleteWebhook() Экспорт
АдресРесурса = АдресРесурсаПоИмениМетода("deleteWebhook"); АдресРесурса = АдресРесурсаПоИмениМетода("deleteWebhook");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL); Соединение = НовоеСоединениеХТТП();
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса); Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
КонецФункции КонецФункции
Функция GetWebhookInfo() Экспорт Функция GetWebhookInfo() Экспорт
АдресРесурса = АдресРесурсаПоИмениМетода("getWebhookInfo"); АдресРесурса = АдресРесурсаПоИмениМетода("getWebhookInfo");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL); Соединение = НовоеСоединениеХТТП();
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса); Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
КонецФункции КонецФункции
Функция GetUpdates() Экспорт Функция GetUpdates(Таймаут = 0) Экспорт
Смещение = ? (ТелеграмОбщегоНазначения.ИдПоследнегоСообщения() = 0,0, Смещение = ? (ТелеграмОбщегоНазначенияВызовСервера.ИдПоследнегоСообщения() = 0, 0,
Формат(ТелеграмОбщегоНазначения.ИдПоследнегоСообщения() + 1, "ЧГ=0")); Формат(ТелеграмОбщегоНазначенияВызовСервера.ИдПоследнегоСообщения() + 1, "ЧГ=0"));
ПараметрыЗапроса = Новый Структура("offset", Смещение); ПараметрыЗапроса = Новый Структура("offset", Смещение);
Если Таймаут > 0 Тогда
ПараметрыЗапроса.Вставить("timeout", Таймаут);
КонецЕсли;
АдресРесурса = АдресРесурсаПоИмениМетода("getUpdates"); АдресРесурса = АдресРесурсаПоИмениМетода("getUpdates");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL); Соединение = НовоеСоединениеХТТП(Таймаут);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса); Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
КонецФункции КонецФункции
@@ -60,16 +64,16 @@
АдресРесурса = АдресРесурсаПоИмениМетода("getFile"); АдресРесурса = АдресРесурсаПоИмениМетода("getFile");
ПараметрыЗапроса = Новый Структура("file_id", ИдФайла); ПараметрыЗапроса = Новый Структура("file_id", ИдФайла);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL); Соединение = НовоеСоединениеХТТП();
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса); Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
КонецФункции КонецФункции
Функция GetMe() Экспорт Функция GetMe() Экспорт
АдресРесурса = АдресРесурсаПоИмениМетода("getMe"); АдресРесурса = АдресРесурсаПоИмениМетода("getMe");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL); Соединение = НовоеСоединениеХТТП();
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса); Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
КонецФункции КонецФункции
@@ -77,10 +81,10 @@
АдресРесурса = АдресРесурсаПоИмениМетода("sendDocument"); АдресРесурса = АдресРесурсаПоИмениМетода("sendDocument");
Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", ""); Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
ДвоичныеДанныеДокумента = ДвоичныеДанныеДокумента(ИдЧата, ДокументДляОтправки, Надпись, БезУведомления, Разделитель); ДвоичныеДанныеДокумента = ДвоичныеДанныеДокумента(ИдЧата, ДокументДляОтправки, Разделитель, Надпись, БезУведомления);
ДанныеДокумента = Новый Структура("Разделитель, ДвоичныеДанные", Разделитель, ДвоичныеДанныеДокумента); ДанныеДокумента = Новый Структура("Разделитель, ДвоичныеДанные", Разделитель, ДвоичныеДанныеДокумента);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL); Соединение = НовоеСоединениеХТТП();
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса,, ДанныеДокумента); Возврат ХТТПОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса, , ДанныеДокумента);
КонецФункции КонецФункции
@@ -98,8 +102,8 @@
Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", ""); Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
ДвоичныеДанныеФото = ДвоичныеДанныеФайла(ФайлДляОтправки, ИмяФайла, "image/jpeg", "photo", Разделитель); ДвоичныеДанныеФото = ДвоичныеДанныеФайла(ФайлДляОтправки, ИмяФайла, "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", ТипСодержимого)); ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("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"> <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"> <CommonModule uuid="4dc6cf4e-e097-4cb0-ba80-0472e448fac0">
<Properties> <Properties>
<Name>ТелеграмОбщегоНазначения</Name> <Name>ТелеграмОбщегоНазначенияВызовСервера</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Телеграм общего назначения</v8:content> <v8:content>Телеграм общего назначения вызов сервера</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <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"]; МассивОбновлений = ДанныеОбновления["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"]; ДанныеСообщения = Обновление["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

@@ -14,7 +14,7 @@
<ClientManagedApplication>false</ClientManagedApplication> <ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server> <Server>true</Server>
<ExternalConnection>true</ExternalConnection> <ExternalConnection>true</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication> <ClientOrdinaryApplication>true</ClientOrdinaryApplication>
<ServerCall>false</ServerCall> <ServerCall>false</ServerCall>
<Privileged>false</Privileged> <Privileged>false</Privileged>
<ReturnValuesReuse>DuringSession</ReturnValuesReuse> <ReturnValuesReuse>DuringSession</ReturnValuesReuse>

View File

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

View File

@@ -14,8 +14,8 @@
<ClientManagedApplication>false</ClientManagedApplication> <ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server> <Server>true</Server>
<ExternalConnection>true</ExternalConnection> <ExternalConnection>true</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication> <ClientOrdinaryApplication>true</ClientOrdinaryApplication>
<ServerCall>true</ServerCall> <ServerCall>false</ServerCall>
<Privileged>false</Privileged> <Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse> <ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties> </Properties>

View File

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

View File

@@ -14,7 +14,7 @@
<ClientManagedApplication>false</ClientManagedApplication> <ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server> <Server>true</Server>
<ExternalConnection>true</ExternalConnection> <ExternalConnection>true</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication> <ClientOrdinaryApplication>true</ClientOrdinaryApplication>
<ServerCall>false</ServerCall> <ServerCall>false</ServerCall>
<Privileged>false</Privileged> <Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse> <ReturnValuesReuse>DontUse</ReturnValuesReuse>

View File

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

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

View File

@@ -19,7 +19,7 @@
ТелоОтветаКакСтрока = Ответ.ПолучитьТелоКакСтроку(); ТелоОтветаКакСтрока = Ответ.ПолучитьТелоКакСтроку();
РезультатЗапроса.Тело = ?(ДвоичныеДанные, Ответ.ПолучитьТелоКакДвоичныеДанные(), РезультатЗапроса.Тело = ?(ДвоичныеДанные, Ответ.ПолучитьТелоКакДвоичныеДанные(),
HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоОтветаКакСтрока)); ХТТПОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоОтветаКакСтрока));
Если НЕ ДвоичныеДанные И РезультатЗапроса.Тело.Получить("description") <> Неопределено Тогда Если НЕ ДвоичныеДанные И РезультатЗапроса.Тело.Получить("description") <> Неопределено Тогда
РезультатЗапроса.Описание = РезультатЗапроса.Тело["description"]; РезультатЗапроса.Описание = РезультатЗапроса.Тело["description"];
@@ -34,12 +34,13 @@
РезультатЗапроса.Описание)); РезультатЗапроса.Описание));
КонецЕсли; КонецЕсли;
Если ТелеграмПовторноеИспользование.ЛогироватьHttpЗапросы() Тогда Если ТелеграмПовторноеИспользование.ЛогироватьХТТПЗапросы() Тогда
ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодHTTPЗапроса.GET, ТелоОтветаКакСтрока, КодСостояния); ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодХТТПЗапроса.GET, ТелоОтветаКакСтрока, КодСостояния);
КонецЕсли; КонецЕсли;
Исключение Исключение
РезультатЗапроса.Успех = Ложь; РезультатЗапроса.Успех = Ложь;
РезультатЗапроса.Описание = "Исключение при выполнении HTTP-запроса: " + ОписаниеОшибки(); РезультатЗапроса.Описание = "Исключение при выполнении HTTP-запроса: "
+ ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка, , , РезультатЗапроса.Описание); ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка, , , РезультатЗапроса.Описание);
КонецПопытки; КонецПопытки;
@@ -67,7 +68,7 @@
Запрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Данные.Разделитель); Запрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Данные.Разделитель);
Иначе Иначе
Запрос.Заголовки.Вставить("Content-Type", "application/json"); Запрос.Заголовки.Вставить("Content-Type", "application/json");
Запрос.УстановитьТелоИзСтроки(HttpОбщегоНазначенияВызовСервера.ОбъектВСтрокуJson(Данные)); Запрос.УстановитьТелоИзСтроки(ХТТПОбщегоНазначенияВызовСервера.ОбъектВСтрокуJson(Данные));
КонецЕсли; КонецЕсли;
Иначе Иначе
Запрос.Заголовки.Вставить("Content-Type", "application/json"); Запрос.Заголовки.Вставить("Content-Type", "application/json");
@@ -76,10 +77,11 @@
Ответ = Соединение.ОтправитьДляОбработки(Запрос); Ответ = Соединение.ОтправитьДляОбработки(Запрос);
ТелоОтветаКакСтрока = Ответ.ПолучитьТелоКакСтроку(); ТелоОтветаКакСтрока = Ответ.ПолучитьТелоКакСтроку();
ТелоДляОтвета = HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоОтветаКакСтрока); ТелоДляОтвета = ХТТПОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоОтветаКакСтрока);
Если ТелоДляОтвета <> Неопределено Тогда Если ТелоДляОтвета <> Неопределено Тогда
РезультатЗапроса.Тело = ТелоДляОтвета; РезультатЗапроса.Тело = ТелоДляОтвета;
РезультатЗапроса.Описание = ?(ТелоДляОтвета.Получить("description") <> Неопределено, ТелоДляОтвета["description"], ""); РезультатЗапроса.Описание = ?(ТелоДляОтвета.Получить("description") <> Неопределено,
ТелоДляОтвета["description"], "");
КонецЕсли; КонецЕсли;
КодСостояния = Ответ.КодСостояния; КодСостояния = Ответ.КодСостояния;
@@ -91,12 +93,13 @@
РезультатЗапроса.Описание)); РезультатЗапроса.Описание));
КонецЕсли; КонецЕсли;
Если ТелеграмПовторноеИспользование.ЛогироватьHttpЗапросы() Тогда Если ТелеграмПовторноеИспользование.ЛогироватьХТТПЗапросы() Тогда
ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодHTTPЗапроса.POST, ТелоОтветаКакСтрока, КодСостояния); ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодХТТПЗапроса.POST, ТелоОтветаКакСтрока, КодСостояния);
КонецЕсли; КонецЕсли;
Исключение Исключение
РезультатЗапроса.Успех = Ложь; РезультатЗапроса.Успех = Ложь;
РезультатЗапроса.Описание = "Исключение при выполнении HTTP-запроса: " + ОписаниеОшибки(); РезультатЗапроса.Описание = "Исключение при выполнении HTTP-запроса: "
+ ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка, , , РезультатЗапроса.Описание); ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка, , , РезультатЗапроса.Описание);
КонецПопытки; КонецПопытки;
@@ -117,8 +120,8 @@
ЧтениеJSON.Закрыть(); ЧтениеJSON.Закрыть();
Возврат ИтоговоеСоответствие; Возврат ИтоговоеСоответствие;
Исключение Исключение
Ошибка = ОписаниеОшибки(); ЗаписьЖурналаРегистрации("Ошибка конвертации из JSON в объект", УровеньЖурналаРегистрации.Ошибка, , ,
ЗаписьЖурналаРегистрации("Ошибка конвертации из JSON в объект", УровеньЖурналаРегистрации.Ошибка,,,Ошибка); ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки; КонецПопытки;
Возврат Неопределено; Возврат Неопределено;
@@ -131,7 +134,6 @@
Возврат ""; Возврат "";
КонецЕсли; КонецЕсли;
ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON = Новый ЗаписьJSON;
ПараметрыЗаписи = Новый ПараметрыЗаписиJSON(, Символы.Таб); ПараметрыЗаписи = Новый ПараметрыЗаписиJSON(, Символы.Таб);
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписи); ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписи);
@@ -139,8 +141,8 @@
ЗаписатьJSON(ЗаписьJSON, Объект); ЗаписатьJSON(ЗаписьJSON, Объект);
Возврат ЗаписьJSON.Закрыть(); Возврат ЗаписьJSON.Закрыть();
Исключение Исключение
Ошибка = ОписаниеОшибки(); ЗаписьЖурналаРегистрации("Ошибка конвертации объекта в JSON", УровеньЖурналаРегистрации.Ошибка, , ,
ЗаписьЖурналаРегистрации("Ошибка конвертации объекта в JSON", УровеньЖурналаРегистрации.Ошибка,,,Ошибка); ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки; КонецПопытки;
Возврат ""; Возврат "";
@@ -165,16 +167,16 @@
ИнформацияОбОшибке = ИнформацияОбОшибке(); ИнформацияОбОшибке = ИнформацияОбОшибке();
ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка, , , ЗаписьЖурналаРегистрации("HTTPСервисы.Ошибка", УровеньЖурналаРегистрации.Ошибка, , ,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
СтруктураОтвета = Новый Структура("result, description", "error", КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); СтруктураОтвета = Новый Структура("result, description", "error",
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
Возврат ОтветJson(СтруктураОтвета, 500); Возврат ОтветJson(СтруктураОтвета, 500);
КонецФункции КонецФункции
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
Функция ОтветJson(Объект, КодСостояния) Функция ОтветJson(Объект, КодСостояния)
@@ -209,12 +211,12 @@
АдресРесурса = СтрЗаменить(АдресРесурса, Константы.ТелеграмТокен.Получить(), "#token#"); АдресРесурса = СтрЗаменить(АдресРесурса, Константы.ТелеграмТокен.Получить(), "#token#");
Лог = Документы.ЛогHttpЗапроса.СоздатьДокумент(); Лог = Документы.ЛогиХТТПЗапросов.СоздатьДокумент();
Лог.Дата = ТекущаяДатаСеанса(); Лог.Дата = ТекущаяДатаСеанса();
Лог.HTTPЗапрос = АдресРесурса; Лог.Запрос = АдресРесурса;
Лог.Метод = Метод; Лог.Метод = Метод;
Лог.КодСостояния = КодСостояния; Лог.КодСостояния = КодСостояния;
Лог.HTTPОтвет = HttpОбщегоНазначенияВызовСервера.ФорматированныйJson(ТелоОтветаКакСтрока); Лог.Ответ = ХТТПОбщегоНазначенияВызовСервера.ФорматированныйJson(ТелоОтветаКакСтрока);
Лог.Записать(); Лог.Записать();
КонецПроцедуры КонецПроцедуры

View File

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

View File

@@ -27,7 +27,7 @@
<Type> <Type>
<v8:Type>xs:boolean</v8:Type> <v8:Type>xs:boolean</v8:Type>
</Type> </Type>
<UseStandardCommands>true</UseStandardCommands> <UseStandardCommands>false</UseStandardCommands>
<DefaultForm/> <DefaultForm/>
<ExtendedPresentation/> <ExtendedPresentation/>
<Explanation/> <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:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers> </v8:StringQualifiers>
</Type> </Type>
<UseStandardCommands>true</UseStandardCommands> <UseStandardCommands>false</UseStandardCommands>
<DefaultForm>CommonForm.ТелеграмВебХук</DefaultForm> <DefaultForm/>
<ExtendedPresentation/> <ExtendedPresentation/>
<Explanation/> <Explanation/>
<PasswordMode>false</PasswordMode> <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:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers> </v8:StringQualifiers>
</Type> </Type>
<UseStandardCommands>true</UseStandardCommands> <UseStandardCommands>false</UseStandardCommands>
<DefaultForm/> <DefaultForm/>
<ExtendedPresentation/> <ExtendedPresentation/>
<Explanation/> <Explanation/>

View File

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

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <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> <Properties>
<Name>Форма</Name> <Name>Форма</Name>
<Synonym> <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,280 +0,0 @@
&НаКлиенте
Процедура ПолучитьСообщения(Команда)
Ответ = ПолучитьСообщенияНаСервере();
ВывестиОтвет(Ответ);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьСообщенияНаСервере()
Ответ = ТелеграмМетодыВызовСервера.GetUpdates();
БотОбщегоНазначения.ОбработкаКомандыБота(Ответ);
//Если Ответ.Успех Тогда
// МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ.Тело);
// Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл
// ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм);
//
// Если СообщениеТелеграм.Сообщение.text = "/start" Тогда
// ТекстОтвета = "Привет! Я бот, который поможет тебе следить за обновлениями конфигураций 1С." + Символы.ПС +
// Символы.ВК + Символы.ПС +
// "Что я умею:" + Символы.ПС +
// "- Отслеживать новые релизы" + Символы.ПС +
// "- Присылать уведомления о выходе обновлений" + Символы.ПС +
// "- Показывать текущую версию" + Символы.ПС +
// Символы.ВК + Символы.ПС +
// "/subscribe - Список конфигураций для отслеживания" + Символы.ПС +
// "/add - Добавить конфигурацию в список отслеживания" + Символы.ПС +
// "/delete - Удалить конфигурацию из списка отслеживания" + Символы.ПС +
// Символы.ВК + Символы.ПС +
// "/help — Помощь";
//
// ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета,,);
// ИначеЕсли СообщениеТелеграм.Сообщение.text = "/subscribe" Тогда
// КонфигурацииДляВыбора = РаботаСОбновлениямиВызовСервера.КонфигурацииДляВыбора(СообщениеТелеграм.ИдЧата);
//
// Если КонфигурацииДляВыбора.Количество() = 0 Тогда
// ТекстОтвета = "Не удалось получить список конфигураций";
// Иначе
// ТекстОтвета = "";
// Для каждого ПунктМенюПодписки Из КонфигурацииДляВыбора Цикл
// ТекстОтвета = ТекстОтвета + СтрШаблон("%1 %2%3", ?(ПунктМенюПодписки.Подписка, "[X]", "[ ]"),
// ПунктМенюПодписки.Наименование,Символы.ПС);
// КонецЦикла;
// КонецЕсли;
//
// ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета,,);
// ИначеЕсли СообщениеТелеграм.Сообщение.text = "/add" Тогда
// КонфигурацииДляВыбора = РаботаСОбновлениямиВызовСервера.КонфигурацииДляВыбора(СообщениеТелеграм.ИдЧата);
//
// Если КонфигурацииДляВыбора.Количество() = 0 Тогда
// ТекстОтвета = "Не удалось получить список конфигураций";
// Иначе
// МассивРядов = Новый Массив;
// ТекстОтвета = "Выберите нужную конфигурацию для отслеживания обновлений";
// Для каждого ПунктМенюПодписки Из КонфигурацииДляВыбора Цикл
// Если НЕ ПунктМенюПодписки.Подписка Тогда
// МассивКнопок = Новый Массив;
// МассивКнопок.Добавить(ТелеграмРаботаСКлавиатурой.КнопкаКлавиатуры
// ("/add_conf " + ПунктМенюПодписки.Наименование));
// МассивРядов.Добавить(МассивКнопок);
// КонецЕсли;
// КонецЦикла;
// КонецЕсли;
//
// Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина);
// ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета,,Клавиатура);
// ИначеЕсли СтрНачинаетсяС(СообщениеТелеграм.Сообщение.text, "/add_conf") Тогда
// Результат = ДобавитьКонфигурациюВСписокОтслеживания(СообщениеТелеграм.Сообщение.text, СообщениеТелеграм.ИдЧата);
// КонецЕсли;
// КонецЦикла;
//КонецЕсли;
Возврат Ответ;
КонецФункции
//&НаСервереБезКонтекста
//Функция ДобавитьКонфигурациюВСписокОтслеживания(ТекстСообщения, ИдЧата)
//
// КомандаДобавленияКонфигурации = "/add_conf";
//
// Если НЕ СтрНачинаетсяС(ТекстСообщения, КомандаДобавленияКонфигурации) Тогда
// Возврат Ложь;
// КонецЕсли;
//
// НаименованиеКонфигурации = СокрЛП(Сред(ТекстСообщения, СтрДлина(КомандаДобавленияКонфигурации) + 1,
// СтрДлина(ТекстСообщения) - СтрДлина(КомандаДобавленияКонфигурации)+ 1));
//
// Запрос = Новый Запрос;
// Запрос.Текст =
// "ВЫБРАТЬ
// | Конфигурации.Ссылка КАК Конфигурация,
// | &ИдЧата КАК ИдЧата,
// | &ТекущаяВерсия КАК ТекущаяВерсия,
// | &АктуальнаяВерсия КАК АктуальнаяВерсия
// |ИЗ
// | Справочник.Конфигурации КАК Конфигурации
// |ГДЕ
// | Конфигурации.Наименование ПОДОБНО ""%"" + &Наименование + ""%""";
//
// Запрос.УстановитьПараметр("Наименование", НаименованиеКонфигурации);
// Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
// Запрос.УстановитьПараметр("ТекущаяВерсия", "1.1.1.1");
// Запрос.УстановитьПараметр("АктуальнаяВерсия", "1.2.3.4");
//
// РезультатЗапроса = Запрос.Выполнить();
//
// ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
//
// Если ВыборкаДетальныеЗаписи.Следующий() Тогда
// МенеджерЗаписи = РегистрыСведений.ОтслеживаниеВерсийКонфигураций.СоздатьМенеджерЗаписи();
// ЗаполнитьЗначенияСвойств(МенеджерЗаписи, ВыборкаДетальныеЗаписи);
// МенеджерЗаписи.Записать();
// Возврат Истина;
// КонецЕсли;
//
// Возврат Ложь;
//
//КонецФункции
&НаКлиенте
Процедура getWebhookInfo(Команда)
Ответ = ТелеграмМетодыВызовСервера.GetWebhookInfo();
Если НЕ Ответ = Неопределено Тогда
ВывестиОтвет(Ответ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура SetWebHook(Команда)
Ответ = ТелеграмМетодыВызовСервера.SetWebHook(АдресВебхук);
Если НЕ Ответ = Неопределено Тогда
ВывестиОтвет(Ответ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура PostЗапрос(Команда)
МассивРядов = Новый Массив;
МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Конфигурации;Подписки");
МассивРядов.Добавить(МассивКнопок);
//МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Выбрать конфигурацию;Актуальная версия;Калькулятор обновлений");
//ВторойРядКнопок = Новый Массив;
//Эмоджи = Символ(55357) + Символ(57005);
//Эмоджи = СтрЗаменить("\xF0\x9F\x94\x94", "\x", "%");
//Эмоджи = "&#128513";
//эмодзиДа = "%f0%9f%91%8d";
//эмодзиНет = "%f0%9f%91%8e";
//ВторойРядКнопок.Добавить(ТелеграмРаботаСКлавиатурой.КнопкаКлавиатуры(Эмоджи));
//МассивРядов.Добавить(ВторойРядКнопок);
Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина);
Ответ = ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, СообщениеДляОтправки,
ПредопределенноеЗначение("Перечисление.ТелеграмРежимРазметки.HTML"), Клавиатура);
Если НЕ Ответ = Неопределено Тогда
ВывестиОтвет(Ответ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура DeleteWebhook(Команда)
Ответ = ТелеграмМетодыВызовСервера.DeleteWebhook();
Если НЕ Ответ = Неопределено Тогда
ВывестиОтвет(Ответ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВывестиОтвет(Ответ)
ТекстСообщения = СтрШаблон("Выполнено %1.%2%3", ?(Ответ.Успех, "успешно", "с ошибкой"), Символы.ПС, Ответ.Описание);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ТекстСообщения;
Сообщение.Сообщить();
КонецПроцедуры
&НаКлиенте
Процедура СкачатьФайл(Команда)
СкачатьФайлНаСервере(ИдФайла);
//Ответ = ТелеграмМетодыВызовСервера.GetFile(ИдФайла);
//ОтветСоответствие = HttpОбщегоНазначения.СтрокаJsonВОбъект(Ответ);
//
//ПутьКФайлуНаСервереТелеграм = ОтветСоответствие["result"]["file_path"];
//
////Ответ = СкачатьФайлНаСервере(ПутьКФайлуНаСервере);
//Ответ = СкачатьФайлНаСервере(ПутьКФайлуНаСервереТелеграм);
//Если НЕ Ответ = Неопределено Тогда
// //ВывестиОтвет(Ответ);
//КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СкачатьФайлНаСервере(ИдФайла)
НовыйДокумент = Справочники.ТелеграмДокумент.СоздатьЭлемент();
НовыйДокумент.Наименование = "Тестовый документ";
НовыйДокумент.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"> <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"> <Document uuid="7ca26a17-d7b3-4ec0-bd51-2dd2951e242f">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="DocumentObject.ЛогHttpЗапроса" category="Object"> <xr:GeneratedType name="DocumentObject.ЛогиХТТПЗапросов" category="Object">
<xr:TypeId>ea6e9e6f-fd73-405a-bac6-96eee781c8e5</xr:TypeId> <xr:TypeId>ea6e9e6f-fd73-405a-bac6-96eee781c8e5</xr:TypeId>
<xr:ValueId>d94f7494-6432-421e-bebf-573e35cee4ad</xr:ValueId> <xr:ValueId>d94f7494-6432-421e-bebf-573e35cee4ad</xr:ValueId>
</xr:GeneratedType> </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:TypeId>dc268b14-03bf-4907-a652-b52e45d59363</xr:TypeId>
<xr:ValueId>4e5a9388-65a8-48a6-b32e-c1d494e2e2a3</xr:ValueId> <xr:ValueId>4e5a9388-65a8-48a6-b32e-c1d494e2e2a3</xr:ValueId>
</xr:GeneratedType> </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:TypeId>a65053fd-9227-430b-affd-6cb0b5383140</xr:TypeId>
<xr:ValueId>9aeb4fba-27a8-4e05-8a74-d8afba4ff2ff</xr:ValueId> <xr:ValueId>9aeb4fba-27a8-4e05-8a74-d8afba4ff2ff</xr:ValueId>
</xr:GeneratedType> </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:TypeId>bd353e78-0d8b-46a4-816e-df8cf45ed3df</xr:TypeId>
<xr:ValueId>f8cc591c-5150-4294-acf9-9f5ef49f7996</xr:ValueId> <xr:ValueId>f8cc591c-5150-4294-acf9-9f5ef49f7996</xr:ValueId>
</xr:GeneratedType> </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:TypeId>cae7dc26-80c9-4d43-8a24-96aa775739fc</xr:TypeId>
<xr:ValueId>1c720f88-df95-4bf7-9cf9-35d32df85dc3</xr:ValueId> <xr:ValueId>1c720f88-df95-4bf7-9cf9-35d32df85dc3</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
</InternalInfo> </InternalInfo>
<Properties> <Properties>
<Name>ЛогHttpЗапроса</Name> <Name>ЛогиХТТПЗапросов</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Лог http запроса</v8:content> <v8:content>Логи HTTP запросов</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <Comment/>
@@ -43,14 +43,14 @@
<Characteristics/> <Characteristics/>
<BasedOn/> <BasedOn/>
<InputByString> <InputByString>
<xr:Field>Document.ЛогHttpЗапроса.StandardAttribute.Number</xr:Field> <xr:Field>Document.ЛогиХТТПЗапросов.StandardAttribute.Number</xr:Field>
</InputByString> </InputByString>
<CreateOnInput>Use</CreateOnInput> <CreateOnInput>Use</CreateOnInput>
<SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString> <SearchStringModeOnInputByString>Begin</SearchStringModeOnInputByString>
<FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString> <FullTextSearchOnInputByString>DontUse</FullTextSearchOnInputByString>
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString> <ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
<DefaultObjectForm>Document.ЛогHttpЗапроса.Form.ФормаДокумента</DefaultObjectForm> <DefaultObjectForm>Document.ЛогиХТТПЗапросов.Form.ФормаДокумента</DefaultObjectForm>
<DefaultListForm>Document.ЛогHttpЗапроса.Form.ФормаСписка</DefaultListForm> <DefaultListForm>Document.ЛогиХТТПЗапросов.Form.ФормаСписка</DefaultListForm>
<DefaultChoiceForm/> <DefaultChoiceForm/>
<AuxiliaryObjectForm/> <AuxiliaryObjectForm/>
<AuxiliaryListForm/> <AuxiliaryListForm/>
@@ -80,11 +80,11 @@
<ChildObjects> <ChildObjects>
<Attribute uuid="99c7021d-50c9-4a2d-b375-21b52de8d2df"> <Attribute uuid="99c7021d-50c9-4a2d-b375-21b52de8d2df">
<Properties> <Properties>
<Name>HTTPЗапрос</Name> <Name>Запрос</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>HTTPЗапрос</v8:content> <v8:content>Запрос</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <Comment/>
@@ -123,11 +123,11 @@
</Attribute> </Attribute>
<Attribute uuid="156814c3-b941-4a59-a92f-439b400475d0"> <Attribute uuid="156814c3-b941-4a59-a92f-439b400475d0">
<Properties> <Properties>
<Name>HTTPОтвет</Name> <Name>Ответ</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>HTTPОтвет</v8:content> <v8:content>Ответ</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <Comment/>
@@ -175,7 +175,7 @@
</Synonym> </Synonym>
<Comment/> <Comment/>
<Type> <Type>
<v8:Type>cfg:EnumRef.МетодHTTPЗапроса</v8:Type> <v8:Type>cfg:EnumRef.МетодХТТПЗапроса</v8:Type>
</Type> </Type>
<PasswordMode>false</PasswordMode> <PasswordMode>false</PasswordMode>
<Format/> <Format/>

View File

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

View File

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

View File

@@ -90,7 +90,7 @@
<ExtendedTooltip name="КодСостоянияРасширеннаяПодсказка" id="33"/> <ExtendedTooltip name="КодСостоянияРасширеннаяПодсказка" id="33"/>
</LabelField> </LabelField>
<LabelField name="HTTPЗапрос" id="28"> <LabelField name="HTTPЗапрос" id="28">
<DataPath>Список.HTTPЗапрос</DataPath> <DataPath>Список.Запрос</DataPath>
<ContextMenu name="HTTPЗапросКонтекстноеМеню" id="29"/> <ContextMenu name="HTTPЗапросКонтекстноеМеню" id="29"/>
<ExtendedTooltip name="HTTPЗапросРасширеннаяПодсказка" id="30"/> <ExtendedTooltip name="HTTPЗапросРасширеннаяПодсказка" id="30"/>
</LabelField> </LabelField>
@@ -106,7 +106,7 @@
<Settings xsi:type="DynamicList"> <Settings xsi:type="DynamicList">
<ManualQuery>false</ManualQuery> <ManualQuery>false</ManualQuery>
<DynamicDataRead>true</DynamicDataRead> <DynamicDataRead>true</DynamicDataRead>
<MainTable>Document.ЛогHttpЗапроса</MainTable> <MainTable>Document.ЛогиХТТПЗапросов</MainTable>
<ListSettings> <ListSettings>
<dcsset:filter> <dcsset:filter>
<dcsset:viewMode>Normal</dcsset:viewMode> <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"> <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"> <Enum uuid="49b74ca2-e1cc-4ac3-9da2-d2e3c99a5044">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="EnumRef.ВидыДанныхКоллбэков" category="Ref"> <xr:GeneratedType name="EnumRef.ВидыДанныхОбратныхВызовов" category="Ref">
<xr:TypeId>faee0c1e-a312-43c8-8af2-20618cc53904</xr:TypeId> <xr:TypeId>faee0c1e-a312-43c8-8af2-20618cc53904</xr:TypeId>
<xr:ValueId>b6d6ee51-fdfe-47bd-bc31-3147751dc7fc</xr:ValueId> <xr:ValueId>b6d6ee51-fdfe-47bd-bc31-3147751dc7fc</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="EnumManager.ВидыДанныхКоллбэков" category="Manager"> <xr:GeneratedType name="EnumManager.ВидыДанныхОбратныхВызовов" category="Manager">
<xr:TypeId>268e63a6-adc9-4961-9d35-92c1ddc296e3</xr:TypeId> <xr:TypeId>268e63a6-adc9-4961-9d35-92c1ddc296e3</xr:TypeId>
<xr:ValueId>6e68fa9a-2345-462c-98d4-6c31908cb17b</xr:ValueId> <xr:ValueId>6e68fa9a-2345-462c-98d4-6c31908cb17b</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="EnumList.ВидыДанныхКоллбэков" category="List"> <xr:GeneratedType name="EnumList.ВидыДанныхОбратныхВызовов" category="List">
<xr:TypeId>6bf0eedb-c7aa-4a05-ae0f-3900e6b21ff7</xr:TypeId> <xr:TypeId>6bf0eedb-c7aa-4a05-ae0f-3900e6b21ff7</xr:TypeId>
<xr:ValueId>7947dc7b-96c2-4672-8ebe-c48dba063c3e</xr:ValueId> <xr:ValueId>7947dc7b-96c2-4672-8ebe-c48dba063c3e</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
</InternalInfo> </InternalInfo>
<Properties> <Properties>
<Name>ВидыДанныхКоллбэков</Name> <Name>ВидыДанныхОбратныхВызовов</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Виды данных коллбэков</v8:content> <v8:content>Виды данных callbacks</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <Comment/>
@@ -62,6 +62,18 @@
<Comment/> <Comment/>
</Properties> </Properties>
</EnumValue> </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> </ChildObjects>
</Enum> </Enum>
</MetaDataObject> </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"> <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"> <Enum uuid="71ba9b1f-8966-4c88-accf-4683d4764b70">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="EnumRef.МетодHTTPЗапроса" category="Ref"> <xr:GeneratedType name="EnumRef.МетодХТТПЗапроса" category="Ref">
<xr:TypeId>062ec44f-ddff-4eb2-9d67-ace1243a7874</xr:TypeId> <xr:TypeId>062ec44f-ddff-4eb2-9d67-ace1243a7874</xr:TypeId>
<xr:ValueId>cdbc4fda-6d89-4e83-950b-648b679c0a5c</xr:ValueId> <xr:ValueId>cdbc4fda-6d89-4e83-950b-648b679c0a5c</xr:ValueId>
</xr:GeneratedType> </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:TypeId>75bb42b3-89ee-4666-a3d9-dfe18b9c28e1</xr:TypeId>
<xr:ValueId>bc3f9676-2064-4845-a533-556e907c48bf</xr:ValueId> <xr:ValueId>bc3f9676-2064-4845-a533-556e907c48bf</xr:ValueId>
</xr:GeneratedType> </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:TypeId>ac64ef38-c6cc-4bc3-a870-1784bd2b1317</xr:TypeId>
<xr:ValueId>35a3a837-9322-46af-9807-8d233146ed18</xr:ValueId> <xr:ValueId>35a3a837-9322-46af-9807-8d233146ed18</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
</InternalInfo> </InternalInfo>
<Properties> <Properties>
<Name>МетодHTTPЗапроса</Name> <Name>МетодХТТПЗапроса</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <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"> <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"> <HTTPService uuid="85b4fbb0-1bf6-43f5-a35b-0e0b14ecac91">
<Properties> <Properties>
<Name>HTTPСервис_Telegram</Name> <Name>СервисТелеграм</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>HTTPСервис telegram</v8:content> <v8:content>Сервис телеграм</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <Comment/>
@@ -17,8 +17,13 @@
<ChildObjects> <ChildObjects>
<URLTemplate uuid="8c9514bd-6990-4128-80c1-c3bf77ae6769"> <URLTemplate uuid="8c9514bd-6990-4128-80c1-c3bf77ae6769">
<Properties> <Properties>
<Name>ШаблонURL1</Name> <Name>Шаблон1</Name>
<Synonym/> <Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Шаблон1</v8:content>
</v8:item>
</Synonym>
<Comment/> <Comment/>
<Template>/update</Template> <Template>/update</Template>
</Properties> </Properties>
@@ -41,8 +46,13 @@
</URLTemplate> </URLTemplate>
<URLTemplate uuid="fd611f01-bc5b-412f-9d6a-395f20daf8f7"> <URLTemplate uuid="fd611f01-bc5b-412f-9d6a-395f20daf8f7">
<Properties> <Properties>
<Name>ШаблонURL2</Name> <Name>Шаблон2</Name>
<Synonym/> <Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Шаблон2</v8:content>
</v8:item>
</Synonym>
<Comment/> <Comment/>
<Template>/info</Template> <Template>/info</Template>
</Properties> </Properties>

View File

@@ -1,15 +1,15 @@
 #Область ОбработчикиСобытий
Функция ШаблонURL1PostGetUpdate(Запрос) Функция ШаблонURL1PostGetUpdate(Запрос)
Попытка Попытка
//ТелеграмОбщегоНазначения.ОбработатьИСохранитьОбновленияТелеграм(Запрос.ПолучитьТелоКакСтроку());
БотОбщегоНазначения.ОбработкаКомандыБота(Запрос.ПолучитьТелоКакСтроку()); БотОбщегоНазначения.ОбработкаКомандыБота(Запрос.ПолучитьТелоКакСтроку());
Ответ = HttpОбщегоНазначенияВызовСервера.ОтветУспех(); Ответ = ХТТПОбщегоНазначенияВызовСервера.ОтветУспех();
Возврат Ответ; Возврат Ответ;
Исключение Исключение
ЗаписьЖурналаРегистрации("Телеграм-бот.Ошибка", УровеньЖурналаРегистрации.Ошибка, , , ЗаписьЖурналаРегистрации("Телеграм-бот.Ошибка", УровеньЖурналаРегистрации.Ошибка, , ,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат HttpОбщегоНазначенияВызовСервера.ОтветОшибка(); Возврат ХТТПОбщегоНазначенияВызовСервера.ОтветОшибка();
КонецПопытки; КонецПопытки;
КонецФункции КонецФункции
@@ -20,13 +20,15 @@
ОтветБотИнфо = ТелеграмМетодыВызовСервера.GetMe(); ОтветБотИнфо = ТелеграмМетодыВызовСервера.GetMe();
Если ОтветБотИнфо.Успех Тогда Если ОтветБотИнфо.Успех Тогда
Ответ = Новый HTTPСервисОтвет(200); Ответ = Новый 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"> <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"> <InformationRegister uuid="fa99a49c-8f89-4d1c-bed9-ad8ae5f1f875">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="InformationRegisterRecord.ТелеграмСообщения" category="Record"> <xr:GeneratedType name="InformationRegisterRecord.ТелеграмИсторияСообщений" category="Record">
<xr:TypeId>9444c860-a15a-48eb-8b4c-29d90b5c8541</xr:TypeId> <xr:TypeId>9444c860-a15a-48eb-8b4c-29d90b5c8541</xr:TypeId>
<xr:ValueId>eca768ad-6630-4ee4-831d-cd6fd9764e3d</xr:ValueId> <xr:ValueId>eca768ad-6630-4ee4-831d-cd6fd9764e3d</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterManager.ТелеграмСообщения" category="Manager"> <xr:GeneratedType name="InformationRegisterManager.ТелеграмИсторияСообщений" category="Manager">
<xr:TypeId>d628eea0-6995-470d-aecc-51d8bd8ed74c</xr:TypeId> <xr:TypeId>d628eea0-6995-470d-aecc-51d8bd8ed74c</xr:TypeId>
<xr:ValueId>1c4d0ec8-9752-4a4d-a549-70205ba4e912</xr:ValueId> <xr:ValueId>1c4d0ec8-9752-4a4d-a549-70205ba4e912</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterSelection.ТелеграмСообщения" category="Selection"> <xr:GeneratedType name="InformationRegisterSelection.ТелеграмИсторияСообщений" category="Selection">
<xr:TypeId>0c0e64e8-b32e-4995-8a76-42bf05a83183</xr:TypeId> <xr:TypeId>0c0e64e8-b32e-4995-8a76-42bf05a83183</xr:TypeId>
<xr:ValueId>b1078888-faa2-407f-922d-032e4b6316c3</xr:ValueId> <xr:ValueId>b1078888-faa2-407f-922d-032e4b6316c3</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterList.ТелеграмСообщения" category="List"> <xr:GeneratedType name="InformationRegisterList.ТелеграмИсторияСообщений" category="List">
<xr:TypeId>064168d2-83fe-4d6e-ac7f-0dea8e6f87ba</xr:TypeId> <xr:TypeId>064168d2-83fe-4d6e-ac7f-0dea8e6f87ba</xr:TypeId>
<xr:ValueId>7c6a16a0-6839-4bc7-b6e4-39c69f23b01c</xr:ValueId> <xr:ValueId>7c6a16a0-6839-4bc7-b6e4-39c69f23b01c</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterRecordSet.ТелеграмСообщения" category="RecordSet"> <xr:GeneratedType name="InformationRegisterRecordSet.ТелеграмИсторияСообщений" category="RecordSet">
<xr:TypeId>d3cf9ed0-1f6c-4914-adfe-1035aa3fbaa0</xr:TypeId> <xr:TypeId>d3cf9ed0-1f6c-4914-adfe-1035aa3fbaa0</xr:TypeId>
<xr:ValueId>de6174d6-baf0-4a9f-be96-a20177e1f591</xr:ValueId> <xr:ValueId>de6174d6-baf0-4a9f-be96-a20177e1f591</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterRecordKey.ТелеграмСообщения" category="RecordKey"> <xr:GeneratedType name="InformationRegisterRecordKey.ТелеграмИсторияСообщений" category="RecordKey">
<xr:TypeId>e3f0086a-be84-4744-b45d-f1c7bfb2d1e9</xr:TypeId> <xr:TypeId>e3f0086a-be84-4744-b45d-f1c7bfb2d1e9</xr:TypeId>
<xr:ValueId>ccffa851-6e1c-4300-a1ee-f81650a30bcd</xr:ValueId> <xr:ValueId>ccffa851-6e1c-4300-a1ee-f81650a30bcd</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
<xr:GeneratedType name="InformationRegisterRecordManager.ТелеграмСообщения" category="RecordManager"> <xr:GeneratedType name="InformationRegisterRecordManager.ТелеграмИсторияСообщений" category="RecordManager">
<xr:TypeId>d3d49311-3925-4a11-bc57-fea0f92c011b</xr:TypeId> <xr:TypeId>d3d49311-3925-4a11-bc57-fea0f92c011b</xr:TypeId>
<xr:ValueId>b272acb8-75cb-429a-9076-2a2c10e3edc0</xr:ValueId> <xr:ValueId>b272acb8-75cb-429a-9076-2a2c10e3edc0</xr:ValueId>
</xr:GeneratedType> </xr:GeneratedType>
</InternalInfo> </InternalInfo>
<Properties> <Properties>
<Name>ТелеграмСообщения</Name> <Name>ТелеграмИсторияСообщений</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Телеграм сообщения</v8:content> <v8:content>История сообщений</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <Comment/>
@@ -75,7 +75,7 @@
</Synonym> </Synonym>
<Comment/> <Comment/>
<Type> <Type>
<v8:Type>cfg:CatalogRef.ТелеграмСообщение</v8:Type> <v8:Type>cfg:CatalogRef.ТелеграмСообщения</v8:Type>
</Type> </Type>
<PasswordMode>false</PasswordMode> <PasswordMode>false</PasswordMode>
<Format/> <Format/>
@@ -200,7 +200,7 @@
</Synonym> </Synonym>
<Comment/> <Comment/>
<Type> <Type>
<v8:Type>cfg:CatalogRef.ТелеграмПользователь</v8:Type> <v8:Type>cfg:CatalogRef.ТелеграмПользователи</v8:Type>
</Type> </Type>
<PasswordMode>false</PasswordMode> <PasswordMode>false</PasswordMode>
<Format/> <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"?> <?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"> <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> <Properties>
<Name>Форма</Name> <Name>АдминистраторСистемы</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content> <v8:content>Администратор системы</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <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> </Properties>
</Form> </Role>
</MetaDataObject> </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"?> <?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"> <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> <Properties>
<Name>ПроверкаОбновленийТелеграм</Name> <Name>ПроверкаАктуальностиКонфигураций</Name>
<Synonym> <Synonym>
<v8:item> <v8:item>
<v8:lang>ru</v8:lang> <v8:lang>ru</v8:lang>
<v8:content>Проверка обновлений телеграм</v8:content> <v8:content>Проверка актуальности конфигураций</v8:content>
</v8:item> </v8:item>
</Synonym> </Synonym>
<Comment/> <Comment/>
<MethodName>CommonModule.ТелеграмРегламент.ПроверкаОбновленийПоРасписанию</MethodName> <MethodName>CommonModule.ОбновленияРегламент.ПроверкаНеактуальныхВерсийКонфигураций</MethodName>
<Description/> <Description/>
<Key/> <Key/>
<Use>false</Use> <Use>true</Use>
<Predefined>false</Predefined> <Predefined>true</Predefined>
<RestartCountOnFailure>3</RestartCountOnFailure> <RestartCountOnFailure>3</RestartCountOnFailure>
<RestartIntervalOnFailure>10</RestartIntervalOnFailure> <RestartIntervalOnFailure>10</RestartIntervalOnFailure>
</Properties> </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/> <Explanation/>
<Picture/> <Picture/>
<Content> <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">InformationRegister.ОтслеживаниеВерсийКонфигураций</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">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">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> </Content>
</Properties> </Properties>
<ChildObjects/> <ChildObjects/>

View File

@@ -17,20 +17,23 @@
<Picture/> <Picture/>
<Content> <Content>
<xr:Item xsi:type="xr:MDObjectRef">Constant.ТелеграмТокен</xr:Item> <xr:Item xsi:type="xr:MDObjectRef">Constant.ТелеграмТокен</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">InformationRegister.ТелеграмСообщения</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">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">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">HTTPService.СервисТелеграм</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Constant.ТелеграмВебХук</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">Constant.ЛогироватьHttpЗапросы</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">Document.ЛогHttpЗапроса</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">Catalog.ТелеграмДокументы</xr:Item>
<xr:Item xsi:type="xr:MDObjectRef">CommonPicture.КартинкаБот</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">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> </Content>
</Properties> </Properties>
<ChildObjects/> <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"?> <?xml version="1.0" encoding="UTF-8"?>
<VERSION>13</VERSION> <VERSION>44</VERSION>