From d1c7e02704aaf48a9e0ff9fd56708ea4540c4185 Mon Sep 17 00:00:00 2001
From: Anton Titovets <bayselonarrend@gmail.com>
Date: Fri, 9 Aug 2024 14:36:21 +0300
Subject: [PATCH] =?UTF-8?q?VKT:=20=D0=9E=D1=82=D0=BF=D1=80=D0=B0=D0=B2?=
 =?UTF-8?q?=D0=BA=D0=B0=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8?=
 =?UTF-8?q?=D0=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../OPI_Airtable/OPI_Airtable.mdo             |   4 +
 .../OPI_Bitrix24/OPI_Bitrix24.mdo             |   2 +-
 .../CommonModules/OPI_Dropbox/OPI_Dropbox.mdo |   2 +-
 .../OPI_GoogleCalendar/OPI_GoogleCalendar.mdo |   4 +
 .../OPI_GoogleDrive/OPI_GoogleDrive.mdo       |   4 +
 .../OPI_GoogleSheets/OPI_GoogleSheets.mdo     |   4 +
 .../OPI_GoogleWorkspace.mdo                   |   4 +
 .../CommonModules/OPI_Notion/OPI_Notion.mdo   |   2 +-
 .../src/CommonModules/OPI_Slack/OPI_Slack.mdo |   2 +-
 .../OPI_Telegram/OPI_Telegram.mdo             |   2 +-
 .../CommonModules/OPI_Twitter/OPI_Twitter.mdo |   2 +-
 .../OPI/src/CommonModules/OPI_VK/OPI_VK.mdo   |   2 +-
 .../src/CommonModules/OPI_VKTeams/Module.bsl  | 156 ++++++++++++++++++
 .../OPI_VkTeams.mdo                           |   4 +-
 .../src/CommonModules/OPI_Viber/OPI_Viber.mdo |   2 +-
 .../src/CommonModules/OPI_VkTeams/Module.bsl  |  81 ---------
 .../OPI_YandexDisk/OPI_YandexDisk.mdo         |   2 +-
 .../OPI_YandexID/OPI_YandexID.mdo             |   2 +-
 .../OPI_Инструменты/OPI_Инструменты.mdo       |   2 +-
 .../OPI_Криптография/OPI_Криптография.mdo     |   2 +-
 .../OPI_ПолучениеДанныхТестов/Module.bsl      |   1 +
 .../OPI_ПреобразованиеТипов.mdo               |   2 +-
 .../src/CommonModules/OPI_Тесты/Module.bsl    |  86 +++++++++-
 .../OPI/src/Configuration/Configuration.mdo   |   2 +-
 24 files changed, 277 insertions(+), 99 deletions(-)
 create mode 100644 src/ru/OPI/src/CommonModules/OPI_VKTeams/Module.bsl
 rename src/ru/OPI/src/CommonModules/{OPI_VkTeams => OPI_VKTeams}/OPI_VkTeams.mdo (84%)
 delete mode 100644 src/ru/OPI/src/CommonModules/OPI_VkTeams/Module.bsl

diff --git a/src/ru/OPI/src/CommonModules/OPI_Airtable/OPI_Airtable.mdo b/src/ru/OPI/src/CommonModules/OPI_Airtable/OPI_Airtable.mdo
index 7dfa64ba1b..621abbf3bb 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Airtable/OPI_Airtable.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_Airtable/OPI_Airtable.mdo
@@ -5,6 +5,10 @@
     <key></key>
     <value>OPI airtable</value>
   </synonym>
+  <synonym>
+    <key>ru</key>
+    <value>Airtable (ОПИ)</value>
+  </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
   <clientOrdinaryApplication>true</clientOrdinaryApplication>
diff --git a/src/ru/OPI/src/CommonModules/OPI_Bitrix24/OPI_Bitrix24.mdo b/src/ru/OPI/src/CommonModules/OPI_Bitrix24/OPI_Bitrix24.mdo
index b85b6c0e53..8b84e57fa6 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Bitrix24/OPI_Bitrix24.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_Bitrix24/OPI_Bitrix24.mdo
@@ -3,7 +3,7 @@
   <name>OPI_Bitrix24</name>
   <synonym>
     <key>ru</key>
-    <value>Bitrix24 (OPI)</value>
+    <value>Bitrix24 (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_Dropbox/OPI_Dropbox.mdo b/src/ru/OPI/src/CommonModules/OPI_Dropbox/OPI_Dropbox.mdo
index 7902731e7c..f932379008 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Dropbox/OPI_Dropbox.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_Dropbox/OPI_Dropbox.mdo
@@ -7,7 +7,7 @@
   </synonym>
   <synonym>
     <key>ru</key>
-    <value>Drop box</value>
+    <value>Dropbox (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_GoogleCalendar/OPI_GoogleCalendar.mdo b/src/ru/OPI/src/CommonModules/OPI_GoogleCalendar/OPI_GoogleCalendar.mdo
index 3d38018f54..141533c52f 100644
--- a/src/ru/OPI/src/CommonModules/OPI_GoogleCalendar/OPI_GoogleCalendar.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_GoogleCalendar/OPI_GoogleCalendar.mdo
@@ -5,6 +5,10 @@
     <key></key>
     <value>OPI google calendar</value>
   </synonym>
+  <synonym>
+    <key>ru</key>
+    <value>Google Calendar (ОПИ)</value>
+  </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
   <clientOrdinaryApplication>true</clientOrdinaryApplication>
diff --git a/src/ru/OPI/src/CommonModules/OPI_GoogleDrive/OPI_GoogleDrive.mdo b/src/ru/OPI/src/CommonModules/OPI_GoogleDrive/OPI_GoogleDrive.mdo
index 696a3a5326..cb540a246b 100644
--- a/src/ru/OPI/src/CommonModules/OPI_GoogleDrive/OPI_GoogleDrive.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_GoogleDrive/OPI_GoogleDrive.mdo
@@ -5,6 +5,10 @@
     <key></key>
     <value>OPI google drive</value>
   </synonym>
+  <synonym>
+    <key>ru</key>
+    <value>Google Drive (ОПИ)</value>
+  </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
   <clientOrdinaryApplication>true</clientOrdinaryApplication>
diff --git a/src/ru/OPI/src/CommonModules/OPI_GoogleSheets/OPI_GoogleSheets.mdo b/src/ru/OPI/src/CommonModules/OPI_GoogleSheets/OPI_GoogleSheets.mdo
index c26710fdc3..9b5b143f52 100644
--- a/src/ru/OPI/src/CommonModules/OPI_GoogleSheets/OPI_GoogleSheets.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_GoogleSheets/OPI_GoogleSheets.mdo
@@ -5,6 +5,10 @@
     <key></key>
     <value>OPI google sheets</value>
   </synonym>
+  <synonym>
+    <key>ru</key>
+    <value>Google Sheets (ОПИ)</value>
+  </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
   <clientOrdinaryApplication>true</clientOrdinaryApplication>
diff --git a/src/ru/OPI/src/CommonModules/OPI_GoogleWorkspace/OPI_GoogleWorkspace.mdo b/src/ru/OPI/src/CommonModules/OPI_GoogleWorkspace/OPI_GoogleWorkspace.mdo
index 45fb1957ce..a253c625f6 100644
--- a/src/ru/OPI/src/CommonModules/OPI_GoogleWorkspace/OPI_GoogleWorkspace.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_GoogleWorkspace/OPI_GoogleWorkspace.mdo
@@ -5,6 +5,10 @@
     <key></key>
     <value>OPI google workspace</value>
   </synonym>
+  <synonym>
+    <key>ru</key>
+    <value>Google Workspace (ОПИ)</value>
+  </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
   <clientOrdinaryApplication>true</clientOrdinaryApplication>
diff --git a/src/ru/OPI/src/CommonModules/OPI_Notion/OPI_Notion.mdo b/src/ru/OPI/src/CommonModules/OPI_Notion/OPI_Notion.mdo
index 2af4fd559d..cfe6844564 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Notion/OPI_Notion.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_Notion/OPI_Notion.mdo
@@ -3,7 +3,7 @@
   <name>OPI_Notion</name>
   <synonym>
     <key>ru</key>
-    <value>Методы работы с Notion (ОПИ)</value>
+    <value>Notion (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_Slack/OPI_Slack.mdo b/src/ru/OPI/src/CommonModules/OPI_Slack/OPI_Slack.mdo
index 10c2bd2efb..463f14da27 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Slack/OPI_Slack.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_Slack/OPI_Slack.mdo
@@ -3,7 +3,7 @@
   <name>OPI_Slack</name>
   <synonym>
     <key>ru</key>
-    <value>Slack</value>
+    <value>Slack (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_Telegram/OPI_Telegram.mdo b/src/ru/OPI/src/CommonModules/OPI_Telegram/OPI_Telegram.mdo
index cc233a0791..2bd551e40e 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Telegram/OPI_Telegram.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_Telegram/OPI_Telegram.mdo
@@ -3,7 +3,7 @@
   <name>OPI_Telegram</name>
   <synonym>
     <key>ru</key>
-    <value>Методы интеграции с Telegram (ОПИ)</value>
+    <value>Telegram (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_Twitter/OPI_Twitter.mdo b/src/ru/OPI/src/CommonModules/OPI_Twitter/OPI_Twitter.mdo
index 759025a8c6..6129aac20d 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Twitter/OPI_Twitter.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_Twitter/OPI_Twitter.mdo
@@ -3,7 +3,7 @@
   <name>OPI_Twitter</name>
   <synonym>
     <key>ru</key>
-    <value>Методы работы с Twitter (ОПИ)</value>
+    <value>Twitter (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_VK/OPI_VK.mdo b/src/ru/OPI/src/CommonModules/OPI_VK/OPI_VK.mdo
index f0ebc10c6b..a0a1287621 100644
--- a/src/ru/OPI/src/CommonModules/OPI_VK/OPI_VK.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_VK/OPI_VK.mdo
@@ -3,7 +3,7 @@
   <name>OPI_VK</name>
   <synonym>
     <key>ru</key>
-    <value>Методы интеграции с VK (ОПИ)</value>
+    <value>VK (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_VKTeams/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_VKTeams/Module.bsl
new file mode 100644
index 0000000000..ccde4ac03f
--- /dev/null
+++ b/src/ru/OPI/src/CommonModules/OPI_VKTeams/Module.bsl
@@ -0,0 +1,156 @@
+// OneScript: ./OInt/core/Modules/OPI_VKTeams.os
+// Lib: VKTeams
+// CLI: vkteams
+
+// MIT License
+
+// Copyright (c) 2023 Anton Tsitavets
+
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
+
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+
+// https://github.com/Bayselonarrend/OpenIntegrations
+
+// BSLLS:Typo-off
+// BSLLS:IncorrectLineBreak-off
+// BSLLS:NumberOfOptionalParams-off
+// BSLLS:UsingServiceTag-off
+// BSLLS:LineLength-off
+
+//@skip-check module-structure-top-region
+//@skip-check module-structure-method-in-regions
+//@skip-check wrong-string-literal-content
+//@skip-check method-too-many-params
+
+// Раскомментировать, если выполняется OneScript
+// #Использовать "../../tools"
+
+#Область ПрограммныйИнтерфейс
+
+#Область ОбщиеМетоды
+
+// Проверить токен
+// Проверяет работоспособность токена бота
+//
+// Примечание:
+// Метод в документации API: [GET /self/get](@teams.vk.com/botapi/#/self/get_self_get)
+//  
+// Параметры:
+//  Токен - Строка - Токен бота - token
+// 
+// Возвращаемое значение:
+//  Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
+Функция ПроверитьТокен(Знач Токен) Экспорт
+
+	URL       = "/self/get";
+	Параметры = НормализоватьОснову(URL, Токен); 
+     
+    Ответ = OPI_Инструменты.Get(URL, Параметры);
+
+    Возврат Ответ;
+    	
+КонецФункции
+
+// Получить события
+// Получает события бота в Polling режиме
+// 
+// Примечание:
+// Метод в документации API: [GET /events/get](@teams.vk.com/botapi/#/events/get_events_get)
+// 
+// Параметры:
+//  Токен        - Строка        - Токен бота                                   - token
+//  IDПоследнего - Строка, Число - ID последнего обработанного до этого события - last
+//  Таймаут      - Строка, Число - Время удержания соединения для Long Polling  - timeout
+// 
+// Возвращаемое значение:
+//  Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
+Функция ПолучитьСобытия(Знач Токен, Знач IDПоследнего, Знач Таймаут = 0) Экспорт
+	
+	URL          = "/events/get";
+	Параметры    = НормализоватьОснову(URL, Токен); 
+    IDПоследнего = OPI_Инструменты.ЧислоВСтроку(IDПоследнего);
+    
+	OPI_Инструменты.ДобавитьПоле("lastEventId", IDПоследнего, "Строка", Параметры);
+	OPI_Инструменты.ДобавитьПоле("pollTime"   , Таймаут     , "Строка", Параметры); 
+     
+    Ответ = OPI_Инструменты.Get(URL, Параметры);
+
+    Возврат Ответ;
+    
+КонецФункции
+
+#КонецОбласти
+
+#Область ОтправкаСообщений
+
+// Отправить текстовое сообщение
+// Отправляет текстовое сообщение в чат
+// 
+// Примечание:
+// Можно упомянуть пользователя, добавив в текст его userId в следующем формате @[userId]
+// Метод в документации API: [GET /messages/sendText](@teams.vk.com/botapi/#/messages/get_messages_sendText)
+// 
+// Параметры:
+//  Токен         - Строка           - Токен бота                                             - token
+//  IDЧата        - Строка, Число    - ID чата для отправки сообщения                         - chatid
+//  Текст         - Строка           - Текст сообщения                                        - text
+//  IDЦитируемого - Строка, Число    - ID цитируемого сообщения, если необходимо              - reply
+//  Клавиатура    - Массив Из Строка - Кнопки к сообщению, если необходимо                    - keyboard
+//  Разметка      - Строка           - Вид разметки для текста сообщения: MarkdownV2 или HTML - parsemod
+// 
+// Возвращаемое значение:
+//  Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
+Функция ОтправитьТекстовоеСообщение(Знач Токен
+	, Знач IDЧата
+	, Знач Текст
+	, Знач IDЦитируемого = 0
+	, Знач Клавиатура = ""
+	, Знач Разметка = "MarkdownV2") Экспорт
+	
+	URL       = "/messages/sendText";
+	Параметры = НормализоватьОснову(URL, Токен); 
+    
+	OPI_Инструменты.ДобавитьПоле("chatId"              , IDЧата       , "Строка"   , Параметры);
+	OPI_Инструменты.ДобавитьПоле("text"                , Текст        , "Строка"   , Параметры);
+	OPI_Инструменты.ДобавитьПоле("replyMsgId"          , IDЦитируемого, "Строка"   , Параметры);
+	OPI_Инструменты.ДобавитьПоле("inlineKeyboardMarkup", Клавиатура   , "Коллекция", Параметры);
+	OPI_Инструменты.ДобавитьПоле("parseMode"           , Разметка     , "Строка"   , Параметры); 
+     
+    Ответ = OPI_Инструменты.Get(URL, Параметры);
+
+    Возврат Ответ;
+    
+КонецФункции
+
+#КонецОбласти
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+Функция НормализоватьОснову(URL, Знач Токен)
+	
+	URL       = "https://myteam.mail.ru/bot/v1" + URL;
+	Параметры = Новый Структура;
+	OPI_Инструменты.ДобавитьПоле("token", Токен, "Строка", Параметры);
+	
+	Возврат Параметры;
+	
+КонецФункции
+
+#КонецОбласти
\ No newline at end of file
diff --git a/src/ru/OPI/src/CommonModules/OPI_VkTeams/OPI_VkTeams.mdo b/src/ru/OPI/src/CommonModules/OPI_VKTeams/OPI_VkTeams.mdo
similarity index 84%
rename from src/ru/OPI/src/CommonModules/OPI_VkTeams/OPI_VkTeams.mdo
rename to src/ru/OPI/src/CommonModules/OPI_VKTeams/OPI_VkTeams.mdo
index f1a0881271..9d970310cf 100644
--- a/src/ru/OPI/src/CommonModules/OPI_VkTeams/OPI_VkTeams.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_VKTeams/OPI_VkTeams.mdo
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="cba61dc6-38eb-4bff-83cd-34dbc233f294">
-  <name>OPI_VkTeams</name>
+  <name>OPI_VKTeams</name>
   <synonym>
     <key>ru</key>
-    <value>Vk Teams (ОПИ)</value>
+    <value>VK Teams (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_Viber/OPI_Viber.mdo b/src/ru/OPI/src/CommonModules/OPI_Viber/OPI_Viber.mdo
index dc7840096f..34a127edd4 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Viber/OPI_Viber.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_Viber/OPI_Viber.mdo
@@ -3,7 +3,7 @@
   <name>OPI_Viber</name>
   <synonym>
     <key>ru</key>
-    <value>Методы интеграции с Viber (ОПИ)</value>
+    <value>Viber (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_VkTeams/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_VkTeams/Module.bsl
deleted file mode 100644
index e61f31cb06..0000000000
--- a/src/ru/OPI/src/CommonModules/OPI_VkTeams/Module.bsl
+++ /dev/null
@@ -1,81 +0,0 @@
-// OneScript: ./OInt/core/Modules/OPI_VkTeams.os
-// Lib: VkTeams
-// CLI: vkteams
-
-// MIT License
-
-// Copyright (c) 2023 Anton Tsitavets
-
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-
-// https://github.com/Bayselonarrend/OpenIntegrations
-
-// BSLLS:Typo-off
-// BSLLS:IncorrectLineBreak-off
-// BSLLS:NumberOfOptionalParams-off
-// BSLLS:UsingServiceTag-off
-// BSLLS:LineLength-off
-
-//@skip-check module-structure-top-region
-//@skip-check module-structure-method-in-regions
-//@skip-check wrong-string-literal-content
-//@skip-check method-too-many-params
-
-// Раскомментировать, если выполняется OneScript
-// #Использовать "../../tools"
-
-#Область ПрограммныйИнтерфейс
-
-// Проверить токен
-// Проверяет работоспособность токена бота
-//
-// Примечание:
-// Метод в документации API: [GET /self/get](@teams.vk.com/botapi/#/self/get_self_get)
-//  
-// Параметры:
-//  Токен - Строка - Токен бота - token
-// 
-// Возвращаемое значение:
-//  Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK Teams
-Функция ПроверитьТокен(Знач Токен) Экспорт
-
-	URL       = "/self/get";
-	Параметры = НормализоватьОснову(URL, Токен); 
-     
-    Ответ = OPI_Инструменты.Get(URL, Параметры);
-
-    Возврат Ответ;
-    	
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
-Функция НормализоватьОснову(URL, Знач Токен)
-	
-	URL       = "https://myteam.mail.ru/bot/v1" + URL;
-	Параметры = Новый Структура;
-	OPI_Инструменты.ДобавитьПоле("token", Токен, "Строка", Параметры);
-	
-	Возврат Параметры;
-	
-КонецФункции
-
-#КонецОбласти
\ No newline at end of file
diff --git a/src/ru/OPI/src/CommonModules/OPI_YandexDisk/OPI_YandexDisk.mdo b/src/ru/OPI/src/CommonModules/OPI_YandexDisk/OPI_YandexDisk.mdo
index 6846d3d51e..50eb5dbb80 100644
--- a/src/ru/OPI/src/CommonModules/OPI_YandexDisk/OPI_YandexDisk.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_YandexDisk/OPI_YandexDisk.mdo
@@ -3,7 +3,7 @@
   <name>OPI_YandexDisk</name>
   <synonym>
     <key>ru</key>
-    <value>Методы работы с Yandex Disk (ОПИ)</value>
+    <value>Yandex.Disk (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_YandexID/OPI_YandexID.mdo b/src/ru/OPI/src/CommonModules/OPI_YandexID/OPI_YandexID.mdo
index 7b8489440d..8aff0ad3c2 100644
--- a/src/ru/OPI/src/CommonModules/OPI_YandexID/OPI_YandexID.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_YandexID/OPI_YandexID.mdo
@@ -3,7 +3,7 @@
   <name>OPI_YandexID</name>
   <synonym>
     <key>ru</key>
-    <value>Методы работы с Yandex ID (ОПИ)</value>
+    <value>YandexID (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_Инструменты/OPI_Инструменты.mdo b/src/ru/OPI/src/CommonModules/OPI_Инструменты/OPI_Инструменты.mdo
index 14693fe85e..5a54779063 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Инструменты/OPI_Инструменты.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_Инструменты/OPI_Инструменты.mdo
@@ -3,7 +3,7 @@
   <name>OPI_Инструменты</name>
   <synonym>
     <key>ru</key>
-    <value>OPI инструменты</value>
+    <value>Инструменты (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_Криптография/OPI_Криптография.mdo b/src/ru/OPI/src/CommonModules/OPI_Криптография/OPI_Криптография.mdo
index 710fe257bf..99516677a2 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Криптография/OPI_Криптография.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_Криптография/OPI_Криптография.mdo
@@ -3,7 +3,7 @@
   <name>OPI_Криптография</name>
   <synonym>
     <key>ru</key>
-    <value>Криптография (OPI)</value>
+    <value>Криптография (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl
index 6d2112c396..fab56110e4 100644
--- a/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl
+++ b/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl
@@ -238,6 +238,7 @@
     НовыйТест(ТаблицаТестов, "Б24_УправлениеПользователями"         , "Управление пользователями"      , Битрикс);
     
     НовыйТест(ТаблицаТестов, "ВКТ_ОбщиеМетоды"                      , "Общие методы"                   , ВКТ);
+	НовыйТест(ТаблицаТестов, "ВКТ_ОтправкаСообщений"                , "Отправка сообщений"             , ВКТ);
 
     Возврат ТаблицаТестов;
 
diff --git a/src/ru/OPI/src/CommonModules/OPI_ПреобразованиеТипов/OPI_ПреобразованиеТипов.mdo b/src/ru/OPI/src/CommonModules/OPI_ПреобразованиеТипов/OPI_ПреобразованиеТипов.mdo
index 154515af34..b325defb56 100644
--- a/src/ru/OPI/src/CommonModules/OPI_ПреобразованиеТипов/OPI_ПреобразованиеТипов.mdo
+++ b/src/ru/OPI/src/CommonModules/OPI_ПреобразованиеТипов/OPI_ПреобразованиеТипов.mdo
@@ -3,7 +3,7 @@
   <name>OPI_ПреобразованиеТипов</name>
   <synonym>
     <key>ru</key>
-    <value>Преобразование типов (OPI)</value>
+    <value>Преобразование типов (ОПИ)</value>
   </synonym>
   <server>true</server>
   <externalConnection>true</externalConnection>
diff --git a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl
index 41598175b6..0a9c15b3ed 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl
+++ b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl
@@ -1,4 +1,4 @@
-// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
+// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
 
 // MIT License
 
@@ -3235,9 +3235,20 @@
     OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_Token", ПараметрыТеста);
 
     VkTeams_ПроверитьТокен(ПараметрыТеста);
+    VkTeams_ПолучитьСобытия(ПараметрыТеста);
     
 КонецПроцедуры
 
+Процедура ВКТ_ОтправкаСообщений() Экспорт
+	
+	ПараметрыТеста = Новый Структура;
+    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_Token", ПараметрыТеста);
+    OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VkTeams_ChatID", ПараметрыТеста);
+    
+	VkTeams_ОтправитьТекстовоеСообщение(ПараметрыТеста);
+	
+КонецПроцедуры
+
 #КонецОбласти
 
 #КонецОбласти
@@ -3935,6 +3946,20 @@
 	
 КонецПроцедуры
 
+Процедура Проверка_ВКТСобытия(Знач Результат)
+
+	OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
+	OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["events"]).ИмеетТип("Массив");	
+		
+КонецПроцедуры
+
+Процедура Проверка_ВКТСообщение(Знач Результат)
+	
+	OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
+	OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["msgId"]).Заполнено();	
+	
+КонецПроцедуры
+
 #КонецОбласти
 
 #Область АтомарныеТесты
@@ -10207,7 +10232,7 @@
 Процедура VkTeams_ПроверитьТокен(ПараметрыФункции)
 	
 	Токен     = ПараметрыФункции["VkTeams_Token"];
-    Результат = OPI_VkTeams.ПроверитьТокен(Токен);
+    Результат = OPI_VKTeams.ПроверитьТокен(Токен);
 
     // END
 
@@ -10219,6 +10244,63 @@
     
 КонецПроцедуры
 
+Процедура VkTeams_ПолучитьСобытия(ПараметрыФункции)
+	
+	Токен        = ПараметрыФункции["VkTeams_Token"];
+	IDПоследнего = 0;
+	
+	Для Н = 1 По 5 Цикл // В реальной работе - бесконечный цикл
+		
+    	Результат = OPI_VKTeams.ПолучитьСобытия(Токен, IDПоследнего, 3);
+    	
+    	// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСобытия", "VkTeams");
+
+    	Проверка_ВКТСобытия(Результат); // SKIP
+    	
+    	События   = Результат["events"];
+    	
+    	// Обработка событий...
+    	
+    	Если Не События.Количество() = 0 Тогда
+    		IDПоследнего = События[События.ВГраница()]["eventId"];	
+    	КонецЕсли;
+    	
+    КонецЦикла;
+
+    // END
+
+    OPI_Инструменты.Пауза(3);
+    
+КонецПроцедуры
+
+Процедура VkTeams_ОтправитьТекстовоеСообщение(ПараметрыФункции)
+	
+	Токен     = ПараметрыФункции["VkTeams_Token"];
+	IDЧата    = ПараметрыФункции["VkTeams_ChatID"];
+	Текст     = "Текст сообщения";
+	
+    Результат = OPI_VKTeams.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст);
+    
+    // !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение (простое)", "VkTeams");
+
+    Проверка_ВКТСообщение(Результат); // SKIP
+    
+    Текст         = "<b>Полужирный текст сообщения</b>";
+    IDЦитируемого = Результат["msgId"];
+    Разметка      = "HTML";
+    
+    Результат = OPI_VKTeams.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст, IDЦитируемого, , Разметка);
+
+    // END
+
+    // !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение", "VkTeams");
+
+    Проверка_ВКТСообщение(Результат);
+
+    OPI_Инструменты.Пауза(5);
+    
+КонецПроцедуры
+
 #КонецОбласти
 
 #КонецОбласти
diff --git a/src/ru/OPI/src/Configuration/Configuration.mdo b/src/ru/OPI/src/Configuration/Configuration.mdo
index d3cc9d6c3f..2555f23a2d 100644
--- a/src/ru/OPI/src/Configuration/Configuration.mdo
+++ b/src/ru/OPI/src/Configuration/Configuration.mdo
@@ -58,7 +58,7 @@
   <commonModules>CommonModule.OPI_Airtable</commonModules>
   <commonModules>CommonModule.OPI_Dropbox</commonModules>
   <commonModules>CommonModule.OPI_Bitrix24</commonModules>
-  <commonModules>CommonModule.OPI_VkTeams</commonModules>
+  <commonModules>CommonModule.OPI_VKTeams</commonModules>
   <commonModules>CommonModule.OPI_Тесты</commonModules>
   <commonModules>CommonModule.OPI_ПолучениеДанныхТестов</commonModules>
 </mdclass:Configuration>