├── LICENSE ├── README.md ├── media ├── HelperReg.png ├── chatBotAction.jpg └── chatBotHello.png ├── releases ├── 1.5 │ └── GreenAPI_ChatBot.epf └── 1.6 │ └── GreenAPI_ChatBot.epf └── src ├── ConfigDumpInfo.xml ├── Configuration.xml ├── DataProcessors ├── GreenAPI_ChatBot.xml ├── GreenAPI_ChatBot │ ├── Ext │ │ └── ObjectModule.bsl │ ├── Forms │ │ ├── ПомощникПодключения.xml │ │ ├── ПомощникПодключения │ │ │ └── Ext │ │ │ │ ├── Form.xml │ │ │ │ └── Form │ │ │ │ └── Module.bsl │ │ ├── ЧатБот.xml │ │ └── ЧатБот │ │ │ └── Ext │ │ │ ├── Form.xml │ │ │ └── Form │ │ │ └── Module.bsl │ └── Templates │ │ ├── QRМакет.xml │ │ ├── QRМакет │ │ └── Ext │ │ │ └── Template.xml │ │ ├── ВыборАккаунта.xml │ │ ├── ВыборАккаунта │ │ └── Ext │ │ │ └── Template.bin │ │ ├── ДанныеАккаунта.xml │ │ ├── ДанныеАккаунта │ │ └── Ext │ │ │ └── Template.bin │ │ ├── ИконкаWhatsApp.xml │ │ ├── ИконкаWhatsApp │ │ └── Ext │ │ │ └── Template.bin │ │ ├── ИконкаФиниш.xml │ │ ├── ИконкаФиниш │ │ └── Ext │ │ │ └── Template.bin │ │ ├── СканQR.xml │ │ └── СканQR │ │ └── Ext │ │ └── Template.bin └── Обработка1.xml ├── Ext └── HomePageWorkArea.xml └── Languages └── Русский.xml /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Green API 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Внешняя демо обработка с чат-ботом для WhatsApp 2 | 3 | ## Для чего нужна обработка 4 | 5 | Обработа - демо пример чат-бота для WhatsApp на базе 1С, который может быть взят за основу для написания своих чат-ботов. Интеграция сделана с использованием http сервиса, предоставляемого [Green API](https://green-api.com/). 6 | 7 | ## Что потребуется, чтобы запустить бота 8 | 9 | * Платформа 1С не ниже версии 8.3.10 10 | * Два номера с учетками WhatsApp. Номера нужны, чтобы отправлять сообщения как бы "самому себе". При этом первый номер будет тот, с которого мы будем писать команды чат-боту (далее ``клиентский номер``), а второй номер - с которого будет отвечать сам бот (далее ``номер бота``). Отправлять с одного номера не получится. 11 | * Аккаунт в сервисе [Green API](https://green-api.com/). Подойдет бесплатный тариф "Разработчик". 12 | 13 | ## Как запустить бота: 14 | 15 | 1. Устанавливаем на телефон два приложения - обычный [WhatsApp](https://play.google.com/store/apps/details?id=com.whatsapp) и [Whatsapp Business](https://play.google.com/store/apps/details?id=com.whatsapp.w4b). 16 | 17 | 2. Один номер телефона регистрируем в WhatsApp, а другой в Whatsapp Business. 18 | 19 | 3. Скачиваем [обработку чат-бота](https://github.com/green-api/whatsapp-chatbot-1c-example/releases/download/1.0/GreenAPI_ChatBot.epf), 20 | 21 | 4. Открываем обработку в режиме 1С Предприятие, переходим на вкладку ``Настройки`` и нажимаем на ``Помощник подключения``. Далее следуем инструкциям помощника. В помощнике будет предложено сканировать QR код. Сканируем его для ``номера бота``, с которого чат-бот будет писать на наш ``клиентский номер``. 22 | 23 | ![`Интерфейс помощника`](media/HelperReg.png) 24 | 25 | 5. Переходим на вкладку ``Чат-бот`` и нажимаем кнопку ``Запустить бота``. 26 | 6. Открываем WhatsApp, на котором зарегистрирован ``клиентский номер`` и пишем любое сообщение на ``номер бота``. Бот отвечает приветственным сообщением: 27 | 28 | ![`Чат-бот начало`](media/chatBotHello.png) 29 | 30 | 7. Бот запущен. Теперь мы можем с ним общаться. Например, если написать в ответ цифру 1, то получим список номенклатуры: 31 | 32 | ![`Чат бот запрос`](media/chatBotAction.jpg) 33 | 34 | ## Особенности работы обработки 35 | 36 | Чат-бот работает в режиме ожидания получения сообщений - 20 сек. 37 | Далее переходит в режим бездействия - 10 сек. 38 | В реальных условиях режим бездействия можно сократить, чтобы работа чат-бота не прерывалась. 39 | Рекомендуется перенести код в фоновое задание на сервер. 40 | 41 | ## Важно 42 | 43 | > На время работы чат-бота ваш телефон должен быть заряжен и подключен к Интернет. Если телефон выключиться, то работа чат-бота прекратится. 44 | 45 | ## Какие сценарии поддерживает бот 46 | 47 | Сообщения и ответы бота можно настроить в коде обработки под себя. С помощью бота можно запрашивать у клиента информацию по шагам, уточняя свой вопрос с каждым новым ответом клиента. 48 | 49 | Также поддерживаются глобальные команды. Например, если написать боту текстом слово ``Выход``, то диалог сбросится и начнется с самого начала. Эту функцию можно использовать для реализации команд типа ``Отписаться``, ``Стоп`` и т.п. 50 | 51 | ## Как настроить свои сценарии 52 | 53 | 1. Открываем обработку в режиме конфигуратора. 54 | 2. В модуле объекта смотрим на функцию ``ПодготовитьШаблоныСообщений()``. Эта функция содержит все сообщения, которые пишет сам бот в ответ на сообщения пользователя. 55 | 3. Чтобы добавить новый ответ внутри этой функции вызываем метод ``НовыйОтветБота`` по аналогии как это сделано в демо-примере: 56 | 57 | ``` bsl 58 | Функция ПодготовитьШаблоныСообщений(КоллекцияШаблонов, КоллекцияГлобальныхШаблонов) 59 | 60 | ОтветПоНоменклатуре = НовыйОтветБота(НовоеСообщение, "1", "Выводим 61 | список товаров...", "Подключаемый_ВывестиНоменклатуру"); 62 | 63 | КонецФункции 64 | 65 | ``` 66 | Если нужно, то прописываем обработчик, который срабатывает после того, как клиент ответил боту верной командой. Обработчик должен быть в модуле объекта и иметь два входных параметра, например как в демо: 67 | 68 | ```bsl 69 | Процедура Подключаемый_ВывестиНоменклатуру(Чат, Шаблон) 70 | 71 | ОтправитьСообщениеВЧат(Чат.ИдЧата, 72 | "Арт: 123456, Чайник Электролюкс; цена: 1 200 руб; на складе: 12 шт, 73 | |Арт: 12223, Холодильник Хайер; цена: 45 000 руб; на складе: 4 шт 74 | |Арт: 54656, Телевизор Самсунг; цена: 110 000 руб; на складе: 2 шт"); 75 | 76 | КонецПроцедуры 77 | 78 | ``` 79 | 80 | Чтобы сделать вложенный ответ, используем тот же метод ``НовыйОтветБота()``, но только в качестве первого параметра передаем результат ``родительского`` метода, например как в демо: 81 | 82 | ```bsl 83 | // Родительский ответ 84 | ОтветПоНоменклатуре = НовыйОтветБота(НовоеСообщение, "1", "Выводим 85 | список товаров...", "Подключаемый_ВывестиНоменклатуру"); 86 | 87 | // Вложенный ответ 88 | ОтветМенеджер = НовыйОтветБота(ОтветПоНоменклатуре,, "Хотите связаться с менеджером (Да/Нет)?"); 89 | 90 | ``` 91 | 92 | Чтобы прописать глобальную команду, используем метод ``НовыйГлобальныйОтветБота()`` и первым параметром в него передаем переменную ``КоллекцияГлобальныхШаблонов``. Пример: 93 | 94 | ```bsl 95 | Функция ПодготовитьШаблоныСообщений(КоллекцияШаблонов, КоллекцияГлобальныхШаблонов) 96 | 97 | НовыйГлобальныйОтветБота(КоллекцияГлобальныхШаблонов, "Выход", "Работа с чат ботом завершается...", "Подключаемый_ВыключитьЧатБот"); 98 | 99 | КонецФункции 100 | ``` 101 | -------------------------------------------------------------------------------- /media/HelperReg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-chatbot-1c/b2de0f5a99febbfad7d3d1ded210b140e6d166f7/media/HelperReg.png -------------------------------------------------------------------------------- /media/chatBotAction.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-chatbot-1c/b2de0f5a99febbfad7d3d1ded210b140e6d166f7/media/chatBotAction.jpg -------------------------------------------------------------------------------- /media/chatBotHello.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-chatbot-1c/b2de0f5a99febbfad7d3d1ded210b140e6d166f7/media/chatBotHello.png -------------------------------------------------------------------------------- /releases/1.5/GreenAPI_ChatBot.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-chatbot-1c/b2de0f5a99febbfad7d3d1ded210b140e6d166f7/releases/1.5/GreenAPI_ChatBot.epf -------------------------------------------------------------------------------- /releases/1.6/GreenAPI_ChatBot.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-chatbot-1c/b2de0f5a99febbfad7d3d1ded210b140e6d166f7/releases/1.6/GreenAPI_ChatBot.epf -------------------------------------------------------------------------------- /src/ConfigDumpInfo.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/Configuration.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 9cd510cd-abfc-11d4-9434-004095e12fc7 7 | 53c341e0-4783-470a-8069-53c443833285 8 | 9 | 10 | 9fcd25a0-4822-11d4-9414-008048da11f9 11 | 432c9740-504f-4cd3-99cc-6565c7e7d785 12 | 13 | 14 | e3687481-0a87-462c-a166-9f34594f9bba 15 | 912c0f18-2c37-4068-a50f-d914d3b47e29 16 | 17 | 18 | 9de14907-ec23-4a07-96f0-85521cb6b53b 19 | 5653c70a-cd59-4be6-913a-0271780beeec 20 | 21 | 22 | 51f2d5d8-ea4d-4064-8892-82951750031e 23 | 3ada2a08-c999-4477-94fd-28c7c912d3cd 24 | 25 | 26 | e68182ea-4237-4383-967f-90c1e3370bc7 27 | 231cae8f-0b19-402a-bd03-d20b241f1d82 28 | 29 | 30 | fb282519-d103-4dd3-bc12-cb271d631dfc 31 | d56aeef8-6718-46c5-af87-efd5730bd9d1 32 | 33 | 34 | 35 | Конфигурация 36 | 37 | 38 | 39 | Version8_3_18 40 | ManagedApplication 41 | 42 | PlatformApplication 43 | 44 | Russian 45 | 46 | 47 | 48 | 49 | false 50 | false 51 | false 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | Biometrics 72 | true 73 | 74 | 75 | Location 76 | false 77 | 78 | 79 | BackgroundLocation 80 | false 81 | 82 | 83 | BluetoothPrinters 84 | false 85 | 86 | 87 | WiFiPrinters 88 | false 89 | 90 | 91 | Contacts 92 | false 93 | 94 | 95 | Calendars 96 | false 97 | 98 | 99 | PushNotifications 100 | false 101 | 102 | 103 | LocalNotifications 104 | false 105 | 106 | 107 | InAppPurchases 108 | false 109 | 110 | 111 | PersonalComputerFileExchange 112 | false 113 | 114 | 115 | Ads 116 | false 117 | 118 | 119 | NumberDialing 120 | false 121 | 122 | 123 | CallProcessing 124 | false 125 | 126 | 127 | CallLog 128 | false 129 | 130 | 131 | AutoSendSMS 132 | false 133 | 134 | 135 | ReceiveSMS 136 | false 137 | 138 | 139 | SMSLog 140 | false 141 | 142 | 143 | Camera 144 | false 145 | 146 | 147 | Microphone 148 | false 149 | 150 | 151 | MusicLibrary 152 | false 153 | 154 | 155 | PictureAndVideoLibraries 156 | false 157 | 158 | 159 | AudioPlaybackAndVibration 160 | false 161 | 162 | 163 | BackgroundAudioPlaybackAndVibration 164 | false 165 | 166 | 167 | InstallPackages 168 | false 169 | 170 | 171 | OSBackup 172 | true 173 | 174 | 175 | ApplicationUsageStatistics 176 | false 177 | 178 | 179 | BarcodeScanning 180 | false 181 | 182 | 183 | AllFilesAccess 184 | false 185 | 186 | 187 | 188 | 189 | Normal 190 | 191 | 192 | Language.Русский 193 | 194 | 195 | 196 | 197 | 198 | Managed 199 | NotAutoFree 200 | DontUse 201 | DontUse 202 | Taxi 203 | Version8_3_10 204 | 205 | 206 | 207 | Русский 208 | GreenAPI_ChatBot 209 | Обработка1 210 | 211 | 212 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 9f1cf8d5-2000-4162-8bb2-686a751f89fa 7 | 633dd1a8-a3b2-4130-b67e-667133a06f3f 8 | 9 | 10 | d1e436cf-4921-4623-82af-448a7833ba8b 11 | a3ee83ab-7625-465f-b2ac-a7472404d08d 12 | 13 | 14 | 15 | GreenAPI_ChatBot 16 | 17 | 18 | ru 19 | Green API Chat bot 20 | 21 | 22 | 23 | true 24 | DataProcessor.GreenAPI_ChatBot.Form.ЧатБот 25 | 26 | false 27 | 28 | 29 | 30 | 31 | 32 | 33 | IdInstance 34 | 35 | 36 | ru 37 | ID Instance 38 | 39 | 40 | 41 | 42 | xs:string 43 | 44 | 0 45 | Variable 46 | 47 | 48 | false 49 | 50 | 51 | 52 | false 53 | 54 | false 55 | false 56 | 57 | 58 | ShowError 59 | Items 60 | 61 | 62 | Auto 63 | Auto 64 | 65 | 66 | Auto 67 | 68 | 69 | 70 | 71 | ApiToken 72 | 73 | 74 | ru 75 | API Token 76 | 77 | 78 | 79 | 80 | xs:string 81 | 82 | 0 83 | Variable 84 | 85 | 86 | false 87 | 88 | 89 | 90 | false 91 | 92 | false 93 | false 94 | 95 | 96 | ShowError 97 | Items 98 | 99 | 100 | Auto 101 | Auto 102 | 103 | 104 | Auto 105 | 106 | 107 | 108 | 109 | webhookUrl 110 | 111 | 112 | ru 113 | Webhook url 114 | 115 | 116 | 117 | 118 | xs:string 119 | 120 | 0 121 | Variable 122 | 123 | 124 | false 125 | 126 | 127 | 128 | false 129 | 130 | false 131 | false 132 | 133 | 134 | DontCheck 135 | Items 136 | 137 | 138 | Auto 139 | Auto 140 | 141 | 142 | Auto 143 | 144 | 145 | 146 | 147 | ИнтервалОтправкиСообщений 148 | 149 | 150 | ru 151 | Интервал отправки сообщений 152 | 153 | 154 | 155 | 156 | xs:decimal 157 | 158 | 10 159 | 0 160 | Any 161 | 162 | 163 | false 164 | 165 | 166 | 167 | false 168 | 169 | false 170 | false 171 | 172 | 173 | DontCheck 174 | Items 175 | 176 | 177 | Auto 178 | Auto 179 | 180 | 181 | Auto 182 | 183 | 184 | 185 | 186 | ОтмечатьВходящиеСообщенияПрочитанными 187 | 188 | 189 | ru 190 | Отмечать входящие сообщения прочитанными 191 | 192 | 193 | 194 | 195 | xs:boolean 196 | 197 | false 198 | 199 | 200 | 201 | false 202 | 203 | false 204 | false 205 | 206 | 207 | DontCheck 208 | Items 209 | 210 | 211 | Auto 212 | Auto 213 | 214 | 215 | Auto 216 | 217 | 218 | 219 | 220 | ПолучатьВходящиеСообщенияИФайлы 221 | 222 | 223 | ru 224 | Получать входящие сообщения и файлы 225 | 226 | 227 | 228 | 229 | xs:boolean 230 | 231 | false 232 | 233 | 234 | 235 | false 236 | 237 | false 238 | false 239 | 240 | 241 | DontCheck 242 | Items 243 | 244 | 245 | Auto 246 | Auto 247 | 248 | 249 | Auto 250 | 251 | 252 | 253 | 254 | ПолучатьВходящиеУведомления 255 | 256 | 257 | ru 258 | Получать входящие уведомления 259 | 260 | 261 | 262 | 263 | xs:boolean 264 | 265 | false 266 | 267 | 268 | 269 | false 270 | 271 | false 272 | false 273 | 274 | 275 | DontCheck 276 | Items 277 | 278 | 279 | Auto 280 | Auto 281 | 282 | 283 | Auto 284 | 285 | 286 | 287 | 288 | ПолучатьСтатусыОтправленныхСообщений 289 | 290 | 291 | ru 292 | Получать статусы отправленных сообщений 293 | 294 | 295 | 296 | 297 | xs:boolean 298 | 299 | false 300 | 301 | 302 | 303 | false 304 | 305 | false 306 | false 307 | 308 | 309 | DontCheck 310 | Items 311 | 312 | 313 | Auto 314 | Auto 315 | 316 | 317 | Auto 318 | 319 | 320 | 321 | 322 | ПолучатьУведомленииОСостоянииТелефона 323 | 324 | 325 | ru 326 | Получать уведомлении о состоянии телефона 327 | 328 | 329 | 330 | 331 | xs:boolean 332 | 333 | false 334 | 335 | 336 | 337 | false 338 | 339 | false 340 | false 341 | 342 | 343 | DontCheck 344 | Items 345 | 346 | 347 | Auto 348 | Auto 349 | 350 | 351 | Auto 352 | 353 | 354 | 355 | 356 | ПолучатьУведомленияОСостоянииАккаунта 357 | 358 | 359 | ru 360 | Получать уведомления о состоянии аккаунта 361 | 362 | 363 | 364 | 365 | xs:boolean 366 | 367 | false 368 | 369 | 370 | 371 | false 372 | 373 | false 374 | false 375 | 376 | 377 | DontCheck 378 | Items 379 | 380 | 381 | Auto 382 | Auto 383 | 384 | 385 | Auto 386 | 387 | 388 | 389 | 390 | apiUrl 391 | 392 | 393 | ru 394 | API URL 395 | 396 | 397 | 398 | 399 | xs:string 400 | 401 | 0 402 | Variable 403 | 404 | 405 | false 406 | 407 | 408 | 409 | false 410 | 411 | false 412 | false 413 | 414 | 415 | ShowError 416 | Items 417 | 418 | 419 | Auto 420 | Auto 421 | 422 | 423 | Auto 424 | 425 | 426 | 427 | 428 | mediaUrl 429 | 430 | 431 | ru 432 | Media URL 433 | 434 | 435 | 436 | 437 | xs:string 438 | 439 | 0 440 | Variable 441 | 442 | 443 | false 444 | 445 | 446 | 447 | false 448 | 449 | false 450 | false 451 | 452 | 453 | ShowError 454 | Items 455 | 456 | 457 | Auto 458 | Auto 459 | 460 | 461 | Auto 462 | 463 | 464 | 465 | 466 | 467 | edaf35dc-d681-442d-91b2-273e378edd46 468 | 4d68946c-cf45-4027-8af8-393530391a61 469 | 470 | 471 | ae9abd2d-41f8-4f72-a5a3-0d18adbc5e67 472 | ee4b1ae7-f61a-4a26-9f78-65fff4dea77c 473 | 474 | 475 | 476 | ЧатыКлиентов 477 | 478 | 479 | ru 480 | Чаты клиентов 481 | 482 | 483 | 484 | 485 | DontCheck 486 | 487 | 488 | 489 | 490 | ИдЧата 491 | 492 | 493 | ru 494 | Ид чата 495 | 496 | 497 | 498 | 499 | xs:string 500 | 501 | 0 502 | Variable 503 | 504 | 505 | false 506 | 507 | 508 | 509 | false 510 | 511 | false 512 | false 513 | 514 | 515 | false 516 | 517 | DontCheck 518 | Items 519 | 520 | 521 | Auto 522 | Auto 523 | 524 | 525 | Auto 526 | 527 | 528 | 529 | 530 | ТекущийИндексШаблона 531 | 532 | 533 | ru 534 | Текущий индекс шаблона 535 | 536 | 537 | 538 | 539 | xs:string 540 | 541 | 0 542 | Variable 543 | 544 | 545 | false 546 | 547 | 548 | 549 | false 550 | 551 | false 552 | false 553 | 554 | 555 | false 556 | 557 | DontCheck 558 | Items 559 | 560 | 561 | Auto 562 | Auto 563 | 564 | 565 | Auto 566 | 567 | 568 | 569 | 570 |
ЧатБот
571 |
ПомощникПодключения
572 | 573 | 574 | 575 | 576 | 577 | 578 |
579 |
580 |
-------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Forms/ПомощникПодключения.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 |
4 | 5 | ПомощникПодключения 6 | 7 | 8 | ru 9 | Помощник подключения 10 | 11 | 12 | 13 | Managed 14 | false 15 | 16 | PlatformApplication 17 | MobilePlatformApplication 18 | 19 | 20 | 21 |
22 |
-------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Forms/ПомощникПодключения/Ext/Form.xml: -------------------------------------------------------------------------------- 1 |  2 |
3 | LockOwnerWindow 4 | Use 5 | UseList 6 | false 7 | None 8 | 9 | Abort 10 | Cancel 11 | Close 12 | CustomizeForm 13 | Ignore 14 | No 15 | OK 16 | RestoreValues 17 | Retry 18 | SaveValues 19 | Yes 20 | 21 | 22 | 23 | ПриОткрытии 24 | ПередЗакрытием 25 | ПриСозданииНаСервере 26 | 27 | 28 | 29 | false 30 | Vertical 31 | None 32 | false 33 | 34 | 35 | 36 | false 37 | Vertical 38 | None 39 | false 40 | 41 | 42 | 43 | true 44 | None 45 | 46 | 47 | 48 | 49 | <v8:item> 50 | <v8:lang>ru</v8:lang> 51 | <v8:content>Страница декорации начало</v8:content> 52 | </v8:item> 53 | 54 | #49B349 55 | 56 | 57 | 58 | false 59 | 75 60 | false 61 | web:White 62 | 63 | 64 | <v8:item> 65 | <v8:lang>ru</v8:lang> 66 | <v8:content>GREEN API</v8:content> 67 | </v8:item> 68 | 69 | Center 70 | Center 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | <v8:item> 79 | <v8:lang>ru</v8:lang> 80 | <v8:content>Страница декорации продолжение</v8:content> 81 | </v8:item> 82 | 83 | #49B349 84 | 85 | 86 | 87 | false 88 | 75 89 | false 90 | web:White 91 | 92 | 93 | <v8:item> 94 | <v8:lang>ru</v8:lang> 95 | <v8:content>GREEN API</v8:content> 96 | </v8:item> 97 | 98 | Center 99 | Center 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | <v8:item> 108 | <v8:lang>ru</v8:lang> 109 | <v8:content>Страница декорации окончание</v8:content> 110 | </v8:item> 111 | 112 | #49B349 113 | 114 | 115 | 116 | false 117 | 75 118 | false 119 | web:White 120 | 121 | 122 | <v8:item> 123 | <v8:lang>ru</v8:lang> 124 | <v8:content>GREEN API</v8:content> 125 | </v8:item> 126 | 127 | Center 128 | Center 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | None 138 | 139 | 140 | 141 | 142 | <v8:item> 143 | <v8:lang>ru</v8:lang> 144 | <v8:content>Страница один</v8:content> 145 | </v8:item> 146 | 147 | 148 | 149 | 150 | Vertical 151 | 152 | 153 | 154 | 45 155 | false 156 | 1 157 | 158 | 159 | <v8:item> 160 | <v8:lang>ru</v8:lang> 161 | <v8:content>Приветствуем Вас!</v8:content> 162 | </v8:item> 163 | 164 | 165 | 166 | 167 | 168 | Center 169 | Center 170 | None 171 | false 172 | 173 | 174 | 175 | 64 176 | false 177 | 178 | <v8:item> 179 | <v8:lang>ru</v8:lang> 180 | <v8:content>Давайте выполним подключением к WhatsApp</v8:content> 181 | </v8:item> 182 | 183 | 184 | 185 | 186 | 187 | КартинкаWhatsApp 188 | None 189 | 13 190 | false 191 | 4 192 | false 193 | false 194 | false 195 | Proportionally 196 | 197 | WithoutBorder 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | false 206 | 207 | <v8:item> 208 | <v8:lang>ru</v8:lang> 209 | <v8:content>Нажмите кнопку "Далее", чтобы быстро все настроить</v8:content> 210 | </v8:item> 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | <v8:item> 222 | <v8:lang>ru</v8:lang> 223 | <v8:content>Страница два</v8:content> 224 | </v8:item> 225 | 226 | 227 | 228 | ru 229 | Страница два 230 | 231 | 232 | 233 | 234 | 235 | true 236 | Center 237 | Vertical 238 | Center 239 | 240 | 241 | 242 | 45 243 | false 244 | 2 245 | 246 | 247 | <v8:item> 248 | <v8:lang>ru</v8:lang> 249 | <v8:content>Зарегистрируйтесь в личном кабинете Green API</v8:content> 250 | </v8:item> 251 | 252 | Center 253 | Center 254 | 255 | 256 | 257 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | <v8:item> 279 | <v8:lang>ru</v8:lang> 280 | <v8:content>Страница три</v8:content> 281 | </v8:item> 282 | 283 | 284 | 285 | ru 286 | Страница два 287 | 288 | 289 | 290 | 291 | 292 | Vertical 293 | 294 | 295 | 296 | 297 | 298 | <v8:item> 299 | <v8:lang>ru</v8:lang> 300 | <v8:content>Создайте аккаунт</v8:content> 301 | </v8:item> 302 | 303 | 304 | 305 | 306 | 307 | КартинкаВыборАккаунта 308 | None 309 | 13 310 | false 311 | 312 | 313 | 314 | 315 | false 316 | true 317 | 318 | <v8:item> 319 | <v8:lang>ru</v8:lang> 320 | <v8:content>Выберите бесплатный тариф "Разработчик" и создайте свой первый аккаунт</v8:content> 321 | </v8:item> 322 | 323 | Center 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | <v8:item> 334 | <v8:lang>ru</v8:lang> 335 | <v8:content>Страница три</v8:content> 336 | </v8:item> 337 | 338 | 339 | 340 | ru 341 | Страница два 342 | 343 | 344 | 345 | 346 | 347 | Vertical 348 | 349 | 350 | 351 | 352 | 353 | <v8:item> 354 | <v8:lang>ru</v8:lang> 355 | <v8:content>Подключите телефон к аккаунту</v8:content> 356 | </v8:item> 357 | 358 | 359 | 360 | 361 | 362 | КартинкаСканКода 363 | None 364 | 13 365 | false 366 | Proportionally 367 | 368 | 369 | 370 | 371 | false 372 | true 373 | 374 | <v8:item> 375 | <v8:lang>ru</v8:lang> 376 | <v8:content>Для подключения сканируйте QR-код из приложения WhatsApp Business на телефоне</v8:content> 377 | </v8:item> 378 | 379 | Center 380 | 381 | 382 | 383 | 384 | Center 385 | Center 386 | None 387 | false 388 | 389 | 390 | 391 | 392 | StdPicture.DialogQuestion 393 | true 394 | 395 | 396 | 397 | 398 | 399 | 55 400 | web:DarkBlue 401 | 402 | <v8:item> 403 | <v8:lang>ru</v8:lang> 404 | <v8:content>Рекомендуется использовать приложение WhatsApp Business, однако при желании можно использовать и обычное приложение WhatsApp, если оно уже установлено на вашем телефоне</v8:content> 405 | </v8:item> 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | ru 420 | Страница два 421 | 422 | 423 | 424 | 425 | 426 | Vertical 427 | 428 | 429 | 430 | 431 | 432 | <v8:item> 433 | <v8:lang>ru</v8:lang> 434 | <v8:content>Укажите параметры подключения</v8:content> 435 | </v8:item> 436 | 437 | 438 | 439 | 440 | 441 | Объект.apiUrl 442 | 443 | 444 | ru 445 | api.green-api.com 446 | 447 | 448 | 449 | 450 | 451 | 452 | Объект.mediaUrl 453 | 454 | 455 | ru 456 | media.green-api.com 457 | 458 | 459 | 460 | 461 | 462 | 463 | Объект.IdInstance 464 | 465 | 466 | ru 467 | 9999 468 | 469 | 470 | 471 | 472 | 473 | 474 | Объект.ApiToken 475 | 476 | 477 | ru 478 | 123fdws3214t3456g214234171855e0ff3f597f1 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | КартинкаДанныеАккаунта 488 | None 489 | 13 490 | false 491 | Proportionally 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | <v8:item> 500 | <v8:lang>ru</v8:lang> 501 | <v8:content>Страница ожидания</v8:content> 502 | </v8:item> 503 | 504 | 505 | 506 | 507 | Vertical 508 | 509 | 510 | 511 | false 512 | 2 513 | false 514 | 515 | 516 | <v8:item> 517 | <v8:lang>ru</v8:lang> 518 | <v8:content>Проверка подключения</v8:content> 519 | </v8:item> 520 | 521 | Top 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | <v8:item> 532 | <v8:lang>ru</v8:lang> 533 | <v8:content>Страница семь</v8:content> 534 | </v8:item> 535 | 536 | 537 | 538 | ru 539 | Страница два 540 | 541 | 542 | 543 | 544 | 545 | Vertical 546 | 547 | 548 | 549 | false 550 | 2 551 | false 552 | 553 | 554 | <v8:item> 555 | <v8:lang>ru</v8:lang> 556 | <v8:content>Проверка подключения</v8:content> 557 | </v8:item> 558 | 559 | Top 560 | 561 | 562 | 563 | 564 | 565 | <v8:item> 566 | <v8:lang>ru</v8:lang> 567 | <v8:content>Группа успешное подключение</v8:content> 568 | </v8:item> 569 | 570 | 571 | 572 | ru 573 | Группа успешное подключение 574 | 575 | 576 | Vertical 577 | None 578 | false 579 | 580 | 581 | 582 | None 583 | false 584 | 585 | 586 | 587 | 588 | StdPicture.AppearanceCheckBox 589 | true 590 | 591 | 592 | 593 | 594 | 595 | 596 | <v8:item> 597 | <v8:lang>ru</v8:lang> 598 | <v8:content>Подключение выполнено успешно</v8:content> 599 | </v8:item> 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | None 608 | false 609 | 610 | 611 | 612 | 613 | StdPicture.AppearanceCheckBox 614 | true 615 | 616 | 617 | 618 | 619 | 620 | 621 | <v8:item> 622 | <v8:lang>ru</v8:lang> 623 | <v8:content>Установлены настройки получения данных</v8:content> 624 | </v8:item> 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | ru 637 | Группа успешное подключение 638 | 639 | 640 | None 641 | false 642 | 643 | 644 | 645 | 646 | StdPicture.AppearanceCrossIcon 647 | true 648 | 649 | 650 | 651 | 652 | 653 | Vertical 654 | None 655 | false 656 | 657 | 658 | 659 | 660 | <v8:item> 661 | <v8:lang>ru</v8:lang> 662 | <v8:content>Возникла ошибка при подключении</v8:content> 663 | </v8:item> 664 | 665 | 666 | 667 | 668 | 669 | ТекстОшибкиПодключения 670 | true 671 | None 672 | 8 673 | false 674 | false 675 | true 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | ru 691 | Страница два 692 | 693 | 694 | 695 | 696 | 697 | Vertical 698 | 699 | 700 | 701 | false 702 | 2 703 | false 704 | 705 | 706 | <v8:item> 707 | <v8:lang>ru</v8:lang> 708 | <v8:content>Рекомендации</v8:content> 709 | </v8:item> 710 | 711 | Top 712 | 713 | 714 | 715 | 716 | ИспользуйтеДляЧатБотов 717 | 718 | Right 719 | 1 720 | Auto 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | ИспользуйтеДляКлиентов 731 | 732 | Right 733 | Auto 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | ИспользуйтеДляСвоихКлиентоа 744 | 745 | Right 746 | ShowBottom 747 | Auto 748 | 749 | 750 | 10 751 | style:FieldSelectionBackColor 752 | Left 753 | 754 | 755 | 756 | None 757 | false 758 | 759 | 760 | 761 | 1 762 | 763 | 764 | 765 | 766 | 767 | 49 768 | style:FieldSelectionBackColor 769 | 770 | 771 | <v8:item> 772 | <v8:lang>ru</v8:lang> 773 | <v8:content>Если клиент не ожидает сообщений от Вас, то скорее всего он нажмет "Заблокировать". Достаточно 10 нажатий, чтобы словить бан. </v8:content> 774 | </v8:item> 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | СтарайтесьЧтобыОтвечали 788 | 789 | <v8:item> 790 | <v8:lang>ru</v8:lang> 791 | <v8:content>Старайтесь, чтобы клиенты больше отвечали на Ваш номер</v8:content> 792 | </v8:item> 793 | 794 | 795 | Right 796 | ShowBottom 797 | Auto 798 | 799 | 800 | style:FieldSelectionBackColor 801 | Center 802 | 803 | 804 | 805 | None 806 | false 807 | 808 | 809 | 810 | 1 811 | 812 | 813 | 814 | 815 | 816 | 56 817 | style:FieldSelectionBackColor 818 | 819 | 820 | <v8:item> 821 | <v8:lang>ru</v8:lang> 822 | <v8:content>Например: "Вы записаны на завтра 12:00. Чтобы подтвердить запись, напишите в ответ *ок*</v8:content> 823 | </v8:item> 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | ПредоставьтеОтписку 837 | 838 | Right 839 | ShowBottom 840 | Auto 841 | 842 | 843 | style:FieldSelectionBackColor 844 | 845 | 846 | 847 | None 848 | false 849 | 850 | 851 | 852 | 1 853 | 854 | 855 | 856 | 857 | 858 | 49 859 | style:FieldSelectionBackColor 860 | 861 | 862 | <v8:item> 863 | <v8:lang>ru</v8:lang> 864 | <v8:content>Например: Напишите *stop* и мы больше не будем Вас беспокоить</v8:content> 865 | </v8:item> 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | <v8:item> 884 | <v8:lang>ru</v8:lang> 885 | <v8:content>Страница девять</v8:content> 886 | </v8:item> 887 | 888 | 889 | 890 | ru 891 | Страница два 892 | 893 | 894 | 895 | 896 | 897 | Vertical 898 | 899 | 900 | 901 | false 902 | 2 903 | false 904 | 905 | 906 | <v8:item> 907 | <v8:lang>ru</v8:lang> 908 | <v8:content>Готово!</v8:content> 909 | </v8:item> 910 | 911 | Top 912 | 913 | 914 | 915 | 916 | Left 917 | Center 918 | Left 919 | Center 920 | None 921 | false 922 | 923 | 924 | 925 | false 926 | 2 927 | false 928 | 929 | <v8:item> 930 | <v8:lang>ru</v8:lang> 931 | <v8:content>Теперь можно выполнять отправку и получение сообщений WhatsApp</v8:content> 932 | </v8:item> 933 | 934 | Top 935 | 936 | 937 | 938 | 939 | ИконкаФиниш 940 | None 941 | false 942 | false 943 | Proportionally 944 | 945 | WithoutBorder 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | false 962 | Vertical 963 | Bottom 964 | false 965 | 966 | 967 | 968 | true 969 | None 970 | 971 | 972 | 973 | 974 | <v8:item> 975 | <v8:lang>ru</v8:lang> 976 | <v8:content>Страница навигации начало</v8:content> 977 | </v8:item> 978 | 979 | HorizontalIfPossible 980 | 981 | 982 | 983 | 984 | 985 | 991 | 992 | 993 | 994 | true 995 | Right 996 | 997 | 998 | 1009 | 1015 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | <v8:item> 1029 | <v8:lang>ru</v8:lang> 1030 | <v8:content>Страница навигации продолжение</v8:content> 1031 | </v8:item> 1032 | 1033 | HorizontalIfPossible 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1045 | 1046 | 1047 | 1048 | true 1049 | Right 1050 | 1051 | 1052 | 1062 | 1069 | 1076 | 1077 | 1078 | 1079 | 1080 | 1081 | 1082 | <v8:item> 1083 | <v8:lang>ru</v8:lang> 1084 | <v8:content>Страница навигации окончание</v8:content> 1085 | </v8:item> 1086 | 1087 | HorizontalIfPossible 1088 | 1089 | 1090 | 1091 | 1092 | 1093 | 1094 | true 1095 | Right 1096 | 1097 | 1098 | 1106 | 1107 | 1108 | 1109 | 1110 | 1111 | 1112 | <v8:item> 1113 | <v8:lang>ru</v8:lang> 1114 | <v8:content>Страница навигации ожидание</v8:content> 1115 | </v8:item> 1116 | 1117 | HorizontalIfPossible 1118 | 1119 | 1120 | 1121 | false 1122 | true 1123 | 1124 | 1125 | 1126 | 1127 | 1128 | 1129 | 1130 | 1131 | 1132 | 1133 | 1134 | 1135 | 1136 | 1137 | 1138 | cfg:DataProcessorObject.GreenAPI_ChatBot 1139 | 1140 | true 1141 | 1142 | 1143 | 1144 | xs:decimal 1145 | 1146 | 3 1147 | 0 1148 | Nonnegative 1149 | 1150 | 1151 | 1152 | 1153 | 1154 | v8:ValueTable 1155 | 1156 | 1157 | 1158 | 1159 | xs:decimal 1160 | 1161 | 3 1162 | 0 1163 | Nonnegative 1164 | 1165 | 1166 | 1167 | 1168 | 1169 | xs:string 1170 | 1171 | 0 1172 | Variable 1173 | 1174 | 1175 | 1176 | 1177 | 1178 | xs:string 1179 | 1180 | 0 1181 | Variable 1182 | 1183 | 1184 | 1185 | 1186 | 1187 | xs:string 1188 | 1189 | 0 1190 | Variable 1191 | 1192 | 1193 | 1194 | 1195 | 1196 | xs:string 1197 | 1198 | 0 1199 | Variable 1200 | 1201 | 1202 | 1203 | 1204 | 1205 | xs:string 1206 | 1207 | 0 1208 | Variable 1209 | 1210 | 1211 | 1212 | 1213 | 1214 | xs:string 1215 | 1216 | 0 1217 | Variable 1218 | 1219 | 1220 | 1221 | 1222 | 1223 | xs:boolean 1224 | 1225 | 1226 | 1227 | 1228 | xs:string 1229 | 1230 | 0 1231 | Variable 1232 | 1233 | 1234 | 1235 | 1236 | 1237 | 1238 | 1239 | xs:boolean 1240 | 1241 | 1242 | 1243 | 1244 | <v8:item> 1245 | <v8:lang>ru</v8:lang> 1246 | <v8:content>С условиями ознакомлен</v8:content> 1247 | </v8:item> 1248 | 1249 | 1250 | xs:boolean 1251 | 1252 | 1253 | 1254 | 1255 | <v8:item> 1256 | <v8:lang>ru</v8:lang> 1257 | <v8:content>Картинка whats app</v8:content> 1258 | </v8:item> 1259 | 1260 | 1261 | xs:string 1262 | 1263 | 0 1264 | Variable 1265 | 1266 | 1267 | 1268 | 1269 | 1270 | <v8:item> 1271 | <v8:lang>ru</v8:lang> 1272 | <v8:content>Картинка выбор аккаунта</v8:content> 1273 | </v8:item> 1274 | 1275 | 1276 | xs:string 1277 | 1278 | 0 1279 | Variable 1280 | 1281 | 1282 | 1283 | 1284 | 1285 | <v8:item> 1286 | <v8:lang>ru</v8:lang> 1287 | <v8:content>Картинка скан кода</v8:content> 1288 | </v8:item> 1289 | 1290 | 1291 | xs:string 1292 | 1293 | 0 1294 | Variable 1295 | 1296 | 1297 | 1298 | 1299 | 1300 | <v8:item> 1301 | <v8:lang>ru</v8:lang> 1302 | <v8:content>Картинка данные аккаунта</v8:content> 1303 | </v8:item> 1304 | 1305 | 1306 | xs:string 1307 | 1308 | 0 1309 | Variable 1310 | 1311 | 1312 | 1313 | 1314 | 1315 | <v8:item> 1316 | <v8:lang>ru</v8:lang> 1317 | <v8:content>Статус сервиса</v8:content> 1318 | </v8:item> 1319 | 1320 | 1321 | xs:boolean 1322 | 1323 | 1324 | 1325 | 1326 | <v8:item> 1327 | <v8:lang>ru</v8:lang> 1328 | <v8:content>Текст ошибки подключения</v8:content> 1329 | </v8:item> 1330 | 1331 | 1332 | xs:string 1333 | 1334 | 0 1335 | Variable 1336 | 1337 | 1338 | 1339 | 1340 | 1341 | <v8:item> 1342 | <v8:lang>ru</v8:lang> 1343 | <v8:content>Используйте Green API для чат ботов</v8:content> 1344 | </v8:item> 1345 | 1346 | 1347 | xs:boolean 1348 | 1349 | 1350 | 1351 | 1352 | <v8:item> 1353 | <v8:lang>ru</v8:lang> 1354 | <v8:content>Используйте Green API для общения с клиентами из 1С</v8:content> 1355 | </v8:item> 1356 | 1357 | 1358 | xs:boolean 1359 | 1360 | 1361 | 1362 | 1363 | <v8:item> 1364 | <v8:lang>ru</v8:lang> 1365 | <v8:content>Используйте Green API для отправки уведомлений только своим клиентам</v8:content> 1366 | </v8:item> 1367 | 1368 | 1369 | xs:boolean 1370 | 1371 | 1372 | 1373 | 1374 | <v8:item> 1375 | <v8:lang>ru</v8:lang> 1376 | <v8:content>Старайтесь, чтобы клиенты больше отвечали на Ваш номер</v8:content> 1377 | </v8:item> 1378 | 1379 | 1380 | xs:boolean 1381 | 1382 | 1383 | 1384 | 1385 | <v8:item> 1386 | <v8:lang>ru</v8:lang> 1387 | <v8:content>Предоставьте клиентам возможность отписаться от Ваших рассылок</v8:content> 1388 | </v8:item> 1389 | 1390 | 1391 | xs:boolean 1392 | 1393 | 1394 | 1395 | 1396 | xs:string 1397 | 1398 | 0 1399 | Variable 1400 | 1401 | 1402 | 1403 | 1404 | 1405 | <v8:item> 1406 | <v8:lang>ru</v8:lang> 1407 | <v8:content>Параметры формы</v8:content> 1408 | </v8:item> 1409 | 1410 | 1411 | 1412 | 1413 | 1414 | 1415 | 1416 | <v8:item> 1417 | <v8:lang>ru</v8:lang> 1418 | <v8:content>Далее ></v8:content> 1419 | </v8:item> 1420 | 1421 | КомандаДалее 1422 | DontUse 1423 | 1424 | 1425 | 1426 | <v8:item> 1427 | <v8:lang>ru</v8:lang> 1428 | <v8:content>< Назад</v8:content> 1429 | </v8:item> 1430 | 1431 | КомандаНазад 1432 | DontUse 1433 | 1434 | 1435 | 1436 | <v8:item> 1437 | <v8:lang>ru</v8:lang> 1438 | <v8:content>Отмена</v8:content> 1439 | </v8:item> 1440 | 1441 | КомандаОтмена 1442 | DontUse 1443 | 1444 | 1445 | 1446 | <v8:item> 1447 | <v8:lang>ru</v8:lang> 1448 | <v8:content>Готово</v8:content> 1449 | </v8:item> 1450 | 1451 | КомандаГотово 1452 | DontUse 1453 | 1454 | 1455 | 1456 | <v8:item> 1457 | <v8:lang>ru</v8:lang> 1458 | <v8:content>Зарегистрируйтесь в личном кабинете Green API</v8:content> 1459 | </v8:item> 1460 | 1461 | 1462 | 1463 | ru 1464 | Зарегистрироваться в green API 1465 | 1466 | 1467 | ЗарегистрироватьсяВGreenAPI 1468 | 1469 | 1470 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Forms/ПомощникПодключения/Ext/Form/Module.bsl: -------------------------------------------------------------------------------- 1 |  2 | #Область ОбработчикиСобытийФормы 3 | 4 | &НаСервере 5 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 6 | КартинкаWhatsApp = ПолучитьКартинкуОбработки("ИконкаWhatsApp"); 7 | КартинкаВыборАккаунта = ПолучитьКартинкуОбработки("ВыборАккаунта"); 8 | КартинкаСканКода = ПолучитьКартинкуОбработки("СканQR"); 9 | КартинкаДанныеАккаунта = ПолучитьКартинкуОбработки("ДанныеАккаунта"); 10 | ИконкаФиниш = ПолучитьКартинкуОбработки("ИконкаФиниш"); 11 | 12 | ЭтотОбъект.Заголовок = ОбработкаОбъект().ВерсияОбработки(); 13 | 14 | Если Параметры.Свойство("IdInstance") Тогда 15 | Объект.IdInstance = Параметры.IdInstance; 16 | КонецЕсли; 17 | 18 | Если Параметры.Свойство("ApiToken") Тогда 19 | Объект.ApiToken = Параметры.ApiToken; 20 | КонецЕсли; 21 | 22 | Если Параметры.Свойство("apiUrl") Тогда 23 | Объект.apiUrl = Параметры.apiUrl; 24 | КонецЕсли; 25 | 26 | Если Параметры.Свойство("mediaUrl") Тогда 27 | Объект.mediaUrl = Параметры.mediaUrl; 28 | КонецЕсли; 29 | 30 | КонецПроцедуры 31 | 32 | &НаКлиенте 33 | Процедура ПриОткрытии(Отказ) 34 | 35 | // Устанавливаем текущую таблицу переходов. 36 | ТаблицаПереходовПоСценарию1(); 37 | 38 | // Позиционируемся на первом шаге помощника. 39 | УстановитьПорядковыйНомерПерехода(1); 40 | 41 | КонецПроцедуры 42 | 43 | &НаКлиенте 44 | Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) 45 | 46 | ТекстПредупреждения = НСтр("ru = 'Закрыть помощник?'"); 47 | ПоказатьПодтверждениеЗакрытияПроизвольнойФормы( 48 | ЭтотОбъект, Отказ, ЗавершениеРаботы, ТекстПредупреждения, "ЗакрытьФормуБезусловно"); 49 | 50 | КонецПроцедуры 51 | 52 | #КонецОбласти 53 | 54 | #Область ОбработчикиКомандФормы 55 | 56 | &НаКлиенте 57 | Процедура КомандаДалее(Команда) 58 | 59 | ИзменитьПорядковыйНомерПерехода(+1); 60 | 61 | КонецПроцедуры 62 | 63 | &НаКлиенте 64 | Процедура КомандаНазад(Команда) 65 | 66 | ИзменитьПорядковыйНомерПерехода(-1); 67 | 68 | КонецПроцедуры 69 | 70 | &НаКлиенте 71 | Процедура КомандаГотово(Команда) 72 | 73 | ЗакрытьФормуБезусловно = Истина; 74 | 75 | ОповеститьОВыборе(Новый Структура("ИмяФормы,IdInstance,ApiToken,apiUrl,mediaUrl", "ПомощникПодключения", Объект.IdInstance, Объект.ApiToken, Объект.apiUrl, Объект.mediaUrl)); 76 | 77 | КонецПроцедуры 78 | 79 | &НаКлиенте 80 | Процедура КомандаОтмена(Команда) 81 | 82 | Закрыть(); 83 | 84 | КонецПроцедуры 85 | 86 | #КонецОбласти 87 | 88 | #Область СлужебныеПроцедурыИФункции 89 | 90 | //////////////////////////////////////////////////////////////////////////////// 91 | // Поставляемая часть 92 | 93 | &НаКлиенте 94 | Процедура ИзменитьПорядковыйНомерПерехода(Итератор) 95 | 96 | ОчиститьСообщения(); 97 | 98 | УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + Итератор); 99 | 100 | КонецПроцедуры 101 | 102 | &НаКлиенте 103 | Процедура УстановитьПорядковыйНомерПерехода(Знач Значение) 104 | 105 | ЭтоПереходДалее = (Значение > ПорядковыйНомерПерехода); 106 | 107 | ПорядковыйНомерПерехода = Значение; 108 | 109 | Если ПорядковыйНомерПерехода < 0 Тогда 110 | 111 | ПорядковыйНомерПерехода = 0; 112 | 113 | КонецЕсли; 114 | 115 | ПорядковыйНомерПереходаПриИзменении(ЭтоПереходДалее); 116 | 117 | КонецПроцедуры 118 | 119 | &НаКлиенте 120 | Процедура ПорядковыйНомерПереходаПриИзменении(Знач ЭтоПереходДалее) 121 | 122 | // Выполняем обработчики событий перехода. 123 | ВыполнитьОбработчикиСобытийПерехода(ЭтоПереходДалее); 124 | 125 | // Устанавливаем отображение страниц. 126 | СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода)); 127 | 128 | Если СтрокиПереходаТекущие.Количество() = 0 Тогда 129 | ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'"); 130 | КонецЕсли; 131 | 132 | СтрокаПереходаТекущая = СтрокиПереходаТекущие[0]; 133 | 134 | Элементы.ПанельОсновная.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяОсновнойСтраницы]; 135 | Элементы.ПанельНавигации.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяСтраницыНавигации]; 136 | 137 | Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяСтраницыДекорации) Тогда 138 | 139 | Элементы.ПанельДекорации.ТекущаяСтраница = Элементы[СтрокаПереходаТекущая.ИмяСтраницыДекорации]; 140 | 141 | КонецЕсли; 142 | 143 | // Устанавливаем текущую кнопку по умолчанию. 144 | КнопкаДалее = ПолучитьКнопкуФормыПоИмениКоманды(Элементы.ПанельНавигации.ТекущаяСтраница, "КомандаДалее"); 145 | 146 | Если КнопкаДалее <> Неопределено Тогда 147 | 148 | КнопкаДалее.КнопкаПоУмолчанию = Истина; 149 | 150 | Иначе 151 | 152 | КнопкаГотово = ПолучитьКнопкуФормыПоИмениКоманды(Элементы.ПанельНавигации.ТекущаяСтраница, "КомандаГотово"); 153 | 154 | Если КнопкаГотово <> Неопределено Тогда 155 | 156 | КнопкаГотово.КнопкаПоУмолчанию = Истина; 157 | 158 | КонецЕсли; 159 | 160 | КонецЕсли; 161 | 162 | Если ЭтоПереходДалее И СтрокаПереходаТекущая.ДлительнаяОперация Тогда 163 | 164 | ПодключитьОбработчикОжидания("ВыполнитьОбработчикДлительнойОперации", 0.1, Истина); 165 | 166 | КонецЕсли; 167 | 168 | КонецПроцедуры 169 | 170 | &НаКлиенте 171 | Процедура ВыполнитьОбработчикиСобытийПерехода(Знач ЭтоПереходДалее) 172 | 173 | // Обработчики событий переходов. 174 | Если ЭтоПереходДалее Тогда 175 | 176 | СтрокиПерехода = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода - 1)); 177 | 178 | Если СтрокиПерехода.Количество() > 0 Тогда 179 | 180 | СтрокаПерехода = СтрокиПерехода[0]; 181 | 182 | // Обработчик ПриПереходеДалее. 183 | Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеДалее) 184 | И Не СтрокаПерехода.ДлительнаяОперация Тогда 185 | 186 | ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ)"; 187 | ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеДалее); 188 | 189 | Отказ = Ложь; 190 | 191 | Результат = Вычислить(ИмяПроцедуры); 192 | 193 | Если Отказ Тогда 194 | 195 | ПорядковыйНомерПерехода = ПорядковыйНомерПерехода - 1; 196 | Возврат; 197 | 198 | КонецЕсли; 199 | 200 | КонецЕсли; 201 | 202 | КонецЕсли; 203 | 204 | Иначе 205 | 206 | СтрокиПерехода = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода + 1)); 207 | 208 | Если СтрокиПерехода.Количество() > 0 Тогда 209 | 210 | СтрокаПерехода = СтрокиПерехода[0]; 211 | 212 | // Обработчик ПриПереходеНазад. 213 | Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеНазад) 214 | И Не СтрокаПерехода.ДлительнаяОперация Тогда 215 | 216 | ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ)"; 217 | ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеНазад); 218 | 219 | Отказ = Ложь; 220 | 221 | Результат = Вычислить(ИмяПроцедуры); 222 | 223 | Если Отказ Тогда 224 | 225 | ПорядковыйНомерПерехода = ПорядковыйНомерПерехода + 1; 226 | Возврат; 227 | 228 | КонецЕсли; 229 | 230 | КонецЕсли; 231 | 232 | КонецЕсли; 233 | 234 | КонецЕсли; 235 | 236 | СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода)); 237 | 238 | Если СтрокиПереходаТекущие.Количество() = 0 Тогда 239 | ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'"); 240 | КонецЕсли; 241 | 242 | СтрокаПереходаТекущая = СтрокиПереходаТекущие[0]; 243 | 244 | Если СтрокаПереходаТекущая.ДлительнаяОперация И Не ЭтоПереходДалее Тогда 245 | 246 | УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); 247 | Возврат; 248 | КонецЕсли; 249 | 250 | // обработчик ПриОткрытии 251 | Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии) Тогда 252 | 253 | ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ, ПропуститьСтраницу, ЭтоПереходДалее)"; 254 | ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии); 255 | 256 | Отказ = Ложь; 257 | ПропуститьСтраницу = Ложь; 258 | 259 | Результат = Вычислить(ИмяПроцедуры); 260 | 261 | Если Отказ Тогда 262 | 263 | ПорядковыйНомерПерехода = ПорядковыйНомерПерехода - 1; 264 | Возврат; 265 | 266 | ИначеЕсли ПропуститьСтраницу Тогда 267 | 268 | Если ЭтоПереходДалее Тогда 269 | 270 | УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); 271 | Возврат; 272 | 273 | Иначе 274 | 275 | УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода - 1); 276 | Возврат; 277 | 278 | КонецЕсли; 279 | 280 | КонецЕсли; 281 | 282 | КонецЕсли; 283 | 284 | КонецПроцедуры 285 | 286 | &НаКлиенте 287 | Процедура ВыполнитьОбработчикДлительнойОперации() 288 | 289 | СтрокиПереходаТекущие = ТаблицаПереходов.НайтиСтроки(Новый Структура("ПорядковыйНомерПерехода", ПорядковыйНомерПерехода)); 290 | 291 | Если СтрокиПереходаТекущие.Количество() = 0 Тогда 292 | ВызватьИсключение НСтр("ru = 'Не определена страница для отображения.'"); 293 | КонецЕсли; 294 | 295 | СтрокаПереходаТекущая = СтрокиПереходаТекущие[0]; 296 | 297 | // Обработчик ОбработкаДлительнойОперации. 298 | Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаДлительнойОперации) Тогда 299 | 300 | ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ, ПерейтиДалее)"; 301 | ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаДлительнойОперации); 302 | 303 | Отказ = Ложь; 304 | ПерейтиДалее = Истина; 305 | 306 | Результат = Вычислить(ИмяПроцедуры); 307 | 308 | Если Отказ Тогда 309 | 310 | ПорядковыйНомерПерехода = ПорядковыйНомерПерехода - 1; 311 | Возврат; 312 | 313 | ИначеЕсли ПерейтиДалее Тогда 314 | 315 | УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); 316 | Возврат; 317 | 318 | КонецЕсли; 319 | 320 | Иначе 321 | 322 | УстановитьПорядковыйНомерПерехода(ПорядковыйНомерПерехода + 1); 323 | Возврат; 324 | 325 | КонецЕсли; 326 | 327 | КонецПроцедуры 328 | 329 | &НаКлиенте 330 | Функция ПолучитьКнопкуФормыПоИмениКоманды(ЭлементФормы, ИмяКоманды) 331 | 332 | Для Каждого Элемент Из ЭлементФормы.ПодчиненныеЭлементы Цикл 333 | 334 | Если ТипЗнч(Элемент) = Тип("ГруппаФормы") Тогда 335 | 336 | ЭлементФормыПоИмениКоманды = ПолучитьКнопкуФормыПоИмениКоманды(Элемент, ИмяКоманды); 337 | 338 | Если ЭлементФормыПоИмениКоманды <> Неопределено Тогда 339 | 340 | Возврат ЭлементФормыПоИмениКоманды; 341 | 342 | КонецЕсли; 343 | 344 | ИначеЕсли ТипЗнч(Элемент) = Тип("КнопкаФормы") 345 | И СтрНайти(Элемент.ИмяКоманды, ИмяКоманды) > 0 Тогда 346 | 347 | Возврат Элемент; 348 | 349 | Иначе 350 | 351 | Продолжить; 352 | 353 | КонецЕсли; 354 | 355 | КонецЦикла; 356 | 357 | Возврат Неопределено; 358 | 359 | КонецФункции 360 | 361 | //////////////////////////////////////////////////////////////////////////////// 362 | // Переопределяемая часть - Обработчики событий переходов. 363 | 364 | // Обработчик перехода далее (на следующую страницу) при уходе со страницы помощника "СтраницаДва". 365 | // 366 | // Параметры: 367 | // Отказ - Булево - флаг отказа от выполнения перехода далее; 368 | // если в обработчике поднять этот флаг, то переход на следующую страницу выполнен не будет. 369 | // 370 | &НаКлиенте 371 | Функция Подключаемый_СтраницаДва_ПриПереходеДалее(Отказ) 372 | 373 | Если СУсловиямиОзнакомлен Тогда 374 | Сообщить(НСтр("ru = 'Выполняется обработчик ПриПереходеДалее страницы № 2'")); 375 | Иначе 376 | Сообщить(НСтр("ru = 'Необходимо сначала ознакомиться с условиями.'")); 377 | Отказ = Истина; 378 | КонецЕсли; 379 | 380 | Возврат Неопределено; 381 | 382 | КонецФункции 383 | 384 | &НаКлиенте 385 | Функция Подключаемый_СтраницаПять_ПриПереходеДалее(Отказ) 386 | 387 | Если ЗначениеЗаполнено(Объект.IdInstance) И ЗначениеЗаполнено(Объект.ApiToken) Тогда 388 | 389 | Иначе 390 | Сообщить(НСтр("ru = 'Необходимо заполнить ID Instance и API Token'")); 391 | Отказ = Истина; 392 | КонецЕсли; 393 | 394 | Возврат Неопределено; 395 | 396 | КонецФункции 397 | 398 | &НаКлиенте 399 | Функция Подключаемый_СтраницаВосемь_ПриПереходеДалее(Отказ) 400 | 401 | Если Не ИспользуйтеДляКлиентов Или Не ИспользуйтеДляСвоихКлиентоа Или Не ИспользуйтеДляЧатБотов 402 | Или Не СтарайтесьЧтобыОтвечали Или Не ПредоставьтеОтписку Тогда 403 | 404 | Отказ = Истина; 405 | ПоказатьПредупреждение(, "Требуется отметить все галочки, чтобы продолжить"); 406 | 407 | КонецЕсли; 408 | 409 | Возврат Неопределено; 410 | 411 | КонецФункции 412 | 413 | // Обработчик перехода назад (на предыдущую страницу) при уходе со страницы помощника "СтраницаДва". 414 | // 415 | // Параметры: 416 | // Отказ - Булево - флаг отказа от выполнения перехода назад; 417 | // если в обработчике поднять этот флаг, то переход на предыдущую страницу выполнен не будет. 418 | // 419 | &НаКлиенте 420 | Функция Подключаемый_СтраницаДва_ПриПереходеНазад(Отказ) 421 | 422 | Сообщить(НСтр("ru = 'Выполняется обработчик ПриПереходеНазад страницы № 2'")); 423 | 424 | Возврат Неопределено; 425 | 426 | КонецФункции 427 | 428 | // Обработчик выполняется при открытии страницы помощника "СтраницаДва". 429 | // 430 | // Параметры: 431 | // 432 | // Отказ - Булево - флаг отказа от открытия страницы; 433 | // если в обработчике поднять этот флаг, то переход на страницу выполнен не будет, 434 | // останется открытой предыдущая страница помощника согласно направлению перехода (вперед или назад). 435 | // 436 | // ПропуститьСтраницу - Булево - если поднять этот флаг, то страница будет пропущена 437 | // и управление перейдет на следующую страницу помощника согласно направлению перехода (вперед или назад). 438 | // 439 | // ЭтоПереходДалее (только чтение) - Булево - флаг определяет направление перехода. 440 | // Истина - выполняется переход далее; Ложь - выполняется переход назад. 441 | // 442 | &НаКлиенте 443 | Функция Подключаемый_СтраницаДва_ПриОткрытии(Отказ, ПропуститьСтраницу, Знач ЭтоПереходДалее) 444 | 445 | Сообщить(НСтр("ru = 'Выполняется обработчик ПриОткрытии страницы № 2'")); 446 | 447 | Возврат Неопределено; 448 | 449 | КонецФункции 450 | 451 | // Обработчик перехода далее (на следующую страницу) при уходе со страницы помощника "СтраницаОжидания". 452 | // 453 | // Параметры: 454 | // Отказ - Булево - флаг отказа от выполнения перехода далее; 455 | // если в обработчике поднять этот флаг, то переход на следующую страницу выполнен не будет. 456 | // 457 | &НаКлиенте 458 | Функция Подключаемый_СтраницаОжидания_ОбработкаДлительнойОперации(Отказ, ПерейтиДалее) 459 | 460 | ВыполнитьПродолжительноеДействиеНаСервере(Отказ); 461 | 462 | Возврат Неопределено; 463 | 464 | КонецФункции 465 | 466 | &НаКлиенте 467 | Функция Подключаемый_СтраницаСемь_ПриОткрытии(Отказ, ПропуститьСтраницу, Знач ЭтоПереходДалее) 468 | 469 | Если ЭтоПереходДалее Тогда 470 | Элементы.КомандаДалее1.Видимость = СтатусСервиса; 471 | Иначе 472 | ПропуститьСтраницу = Истина; 473 | КонецЕсли; 474 | 475 | Возврат Неопределено; 476 | 477 | КонецФункции 478 | 479 | &НаКлиенте 480 | Функция Подключаемый_СтраницаСемь_ПриПереходеНазад(Отказ) 481 | 482 | Элементы.КомандаДалее1.Видимость = Истина; 483 | 484 | КонецФункции 485 | 486 | 487 | &НаСервере 488 | Процедура ВыполнитьПродолжительноеДействиеНаСервере(Отказ) 489 | 490 | СтатусСервиса = ОбработкаОбъект().ПолучитьСтатусСервиса(ТекстОшибкиПодключения); 491 | Если СтатусСервиса Тогда 492 | ОбработкаОбъект().УстановитьНастройкиСервисаПоДефолту(); 493 | КонецЕсли; 494 | 495 | Элементы.ГруппаУспешноеПодключение.Видимость = СтатусСервиса; 496 | Элементы.ГруппаОшибкаПодключения.Видимость = Не СтатусСервиса; 497 | 498 | КонецПроцедуры 499 | 500 | //////////////////////////////////////////////////////////////////////////////// 501 | // Переопределяемая часть - Инициализация переходов помощника. 502 | 503 | // Процедура определяет таблицу переходов по сценарию №1. 504 | // 505 | &НаКлиенте 506 | Процедура ТаблицаПереходовПоСценарию1() 507 | 508 | ТаблицаПереходов.Очистить(); 509 | 510 | Переход = ТаблицаПереходов.Добавить(); 511 | Переход.ПорядковыйНомерПерехода = 1; 512 | Переход.ИмяОсновнойСтраницы = "СтраницаОдин"; 513 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииНачало"; 514 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииНачало"; 515 | 516 | Переход = ТаблицаПереходов.Добавить(); 517 | Переход.ПорядковыйНомерПерехода = 2; 518 | Переход.ИмяОсновнойСтраницы = "СтраницаДва"; 519 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииПродолжение"; 520 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 521 | 522 | Переход = ТаблицаПереходов.Добавить(); 523 | Переход.ПорядковыйНомерПерехода = 3; 524 | Переход.ИмяОсновнойСтраницы = "СтраницаТри"; 525 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииПродолжение"; 526 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 527 | 528 | Переход = ТаблицаПереходов.Добавить(); 529 | Переход.ПорядковыйНомерПерехода = 4; 530 | Переход.ИмяОсновнойСтраницы = "СтраницаЧетыре"; 531 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииПродолжение"; 532 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 533 | 534 | Переход = ТаблицаПереходов.Добавить(); 535 | Переход.ПорядковыйНомерПерехода = 5; 536 | Переход.ИмяОсновнойСтраницы = "СтраницаПять"; 537 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииПродолжение"; 538 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 539 | Переход.ИмяОбработчикаПриПереходеДалее = "СтраницаПять_ПриПереходеДалее"; 540 | 541 | Переход = ТаблицаПереходов.Добавить(); 542 | Переход.ПорядковыйНомерПерехода = 6; 543 | Переход.ИмяОсновнойСтраницы = "СтраницаОжидания"; 544 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииОжидание"; 545 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 546 | Переход.ДлительнаяОперация = Истина; 547 | Переход.ИмяОбработчикаДлительнойОперации = "СтраницаОжидания_ОбработкаДлительнойОперации"; 548 | 549 | Переход = ТаблицаПереходов.Добавить(); 550 | Переход.ПорядковыйНомерПерехода = 7; 551 | Переход.ИмяОсновнойСтраницы = "СтраницаСемь"; 552 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииПродолжение"; 553 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 554 | Переход.ИмяОбработчикаПриОткрытии = "СтраницаСемь_ПриОткрытии"; 555 | Переход.ИмяОбработчикаПриПереходеНазад = "СтраницаСемь_ПриПереходеНазад"; 556 | 557 | Переход = ТаблицаПереходов.Добавить(); 558 | Переход.ПорядковыйНомерПерехода = 8; 559 | Переход.ИмяОсновнойСтраницы = "СтраницаВосемь"; 560 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииПродолжение"; 561 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 562 | Переход.ИмяОбработчикаПриПереходеДалее = "СтраницаВосемь_ПриПереходеДалее"; 563 | 564 | 565 | Переход = ТаблицаПереходов.Добавить(); 566 | Переход.ПорядковыйНомерПерехода = 9; 567 | Переход.ИмяОсновнойСтраницы = "СтраницаДевять"; 568 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииОкончание"; 569 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииОкончание"; 570 | 571 | КонецПроцедуры 572 | 573 | #КонецОбласти 574 | 575 | // Задает вопрос о продолжении действия, которое приведет к закрытию формы. 576 | // Для использования в обработчиках события ПередЗакрытием модулей форм. 577 | // Для отображения вопроса в форме, которая возможно записать в информационную базу, используйте: 578 | // см. процедуру ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияФормы(). 579 | // 580 | // Параметры: 581 | // Форма - ФормаКлиентскогоПриложения - форма, которая вызывает диалог предупреждения. 582 | // Отказ - Булево - возвращаемый параметр, признак отказа от выполняемого действия. 583 | // ЗавершениеРаботы - Булево - признак завершения работы программы. 584 | // ТекстПредупреждения - Строка - текст предупреждения, выводимый пользователю. 585 | // ИмяРеквизитаЗакрытьФормуБезПодтверждения - Строка - имя реквизита, содержащего в себе признак того, нужно 586 | // выводить предупреждение или нет. 587 | // ОписаниеОповещенияЗакрыть - ОписаниеОповещения - содержит имя процедуры, вызываемой при нажатии на кнопку "Да". 588 | // 589 | // Пример: 590 | // ТекстПредупреждения = НСтр("ru = 'Закрыть помощник?'"); 591 | // ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияПроизвольнойФормы( 592 | // ЭтотОбъект, Отказ, ТекстПредупреждения, "ЗакрытьФормуБезПодтверждения"); 593 | // 594 | &НаКлиенте 595 | Процедура ПоказатьПодтверждениеЗакрытияПроизвольнойФормы( 596 | Знач Форма, 597 | Отказ, 598 | Знач ЗавершениеРаботы, 599 | Знач ТекстПредупреждения, 600 | Знач ИмяРеквизитаЗакрытьФормуБезПодтверждения, 601 | Знач ОписаниеОповещенияЗакрыть = Неопределено) Экспорт 602 | 603 | Если Форма[ИмяРеквизитаЗакрытьФормуБезПодтверждения] Тогда 604 | Возврат; 605 | КонецЕсли; 606 | 607 | Отказ = Истина; 608 | Если ЗавершениеРаботы Тогда 609 | Возврат; 610 | КонецЕсли; 611 | 612 | ПараметрыФормы = Новый Структура(); 613 | ПараметрыФормы.Вставить("ТекстПредупреждения", ТекстПредупреждения); 614 | ПараметрыФормы.Вставить("ИмяРеквизитаЗакрытьФормуБезПодтверждения", ИмяРеквизитаЗакрытьФормуБезПодтверждения); 615 | ПараметрыФормы.Вставить("ОписаниеОповещенияЗакрыть", ОписаниеОповещенияЗакрыть); 616 | 617 | ПодключитьОбработчикОжидания("ПодтвердитьЗакрытиеПроизвольнойФормыСейчасGR", 0.1, Истина); 618 | 619 | КонецПроцедуры 620 | 621 | // Задает вопрос о продолжении действия, ведущего к закрытию формы. 622 | // 623 | &НаКлиенте 624 | Процедура ПодтвердитьЗакрытиеПроизвольнойФормыСейчасGR() Экспорт 625 | 626 | ПодтвердитьЗакрытиеПроизвольнойФормыGR(); 627 | 628 | КонецПроцедуры 629 | 630 | &НаКлиенте 631 | Процедура ПодтвердитьЗакрытиеПроизвольнойФормыGR() Экспорт 632 | 633 | РежимВопроса = РежимДиалогаВопрос.ДаНет; 634 | 635 | Оповещение = Новый ОписаниеОповещения("ПодтвердитьЗакрытиеПроизвольнойФормыЗавершениеПК", ЭтотОбъект, ПараметрыФормы); 636 | 637 | ПоказатьВопрос(Оповещение, ПараметрыФормы.ТекстПредупреждения, РежимВопроса); 638 | 639 | КонецПроцедуры 640 | 641 | &НаСервере 642 | Функция ПолучитьКартинкуОбработки(ИмяМакета) 643 | Об = РеквизитФормыВЗначение("Объект"); 644 | Картинка = Новый Картинка(Об.ПолучитьМакет(ИмяМакета)); 645 | Возврат ПоместитьВоВременноеХранилище(Картинка, УникальныйИдентификатор); 646 | КонецФункции 647 | 648 | &НаСервере 649 | Функция ОбработкаОбъект() 650 | Возврат РеквизитФормыВЗначение("Объект"); 651 | КонецФункции 652 | 653 | &НаКлиенте 654 | Процедура ПодтвердитьЗакрытиеПроизвольнойФормыЗавершениеПК(Ответ, Параметры) Экспорт 655 | 656 | Форма = ЭтотОбъект; 657 | Если Ответ = КодВозвратаДиалога.Да 658 | Или Ответ = КодВозвратаДиалога.ОК Тогда 659 | Форма[Параметры.ИмяРеквизитаЗакрытьФормуБезПодтверждения] = Истина; 660 | Если Параметры.ОписаниеОповещенияЗакрыть <> Неопределено Тогда 661 | ВыполнитьОбработкуОповещения(Параметры.ОписаниеОповещенияЗакрыть); 662 | КонецЕсли; 663 | Форма.Закрыть(); 664 | Иначе 665 | Форма[Параметры.ИмяРеквизитаЗакрытьФормуБезПодтверждения] = Ложь; 666 | КонецЕсли; 667 | 668 | КонецПроцедуры 669 | 670 | &НаКлиенте 671 | Процедура ЗарегистрироватьсяВGreenAPI(Команда) 672 | Оповещение = Новый ОписаниеОповещения("ЗавершитьЗапускПриложенияGR", ЭтотОбъект); 673 | НачатьЗапускПриложения(Оповещение, "https://console.green-api.com/"); 674 | КонецПроцедуры 675 | 676 | &НаКлиенте 677 | Процедура ЗавершитьЗапускПриложенияGR(КодВозврата, ДополнительныеПараметры) Экспорт 678 | 679 | // Действия не требуются 680 | 681 | КонецПроцедуры 682 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Forms/ЧатБот.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 |
4 | 5 | ЧатБот 6 | 7 | 8 | ru 9 | Чат бот 10 | 11 | 12 | 13 | Managed 14 | false 15 | 16 | PlatformApplication 17 | MobilePlatformApplication 18 | 19 | 20 | 21 |
22 |
-------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Forms/ЧатБот/Ext/Form.xml: -------------------------------------------------------------------------------- 1 |  2 |
3 | Use 4 | UseList 5 | false 6 | 7 | false 8 | 9 | 10 | ОбработкаВыбора 11 | ПриОткрытии 12 | ПриСозданииНаСервере 13 | 14 | 15 | 16 | Vertical 17 | None 18 | false 19 | 20 | 21 | 22 | 76 23 | None 24 | false 25 | #4FAD4F 26 | 27 | 28 | 29 | false 30 | 75 31 | false 32 | web:White 33 | 34 | 35 | <v8:item> 36 | <v8:lang>ru</v8:lang> 37 | <v8:content>GREEN API</v8:content> 38 | </v8:item> 39 | 40 | Center 41 | Center 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | <v8:item> 50 | <v8:lang>ru</v8:lang> 51 | <v8:content>Разделы</v8:content> 52 | </v8:item> 53 | 54 | 55 | 56 | ru 57 | Разделы 58 | 59 | 60 | 76 61 | false 62 | 63 | 64 | 65 | 66 | <v8:item> 67 | <v8:lang>ru</v8:lang> 68 | <v8:content>Чат-бот</v8:content> 69 | </v8:item> 70 | 71 | 72 | 73 | ru 74 | Чат бот 75 | 76 | 77 | 78 | 79 | 80 | 81 | <v8:item> 82 | <v8:lang>ru</v8:lang> 83 | <v8:content>Действия бота</v8:content> 84 | </v8:item> 85 | 86 | 87 | 88 | ru 89 | Действия бота 90 | 91 | 92 | 3 93 | NormalSeparation 94 | false 95 | 96 | 97 | 104 | 105 | СтатусПолучениеСообщения 106 | None 107 | style:FieldSelectionBackColor 108 | 109 | 110 | 111 | 112 | 113 | 114 | false 115 | 116 | <v8:item> 117 | <v8:lang>ru</v8:lang> 118 | <v8:content>Группа не заполнены настройки</v8:content> 119 | </v8:item> 120 | 121 | 122 | 123 | ru 124 | Группа не заполнены настройки 125 | 126 | 127 | Center 128 | Horizontal 129 | Center 130 | None 131 | false 132 | 133 | 134 | 135 | 3 136 | false 137 | 2 138 | false 139 | Proportionally 140 | 141 | StdPicture.DialogExclamation 142 | false 143 | 144 | AsFile 145 | 146 | 147 | 148 | 149 | 29 150 | false 151 | 152 | <v8:item> 153 | <v8:lang>ru</v8:lang> 154 | <v8:content>Не заданы настройки подключения. Введите настройки на закладке "Настройки"</v8:content> 155 | </v8:item> 156 | 157 | true 158 | 159 | 160 | 161 | Декорация2Нажатие 162 | 163 | 164 | 165 | 166 | 167 | false 168 | 169 | <v8:item> 170 | <v8:lang>ru</v8:lang> 171 | <v8:content>Группа не заполнены настрйоки</v8:content> 172 | </v8:item> 173 | 174 | 175 | 176 | ru 177 | Группа не заполнены настрйоки 178 | 179 | 180 | Center 181 | Horizontal 182 | Center 183 | None 184 | false 185 | 186 | 187 | 188 | 3 189 | false 190 | 2 191 | false 192 | Proportionally 193 | 194 | StdPicture.DialogExclamation 195 | false 196 | 197 | AsFile 198 | 199 | 200 | 201 | 202 | 32 203 | false 204 | 205 | <v8:item> 206 | <v8:lang>ru</v8:lang> 207 | <v8:content>Требуется сканировать qr код Нажмите на ссылку для перехода на закладку "Настройки" для инструкций</v8:content> 208 | </v8:item> 209 | 210 | true 211 | 212 | 213 | 214 | Декорация5Нажатие 215 | 216 | 217 | 218 | 219 | 220 | false 221 | 222 | <v8:item> 223 | <v8:lang>ru</v8:lang> 224 | <v8:content>Группа запущен чат бот</v8:content> 225 | </v8:item> 226 | 227 | 228 | 229 | ru 230 | Группа запущен чат бот 231 | 232 | 233 | None 234 | false 235 | 236 | 237 | 238 | 239 | <v8:item> 240 | <v8:lang>ru</v8:lang> 241 | <v8:content>Чатбот запущен. Отправьте любое сообщение на свой номер для начала диалога. 242 | Напишите <colorstyle -46>Выход</>, чтобы остановить работу бота. 243 | 244 | Чатбот работает в режиме ожидания получения сообщений - 20 сек. 245 | 246 | Далее переходит в режим бездействия - 3 сек. 247 | 248 | В реальных условиях режим бездействия можно сократить, чтобы работа чатбота не прерывалась. 249 | 250 | Рекомендуется перенести код в фоновое задание на сервер. 251 | 252 | На время работы чатбота ваш телефон должен быть заряжен и подключен к Интернет. 253 | 254 | Если телефон выключится, то чатбот перестанет работать.</v8:content> 255 | </v8:item> 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | false 264 | 265 | <v8:item> 266 | <v8:lang>ru</v8:lang> 267 | <v8:content>Группа не заполнены настрйоки</v8:content> 268 | </v8:item> 269 | 270 | 271 | 272 | ru 273 | Группа не заполнены настрйоки 274 | 275 | 276 | Center 277 | Horizontal 278 | Center 279 | None 280 | false 281 | 282 | 283 | 284 | 3 285 | false 286 | 2 287 | false 288 | Proportionally 289 | 290 | StdPicture.DialogExclamation 291 | false 292 | 293 | AsFile 294 | 295 | 296 | 297 | 298 | 32 299 | false 300 | 301 | <v8:item> 302 | <v8:lang>ru</v8:lang> 303 | <v8:content>Пройдите помощник настройки для установки стандартных настроек и повторите запуск чатбота</v8:content> 304 | </v8:item> 305 | 306 | true 307 | 308 | 309 | 310 | Декорация5Нажатие 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | <v8:item> 320 | <v8:lang>ru</v8:lang> 321 | <v8:content>Настройки</v8:content> 322 | </v8:item> 323 | 324 | 325 | 326 | ru 327 | Настройки внешние 328 | 329 | 330 | 331 | 332 | 333 | false 334 | true 335 | 336 | <v8:item> 337 | <v8:lang>ru</v8:lang> 338 | <v8:content><fontsize 12>1. Регистрация и подключение телефона</> 339 | 340 | Зарегистрируйтесь в личном кабинете <link https://green-api.com/>GREEN-API</> 341 | Выберите бесплатный тариф "Разработчик" 342 | Подключите телефон к сервису. Для этого сканируйте QR-код в личном кабинете.</v8:content> 343 | </v8:item> 344 | 345 | 346 | 347 | 348 | 362 | 363 | false 364 | true 365 | 366 | <v8:item> 367 | <v8:lang>ru</v8:lang> 368 | <v8:content><fontsize 12>2. Укажите параметры "ID Instance" и "API Token"</></v8:content> 369 | </v8:item> 370 | 371 | 372 | 373 | 374 | 375 | Объект.IdInstance 376 | 377 | <v8:item> 378 | <v8:lang>ru</v8:lang> 379 | <v8:content>ID Instance</v8:content> 380 | </v8:item> 381 | 382 | true 383 | true 384 | OnValueChange 385 | 386 | 387 | ru 388 | 9999 389 | 390 | 391 | 392 | 393 | 394 | IdInstanceПриИзменении 395 | 396 | 397 | 398 | Объект.ApiToken 399 | 400 | <v8:item> 401 | <v8:lang>ru</v8:lang> 402 | <v8:content>API Token</v8:content> 403 | </v8:item> 404 | 405 | true 406 | true 407 | OnValueChange 408 | 409 | 410 | ru 411 | 123fdws3214t3456g214234171855e0ff3f597f1 412 | 413 | 414 | 415 | 416 | 417 | 418 | Объект.apiUrl 419 | true 420 | true 421 | OnValueChange 422 | 423 | 424 | ru 425 | api.green-api.com 426 | 427 | 428 | 429 | 430 | 431 | 432 | Объект.mediaUrl 433 | true 434 | true 435 | OnValueChange 436 | 437 | 438 | ru 439 | media.green-api.com 440 | 441 | 442 | 443 | 444 | 445 | 446 | false 447 | true 448 | 449 | <v8:item> 450 | <v8:lang>ru</v8:lang> 451 | <v8:content><fontsize 12>3. Проверьте подключение аккаунта</></v8:content> 452 | </v8:item> 453 | 454 | 455 | 456 | 457 | 462 | 463 | СтатусСервиса 464 | false 465 | None 466 | true 467 | 468 | 469 | ru 470 | БЛ='Отключен (требуется сканировать QR-код)'; БИ=Подключен 471 | 472 | 473 | style:AccentColor 474 | 475 | 476 | 477 | 478 | Объект.ОтмечатьВходящиеСообщенияПрочитанными 479 | Right 480 | ShowBottom 481 | Auto 482 | 483 | 484 | style:FieldSelectionBackColor 485 | 486 | <v8:item> 487 | <v8:lang>ru</v8:lang> 488 | <v8:content>Каждое входящее сообщение на ваш номер будет помечено как прочитанное сразу при получении. Отключите эту настройку, если требуется отслеживать входящие сообщения с телефона</v8:content> 489 | </v8:item> 490 | 491 | 492 | 493 | ОтмечатьВходящиеСообщенияПрочитаннымиПриИзменении 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | cfg:DataProcessorObject.GreenAPI_ChatBot 507 | 508 | true 509 | true 510 | 511 | Объект.ApiToken 512 | Объект.IdInstance 513 | 514 | 515 | 516 | 517 | <v8:item> 518 | <v8:lang>ru</v8:lang> 519 | <v8:content>Статус</v8:content> 520 | </v8:item> 521 | 522 | 523 | xs:boolean 524 | 525 | 526 | 527 | 528 | <v8:item> 529 | <v8:lang>ru</v8:lang> 530 | <v8:content>Статус получение сообщения</v8:content> 531 | </v8:item> 532 | 533 | 534 | xs:string 535 | 536 | 0 537 | Variable 538 | 539 | 540 | 541 | 542 | 543 | <v8:item> 544 | <v8:lang>ru</v8:lang> 545 | <v8:content>Бот запущен</v8:content> 546 | </v8:item> 547 | 548 | 549 | xs:boolean 550 | 551 | 552 | 553 | 554 | 555 | 556 | СтатусПроверки 557 | 558 | 559 | 560 | 561 | СтатусСервиса 562 | Equal 563 | true 564 | 565 | 566 | 567 | 568 | ЦветТекста 569 | web:LimeGreen 570 | 571 | 572 | 573 | 574 | 575 | 576 | СтатусПроверки 577 | 578 | 579 | 580 | 581 | СтатусСервиса 582 | Equal 583 | false 584 | 585 | 586 | 587 | 588 | ЦветТекста 589 | style:SpecialTextColor 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | <v8:item> 599 | <v8:lang>ru</v8:lang> 600 | <v8:content>Обновить статус</v8:content> 601 | </v8:item> 602 | 603 | 604 | 605 | ru 606 | Обновить статус 607 | 608 | 609 | 610 | StdPicture.Refresh 611 | true 612 | 613 | ОбновитьСтатус 614 | Picture 615 | DontUse 616 | 617 | 618 | 619 | <v8:item> 620 | <v8:lang>ru</v8:lang> 621 | <v8:content>Проверить подключение</v8:content> 622 | </v8:item> 623 | 624 | 625 | 626 | ru 627 | Проверить подключение 628 | 629 | 630 | ПроверитьПодключение 631 | 632 | 633 | 634 | <v8:item> 635 | <v8:lang>ru</v8:lang> 636 | <v8:content>Кнопка помощник</v8:content> 637 | </v8:item> 638 | 639 | 640 | 641 | ru 642 | Кнопка помощник 643 | 644 | 645 | КнопкаПомощник 646 | 647 | 648 | 649 | <v8:item> 650 | <v8:lang>ru</v8:lang> 651 | <v8:content>Запустить бота</v8:content> 652 | </v8:item> 653 | 654 | ЗапуститьБота 655 | 656 | 657 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Forms/ЧатБот/Ext/Form/Module.bsl: -------------------------------------------------------------------------------- 1 |  2 | #Область ОбработчикиСобытий 3 | 4 | &НаСервере 5 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 6 | ПодготовитьНастройки(); 7 | КонецПроцедуры 8 | 9 | &НаКлиенте 10 | Процедура ПриОткрытии(Отказ) 11 | Если ЗначениеЗаполнено(Объект.ApiToken) И ЗначениеЗаполнено(Объект.IdInstance) Тогда 12 | ОбновитьСтатусСервиса(); 13 | КонецЕсли; 14 | КонецПроцедуры 15 | 16 | &НаКлиенте 17 | Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) 18 | Если ЗначениеЗаполнено(ВыбранноеЗначение) Тогда 19 | Если ВыбранноеЗначение.ИмяФормы = "ПомощникПодключения" Тогда 20 | Объект.IdInstance = ВыбранноеЗначение.IdInstance; 21 | Объект.ApiToken = ВыбранноеЗначение.ApiToken; 22 | Объект.apiUrl = ВыбранноеЗначение.apiUrl; 23 | Объект.mediaUrl = ВыбранноеЗначение.mediaUrl; 24 | КонецЕсли; 25 | КонецЕсли; 26 | КонецПроцедуры 27 | 28 | #КонецОбласти 29 | 30 | #Область ОбработчикиРеквизитовКомандФормы 31 | 32 | &НаКлиенте 33 | Процедура ОтмечатьВходящиеСообщенияПрочитаннымиПриИзменении(Элемент) 34 | ОтмечатьВходящиеСообщенияПрочитаннымиПриИзмененииСервер(); 35 | КонецПроцедуры 36 | 37 | &НаКлиенте 38 | Процедура ПроверитьПодключение(Команда) 39 | ОбновитьСтатусСервиса(); 40 | Элементы.СтатусПроверки.Видимость = Истина; 41 | КонецПроцедуры 42 | 43 | &НаКлиенте 44 | Процедура ОбновитьСтатус(Команда) 45 | 46 | ОбновитьСтатусСервиса(); 47 | 48 | КонецПроцедуры 49 | 50 | &НаКлиенте 51 | Процедура КнопкаПомощник(Команда) 52 | 53 | ОткрытьФормуОбработки("ПомощникПодключения"); 54 | 55 | КонецПроцедуры 56 | 57 | &НаКлиенте 58 | Процедура ЗапуститьБота(Команда) 59 | 60 | Элементы.ГруппаНеЗаполненыНастройки.Видимость = Ложь; 61 | Элементы.ГруппаНеСканированКод.Видимость = Ложь; 62 | Элементы.ГруппаНестандартныеНастройки.Видимость = Ложь; 63 | 64 | Если Не ЗначениеЗаполнено(Объект.ApiToken) И Не ЗначениеЗаполнено(Объект.IdInstance) Тогда 65 | Элементы.ГруппаНеЗаполненыНастройки.Видимость = Истина; 66 | Возврат; 67 | КонецЕсли; 68 | 69 | Попытка 70 | ОбновитьСтатусСервиса(); 71 | Исключение 72 | Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); 73 | Возврат; 74 | КонецПопытки; 75 | 76 | 77 | Если Объект.webhookUrl <> ХостВебхуковПоУмолчанию() 78 | Или Не Объект.ПолучатьВходящиеСообщенияИФайлы 79 | Или Объект.ПолучатьСтатусыОтправленныхСообщений 80 | Или Объект.ПолучатьУведомленииОСостоянииТелефона 81 | Или Объект.ПолучатьУведомленияОСостоянииАккаунта Тогда 82 | 83 | Элементы.ГруппаНестандартныеНастройки.Видимость = Истина; 84 | Возврат; 85 | КонецЕсли; 86 | 87 | Если СтатусСервиса Тогда 88 | ВыполнитьЗапускБота(); 89 | Иначе 90 | Элементы.ГруппаНеСканированКод.Видимость = Истина; 91 | Возврат; 92 | КонецЕсли; 93 | 94 | КонецПроцедуры 95 | 96 | #КонецОбласти 97 | 98 | #Область СлужебныеПроцедурыИФункции 99 | 100 | &НаКлиенте 101 | Процедура ВыполнитьЗапускБота() 102 | Элементы.ЗапуститьБота.Пометка = Не Элементы.ЗапуститьБота.Пометка; 103 | Если Элементы.ЗапуститьБота.Пометка Тогда 104 | Элементы.ЗапуститьБота.Заголовок = "Остановить бота"; 105 | СтатусПолучениеСообщения = "Получение сообщений..."; 106 | Элементы.ГруппаЗапущенЧатБот.Видимость = Истина; 107 | ПодключитьОбработчикОжидания("Подключаемый_ЗапуститьБота", 3, Истина); 108 | Иначе 109 | Элементы.ЗапуститьБота.Заголовок = "Запустить бота"; 110 | СтатусПолучениеСообщения = ""; 111 | Элементы.ГруппаЗапущенЧатБот.Видимость = Ложь; 112 | ОтключитьОбработчикОжидания("Подключаемый_ЗапуститьБота"); 113 | КонецЕсли; 114 | КонецПроцедуры 115 | 116 | &НаСервере 117 | Процедура ПодготовитьНастройки() 118 | 119 | ЭтотОбъект.Заголовок = ОбработкаОбъект().ВерсияОбработки(); 120 | Объект.ИнтервалОтправкиСообщений = 500; 121 | 122 | КонецПроцедуры 123 | 124 | &НаКлиенте 125 | Процедура Подключаемый_ЗапуститьБота() Экспорт 126 | Попытка 127 | ЗапуститьБотаСервер(); 128 | ПодключитьОбработчикОжидания("Подключаемый_ЗапуститьБота", 3, Истина); 129 | Исключение 130 | Элементы.ЗапуститьБота.Заголовок = "Запустить бота"; 131 | СтатусПолучениеСообщения = ""; 132 | Элементы.ГруппаЗапущенЧатБот.Видимость = Ложь; 133 | Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); 134 | ОтключитьОбработчикОжидания("Подключаемый_ЗапуститьБота"); 135 | КонецПопытки; 136 | КонецПроцедуры 137 | 138 | &НаСервере 139 | Процедура ЗапуститьБотаСервер() 140 | 141 | ОбновитьСтатусСервиса(); 142 | ОбработкаОбъект = ОбработкаОбъект(); 143 | ОбработкаОбъект.ЗапуститьБота(); 144 | ЗначениеВРеквизитФормы(ОбработкаОбъект, "Объект"); 145 | 146 | КонецПроцедуры 147 | 148 | &НаСервере 149 | Процедура ОбновитьСтатусСервиса() 150 | 151 | Если Не ЭтотОбъект.ПроверитьЗаполнение() Тогда 152 | Возврат; 153 | КонецЕсли; 154 | 155 | СтатусСервиса = ОбработкаОбъект().ПолучитьСтатусСервиса(); 156 | 157 | Если СтатусСервиса Тогда 158 | НастройкиСервиса = ОбработкаОбъект().ПолучитьНастройкиАккаунта(); 159 | 160 | Объект.ПолучатьВходящиеУведомления = ЗначениеЗаполнено(НастройкиСервиса.webhookUrl) И НастройкиСервиса.webhookUrl = ОбработкаОбъект().ХостВебхуковПоУмолчанию(); 161 | Объект.webhookUrl = НастройкиСервиса.webhookUrl; 162 | Объект.ПолучатьВходящиеСообщенияИФайлы = НастройкиСервиса.incomingWebhook = "yes"; 163 | Объект.ПолучатьСтатусыОтправленныхСообщений = НастройкиСервиса.outgoingWebhook = "yes"; 164 | Объект.ПолучатьУведомленииОСостоянииТелефона = НастройкиСервиса.deviceWebhook = "yes"; 165 | Объект.ПолучатьУведомленияОСостоянииАккаунта = НастройкиСервиса.stateWebhook = "yes"; 166 | Объект.ОтмечатьВходящиеСообщенияПрочитанными = НастройкиСервиса.markIncomingMessagesReaded = "yes"; 167 | Объект.ИнтервалОтправкиСообщений = Макс(НастройкиСервиса.delaySendMessagesMilliseconds, Объект.ИнтервалОтправкиСообщений); 168 | 169 | ЕстьНестадантныенастройки = Не (ЗначениеЗаполнено(НастройкиСервиса.webhookUrl) И НастройкиСервиса.webhookUrl = ОбработкаОбъект().ХостВебхуковПоУмолчанию()); 170 | КонецЕсли; 171 | 172 | КонецПроцедуры 173 | 174 | &НаСервере 175 | Процедура ОтмечатьВходящиеСообщенияПрочитаннымиПриИзмененииСервер() 176 | 177 | НастройкиСохранены = ОбработкаОбъект().УстановитьНастройкуСервиса("markIncomingMessagesReaded", 178 | ? (Объект.ОтмечатьВходящиеСообщенияПрочитанными, "yes", "no")); 179 | 180 | КонецПроцедуры 181 | 182 | &НаКлиенте 183 | Процедура Декорация2Нажатие(Элемент) 184 | ПроверитьЗаполнение(); 185 | КонецПроцедуры 186 | 187 | &НаКлиенте 188 | Процедура Декорация5Нажатие(Элемент) 189 | Элементы.Разделы.ТекущаяСтраница = Элементы.НастройкиВнешние; 190 | КонецПроцедуры 191 | 192 | Функция ХостВебхуковПоУмолчанию() 193 | 194 | Возврат ОбработкаОбъект().ХостВебхуковПоУмолчанию(); 195 | 196 | КонецФункции 197 | 198 | #КонецОбласти 199 | 200 | #Область Утилиты 201 | 202 | &НаСервере 203 | Функция ПолучитьТекстИзМакета(ИмяМакета) 204 | Об = ОбработкаОбъект(); 205 | ОбластьМакета = Об.ПолучитьМакет(ИмяМакета); 206 | Возврат ОбластьМакета.ТекущаяОбласть.Текст; 207 | КонецФункции 208 | 209 | &НаСервере 210 | Функция ОбработкаОбъект() 211 | Возврат РеквизитФормыВЗначение("Объект"); 212 | КонецФункции 213 | 214 | &НаСервере 215 | Функция ЭтоВнешняяОбработкаОтчет() Экспорт 216 | ПолноеИмяМетаданных = ОбработкаОбъект().Метаданные().ПолноеИмя(); 217 | Возврат Метаданные.НайтиПоПолномуИмени(ПолноеИмяМетаданных) = Неопределено 218 | КонецФункции 219 | 220 | &НаКлиенте 221 | Функция ОткрытьФормуОбработки(ИмяФормы) 222 | 223 | Если ЭтоВнешняяОбработкаОтчет() Тогда 224 | ИмяОткрФормы = "ВнешняяОбработка.GreenAPI_ChatBot.Форма." + ИмяФормы; 225 | Иначе 226 | ИмяОткрФормы = "Обработка.GreenAPI_ChatBot.Форма." + ИмяФормы; 227 | КонецЕсли; 228 | 229 | ОткрытьФорму(ИмяОткрФормы, Новый Структура("IdInstance,ApiToken,apiUrl,mediaUrl", Объект.IdInstance, Объект.ApiToken, Объект.apiUrl, Объект.mediaUrl), ЭтотОбъект,,,,, 230 | РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); 231 | 232 | КонецФункции 233 | 234 | #КонецОбласти 235 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Templates/QRМакет.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 16 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Templates/QRМакет/Ext/Template.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ru 5 | ru 6 | 7 | ru 8 | Русский 9 | Русский 10 | 11 | 12 | 13 | 12 14 | 15 | 16 | 0 17 | 18 | 19 | 20 | 0 21 | 22 | 23 | ru 24 | <!DOCTYPE html> 25 | <html> 26 | <body> 27 | 28 | <img ng-show="$nnn.showQR" id="img-qr-code" alt="QR-Code" class="sb-qr-wizard-qr-code" aria-hidden="false" src="data:image/png;base64,%QR_DATA%" style=""> 29 | </body> 30 | </html> 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 11 40 | 41 | 0 42 | 43 | 44 | 45 | 46 | 47 | 48 | 45 49 | 50 | 51 | 5 52 | 53 | 0 54 | 55 | 56 | 57 | 58 | 59 | true 60 | 1 61 | 46 62 | 46 63 | 64 | 72 65 | 66 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Templates/ВыборАккаунта.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 16 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Templates/ВыборАккаунта/Ext/Template.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-chatbot-1c/b2de0f5a99febbfad7d3d1ded210b140e6d166f7/src/DataProcessors/GreenAPI_ChatBot/Templates/ВыборАккаунта/Ext/Template.bin -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Templates/ДанныеАккаунта.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 16 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Templates/ДанныеАккаунта/Ext/Template.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-chatbot-1c/b2de0f5a99febbfad7d3d1ded210b140e6d166f7/src/DataProcessors/GreenAPI_ChatBot/Templates/ДанныеАккаунта/Ext/Template.bin -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Templates/ИконкаWhatsApp.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 16 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Templates/ИконкаWhatsApp/Ext/Template.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-chatbot-1c/b2de0f5a99febbfad7d3d1ded210b140e6d166f7/src/DataProcessors/GreenAPI_ChatBot/Templates/ИконкаWhatsApp/Ext/Template.bin -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Templates/ИконкаФиниш.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 16 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Templates/ИконкаФиниш/Ext/Template.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-chatbot-1c/b2de0f5a99febbfad7d3d1ded210b140e6d166f7/src/DataProcessors/GreenAPI_ChatBot/Templates/ИконкаФиниш/Ext/Template.bin -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Templates/СканQR.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 16 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI_ChatBot/Templates/СканQR/Ext/Template.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-chatbot-1c/b2de0f5a99febbfad7d3d1ded210b140e6d166f7/src/DataProcessors/GreenAPI_ChatBot/Templates/СканQR/Ext/Template.bin -------------------------------------------------------------------------------- /src/DataProcessors/Обработка1.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 803b7faa-dacd-4f88-bc69-6f349cdde9dd 7 | 60c46620-65e1-4de6-ba7a-6915dce5db59 8 | 9 | 10 | 614e98fc-037c-48f2-a182-dc8da750f5e9 11 | 72d9fb93-9d4c-41d0-9c55-f76d2566cf55 12 | 13 | 14 | 15 | Обработка1 16 | 17 | 18 | true 19 | 20 | 21 | false 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/Ext/HomePageWorkArea.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | TwoColumnsEqualWidth 4 | 5 | 6 | 7 |
DataProcessor.GreenAPI_ChatBot.Form.ЧатБот
8 | 10 9 | 10 | true 11 | 12 |
13 |
14 |
-------------------------------------------------------------------------------- /src/Languages/Русский.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Русский 6 | 7 | 8 | ru 9 | Русский 10 | 11 | 12 | 13 | ru 14 | 15 | 16 | --------------------------------------------------------------------------------