From aa30f653599c013b65c7edd1262603d5d69a5d76 Mon Sep 17 00:00:00 2001
From: Anton <bayselonarrend@gmail.com>
Date: Sun, 14 Jul 2024 22:39:20 +0300
Subject: [PATCH] =?UTF-8?q?=D0=94=D0=B5=D1=84=D0=B5=D0=BA=D1=82=D1=8B=20SC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../src/CommonModules/OPI_Bitrix24/Module.bsl | 99 +++++++++++--------
 .../CommonModules/OPI_Инструменты/Module.bsl  |  3 +-
 .../src/CommonModules/OPI_Тесты/Module.bsl    |  9 +-
 .../OPI/src/Configuration/Configuration.mdo   |  1 +
 4 files changed, 65 insertions(+), 47 deletions(-)

diff --git a/src/ru/OPI/src/CommonModules/OPI_Bitrix24/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_Bitrix24/Module.bsl
index 54cb3bfbdf..a6f9eb81a5 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Bitrix24/Module.bsl
+++ b/src/ru/OPI/src/CommonModules/OPI_Bitrix24/Module.bsl
@@ -31,6 +31,7 @@
 // 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
@@ -511,7 +512,6 @@
 // Метод в документации API: [tasks.task.files.attach](@dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_files_attach.php)
 // 
 // Параметры:
-// Параметры:
 //  URL            - Строка        - URL внешнего вебхука или адрес Bitrix24 при использовании токена   - url
 //  IDЗадачи       - Число, Строка - ID задачи                                                          - task
 //  IDФайла        - Число, Строка - ID Файла                                                           - fileid
@@ -1042,15 +1042,17 @@
 //  Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
 Функция ДобавитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач Текст, Знач Выполнен = Ложь, Токен = "") Экспорт
     
+    Строка_ = "Строка";
+    
     Параметры = НормализоватьАвторизацию(URL, Токен, "task.checklistitem.add");
     Поля      = Новый Структура;
     
     ПривестиБулево(Выполнен);
     
-    OPI_Инструменты.ДобавитьПоле("TITLE"      , Текст   , "Строка", Поля);
-    OPI_Инструменты.ДобавитьПоле("IS_COMPLETE", Выполнен, "Строка", Поля);
+    OPI_Инструменты.ДобавитьПоле("TITLE"      , Текст   , Строка_, Поля);
+    OPI_Инструменты.ДобавитьПоле("IS_COMPLETE", Выполнен, Строка_, Поля);
    
-    OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи, "Строка"   , Параметры);
+    OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи, Строка_    , Параметры);
     OPI_Инструменты.ДобавитьПоле("FIELDS", Поля    , "Коллекция", Параметры);
     
     Ответ = OPI_Инструменты.Post(URL, Параметры);
@@ -1076,13 +1078,15 @@
 //  Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
 Функция ИзменитьЭлементЧеклистаЗадачи(Знач URL, Знач IDЗадачи, Знач IDЭлемента, Знач Текст, Знач Токен = "") Экспорт
     
+    Строка_ = "Строка";
+    
     Параметры = НормализоватьАвторизацию(URL, Токен, "task.checklistitem.update");
     Поля      = Новый Структура;
     
-    OPI_Инструменты.ДобавитьПоле("TITLE", Текст, "Строка", Поля);
+    OPI_Инструменты.ДобавитьПоле("TITLE", Текст, Строка_, Поля);
    
-    OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи  , "Строка"   , Параметры);
-    OPI_Инструменты.ДобавитьПоле("ITEMID", IDЭлемента, "Строка"   , Параметры);
+    OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи  , Строка_    , Параметры);
+    OPI_Инструменты.ДобавитьПоле("ITEMID", IDЭлемента, Строка_    , Параметры);
     OPI_Инструменты.ДобавитьПоле("FIELDS", Поля      , "Коллекция", Параметры);
     
     Ответ = OPI_Инструменты.Post(URL, Параметры);
@@ -1301,13 +1305,15 @@
 //  Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
 Функция ИзменитьКомментарийЗадачи(Знач URL, Знач IDЗадачи, Знач IDКомментария, Знач Текст, Знач Токен = "") Экспорт
     
+    Строка_     = "Строка";
+    
     Параметры   = НормализоватьАвторизацию(URL, Токен, "task.commentitem.update");
     
     Комментарий = Новый Структура;
     OPI_Инструменты.ДобавитьПоле("POST_MESSAGE", Текст, "Строка", Комментарий);
     
-    OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи     , "Строка"   , Параметры);
-    OPI_Инструменты.ДобавитьПоле("ITEMID", IDКомментария, "Строка"   , Параметры);
+    OPI_Инструменты.ДобавитьПоле("TASKID", IDЗадачи     , Строка_    , Параметры);
+    OPI_Инструменты.ДобавитьПоле("ITEMID", IDКомментария, Строка_    , Параметры);
     OPI_Инструменты.ДобавитьПоле("FIELDS", Комментарий  , "Коллекция", Параметры);
     
     Ответ = OPI_Инструменты.Post(URL, Параметры);
@@ -1473,16 +1479,18 @@
     , Знач КакАдминистратор = Ложь
     , Знач Токен = "") Экспорт
     
+    Строка_   = "Строка";
+    
     Параметры = НормализоватьАвторизацию(URL, Токен, "task.stages.add");
     Поля      = Новый Структура;
     
     ПривестиБулево(КакАдминистратор);
     
-    OPI_Инструменты.ДобавитьПоле("TITLE"    , Наименование    , "Строка", Поля);
-    OPI_Инструменты.ДобавитьПоле("COLOR"    , Цвет            , "Строка", Поля);
-    OPI_Инструменты.ДобавитьПоле("AFTER_ID" , IDПредыдущей    , "Строка", Поля);
-    OPI_Инструменты.ДобавитьПоле("ENTITY_ID", IDСущности      , "Строка", Поля);
-    OPI_Инструменты.ДобавитьПоле("isAdmin"  , КакАдминистратор, "Строка", Поля);
+    OPI_Инструменты.ДобавитьПоле("TITLE"    , Наименование    , Строка_, Поля);
+    OPI_Инструменты.ДобавитьПоле("COLOR"    , Цвет            , Строка_, Поля);
+    OPI_Инструменты.ДобавитьПоле("AFTER_ID" , IDПредыдущей    , Строка_, Поля);
+    OPI_Инструменты.ДобавитьПоле("ENTITY_ID", IDСущности      , Строка_, Поля);
+    OPI_Инструменты.ДобавитьПоле("isAdmin"  , КакАдминистратор, Строка_, Поля);
     
     Параметры.Вставить("fields", Поля);
     
@@ -1517,15 +1525,17 @@
     , Знач КакАдминистратор = Ложь
     , Знач Токен = "") Экспорт
     
+    Строка_   = "Строка";
+    
     Параметры = НормализоватьАвторизацию(URL, Токен, "task.stages.update");
     Поля      = Новый Структура;
     
-    OPI_Инструменты.ДобавитьПоле("TITLE"    , Наименование    , "Строка", Поля);
-    OPI_Инструменты.ДобавитьПоле("COLOR"    , Цвет            , "Строка", Поля);
-    OPI_Инструменты.ДобавитьПоле("AFTER_ID" , IDПредыдущей    , "Строка", Поля);
+    OPI_Инструменты.ДобавитьПоле("TITLE"    , Наименование    , Строка_, Поля);
+    OPI_Инструменты.ДобавитьПоле("COLOR"    , Цвет            , Строка_, Поля);
+    OPI_Инструменты.ДобавитьПоле("AFTER_ID" , IDПредыдущей    , Строка_, Поля);
     OPI_Инструменты.ДобавитьПоле("isAdmin"  , КакАдминистратор, "Булево", Поля);
     
-    OPI_Инструменты.ДобавитьПоле("id"    , IDСтадии, "Строка"   , Параметры);
+    OPI_Инструменты.ДобавитьПоле("id"    , IDСтадии, Строка_    , Параметры);
     OPI_Инструменты.ДобавитьПоле("fields", Поля    , "Коллекция", Параметры);
     
     Ответ = OPI_Инструменты.Post(URL, Параметры);
@@ -1616,20 +1626,21 @@
     , Знач После = 0
     , Знач Токен = "") Экспорт
     
+    Строка_   = "Строка";
     
-    Параметры  = НормализоватьАвторизацию(URL, Токен, "task.stages.movetask");
+    Параметры = НормализоватьАвторизацию(URL, Токен, "task.stages.movetask");
     
-    OPI_Инструменты.ДобавитьПоле("id"     , IDЗадачи, "Строка", Параметры);
-    OPI_Инструменты.ДобавитьПоле("stageId", IDСтадии, "Строка", Параметры);
+    OPI_Инструменты.ДобавитьПоле("id"     , IDЗадачи, Строка_, Параметры);
+    OPI_Инструменты.ДобавитьПоле("stageId", IDСтадии, Строка_, Параметры);
     
     Если ЗначениеЗаполнено(Перед) Тогда
         
-        OPI_Инструменты.ДобавитьПоле("before", Перед, "Строка", Параметры);
+        OPI_Инструменты.ДобавитьПоле("before", Перед, Строка_, Параметры);
             
     Иначе
         
         OPI_ПреобразованиеТипов.ПолучитьСтроку(После);
-        OPI_Инструменты.ДобавитьПоле("after", После, "Строка", Параметры);
+        OPI_Инструменты.ДобавитьПоле("after", После, Строка_, Параметры);
         
     КонецЕсли;
         
@@ -1668,15 +1679,17 @@
     , Знач ДатаУстановки = ""
     , Знач Токен = "") Экспорт
         
+    Строка_   = "Строка";
+    
     Параметры = НормализоватьАвторизацию(URL, Токен, "task.elapseditem.add");
     Поля      = Новый Структура;
         
-    OPI_Инструменты.ДобавитьПоле("SECONDS"     , Время         , "Строка" , Поля);
-    OPI_Инструменты.ДобавитьПоле("COMMENT_TEXT", Текст         , "Строка" , Поля);
-    OPI_Инструменты.ДобавитьПоле("USER_ID"     , IDПользователя, "Строка" , Поля);
+    OPI_Инструменты.ДобавитьПоле("SECONDS"     , Время         , Строка_  , Поля);
+    OPI_Инструменты.ДобавитьПоле("COMMENT_TEXT", Текст         , Строка_  , Поля);
+    OPI_Инструменты.ДобавитьПоле("USER_ID"     , IDПользователя, Строка_  , Поля);
     OPI_Инструменты.ДобавитьПоле("CREATED_DATE", ДатаУстановки , "ДатаISO", Поля);
    
-    OPI_Инструменты.ДобавитьПоле("TASKID"  , IDЗадачи, "Строка"   , Параметры);
+    OPI_Инструменты.ДобавитьПоле("TASKID"  , IDЗадачи, Строка_    , Параметры);
     OPI_Инструменты.ДобавитьПоле("ARFIELDS", Поля    , "Коллекция", Параметры);
     
     Ответ = OPI_Инструменты.Post(URL, Параметры);
@@ -1788,16 +1801,18 @@
     , Знач Текст = ""
     , Знач ДатаУстановки = ""
     , Знач Токен = "") Экспорт
-        
+      
+    Строка_   = "Строка";
+      
     Параметры = НормализоватьАвторизацию(URL, Токен, "task.elapseditem.update");
     Поля      = Новый Структура;
         
-    OPI_Инструменты.ДобавитьПоле("SECONDS"     , Время         , "Строка" , Поля);
-    OPI_Инструменты.ДобавитьПоле("COMMENT_TEXT", Текст         , "Строка" , Поля);
+    OPI_Инструменты.ДобавитьПоле("SECONDS"     , Время         , Строка_  , Поля);
+    OPI_Инструменты.ДобавитьПоле("COMMENT_TEXT", Текст         , Строка_  , Поля);
     OPI_Инструменты.ДобавитьПоле("CREATED_DATE", ДатаУстановки , "ДатаISO", Поля);
    
-    OPI_Инструменты.ДобавитьПоле("TASKID"  , IDЗадачи, "Строка"   , Параметры);
-    OPI_Инструменты.ДобавитьПоле("ITEMID"  , IDЗаписи, "Строка"   , Параметры);
+    OPI_Инструменты.ДобавитьПоле("TASKID"  , IDЗадачи, Строка_    , Параметры);
+    OPI_Инструменты.ДобавитьПоле("ITEMID"  , IDЗаписи, Строка_    , Параметры);
     OPI_Инструменты.ДобавитьПоле("ARFIELDS", Поля    , "Коллекция", Параметры);
     
     Ответ = OPI_Инструменты.Post(URL, Параметры);
@@ -2301,7 +2316,6 @@
 //  Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
 Функция ЗагрузитьФайлВКаталог(Знач URL, Знач Наименование, Знач Файл, Знач IDКаталога, Знач Токен = "") Экспорт
 
-
     OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
     OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
         
@@ -2329,8 +2343,7 @@
              
         КонецЕсли;
         
-    КонецЕсли;
-    
+    КонецЕсли;  
     
     Возврат Ответ;  
       
@@ -2824,14 +2837,16 @@
     , Знач IDПервого = ""
     , Знач Токен = "") Экспорт
     
+    Строка_ = "Строка";
+    
     OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПоследнего);
     OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПервого);
     
     Параметры = НормализоватьАвторизацию(URL, Токен, "im.dialog.messages.get");
     
-    OPI_Инструменты.ДобавитьПоле("DIALOG_ID", IDЧата      , "Строка", Параметры);
-    OPI_Инструменты.ДобавитьПоле("LAST_ID"  , IDПоследнего, "Строка", Параметры);
-    OPI_Инструменты.ДобавитьПоле("FIRST_ID" , IDПервого   , "Строка", Параметры);
+    OPI_Инструменты.ДобавитьПоле("DIALOG_ID", IDЧата      , Строка_, Параметры);
+    OPI_Инструменты.ДобавитьПоле("LAST_ID"  , IDПоследнего, Строка_, Параметры);
+    OPI_Инструменты.ДобавитьПоле("FIRST_ID" , IDПервого   , Строка_, Параметры);
     
     Ответ = OPI_Инструменты.Post(URL, Параметры);
     
@@ -3117,11 +3132,13 @@
 //  Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
 Функция ОтправитьФайл(Знач URL, Знач IDЧата, Знач IDФайла, Знач Описание = "", Знач Токен = "") Экспорт
   
+    Строка_   = "Строка";
+    
     Параметры = НормализоватьАвторизацию(URL, Токен, "im.disk.file.commit");
     
-    OPI_Инструменты.ДобавитьПоле("CHAT_ID"  , IDЧата  , "Строка", Параметры);
-    OPI_Инструменты.ДобавитьПоле("UPLOAD_ID", IDФайла , "Строка", Параметры);
-    OPI_Инструменты.ДобавитьПоле("MESSAGE"  , Описание, "Строка", Параметры);
+    OPI_Инструменты.ДобавитьПоле("CHAT_ID"  , IDЧата  , Строка_, Параметры);
+    OPI_Инструменты.ДобавитьПоле("UPLOAD_ID", IDФайла , Строка_, Параметры);
+    OPI_Инструменты.ДобавитьПоле("MESSAGE"  , Описание, Строка_, Параметры);
         
     Ответ = OPI_Инструменты.Post(URL, Параметры);
     
diff --git a/src/ru/OPI/src/CommonModules/OPI_Инструменты/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_Инструменты/Module.bsl
index 6dce66a93d..c7707fa560 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Инструменты/Module.bsl
+++ b/src/ru/OPI/src/CommonModules/OPI_Инструменты/Module.bsl
@@ -826,8 +826,9 @@
     ЗаменаТочки = "___";
     ИмяФайла    = СтрЗаменить(ДанныеФайла, ЗаменаТочки, ".");
     МассивИмени = СтрРазделить(ИмяФайла, "|", Ложь);
+    ЧастейИмени = 2;
     
-    Если МассивИмени.Количество() = 2 Тогда
+    Если МассивИмени.Количество() = ЧастейИмени Тогда
         ИмяПоля  = МассивИмени[0];
         ИмяФайла = МассивИмени[1];
     Иначе
diff --git a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl
index 9341bc4660..adc4ce76ca 100644
--- a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl
+++ b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl
@@ -8013,7 +8013,7 @@
         
     // !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьКомментарийЗадачи (хук)", "Bitrix24");
     
-    Проверка_БитриксИстина(Результат); // SKIP                                                                                
+    Проверка_БитриксИстина(Результат); // SKIP
         
     URL           = ПараметрыФункции["Bitrix24_Domain"];
     Токен         = ПараметрыФункции["Bitrix24_Token"];
@@ -8184,7 +8184,7 @@
     
     Проверка_БитриксИстина(Результат);
     
-    OPI_Bitrix24.ПеренестиЗадачуВСтадиюКанбана(URL, IDЗадачи, 2, , , Токен)
+    OPI_Bitrix24.ПеренестиЗадачуВСтадиюКанбана(URL, IDЗадачи, 2, , , Токен);
     
 КонецПроцедуры
 
@@ -8944,12 +8944,11 @@
     OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_ChatMessageID", IDСообщения);  // SKIP  
     ПараметрыФункции.Вставить("Bitrix24_ChatMessageID", IDСообщения);                   // SKIP
 
-    
     URL            = ПараметрыФункции["Bitrix24_Domain"];
     Токен          = ПараметрыФункции["Bitrix24_Token"];
     IDПользователя = 10;
     
-    Результат = OPI_Bitrix24.ПолучитьСписокСообщенийЧата(URL, IDПользователя, , 0,Токен);
+    Результат = OPI_Bitrix24.ПолучитьСписокСообщенийЧата(URL, IDПользователя, , 0, Токен);
     
     // END
    
@@ -8980,7 +8979,7 @@
     IDПользователя = 10;
     IDСообщения    = ПараметрыФункции["Bitrix24_UserMessageID"];
     
-    Результат = OPI_Bitrix24.ОтметитьСообщениеКакПрочитанное(URL, IDПользователя, IDСообщения,Токен);
+    Результат = OPI_Bitrix24.ОтметитьСообщениеКакПрочитанное(URL, IDПользователя, IDСообщения, Токен);
     
     // END
    
diff --git a/src/ru/OPI/src/Configuration/Configuration.mdo b/src/ru/OPI/src/Configuration/Configuration.mdo
index 8f917a17b7..bec018c96d 100644
--- a/src/ru/OPI/src/Configuration/Configuration.mdo
+++ b/src/ru/OPI/src/Configuration/Configuration.mdo
@@ -57,6 +57,7 @@
   <commonModules>CommonModule.OPI_Slack</commonModules>
   <commonModules>CommonModule.OPI_Airtable</commonModules>
   <commonModules>CommonModule.OPI_Dropbox</commonModules>
+  <commonModules>CommonModule.OPI_Bitrix24</commonModules>
   <commonModules>CommonModule.OPI_Тесты</commonModules>
   <commonModules>CommonModule.OPI_ПолучениеДанныхТестов</commonModules>
 </mdclass:Configuration>