├── media ├── Login.png ├── Sending.png ├── Receiving.png └── Screenshort.png ├── releases ├── 0.34 │ └── GreenAPI.epf ├── 0.35 │ └── GreenAPI.epf ├── 0.36 │ └── GreenAPI.epf ├── 0.37 │ └── GreenAPI.epf ├── 0.38 │ └── GreenAPI.epf ├── 0.39 │ └── GreenAPI.epf ├── 0.50 │ └── GreenAPI.epf ├── 0.51 │ └── GreenAPI.epf ├── 0.52 │ └── GreenAPI.epf ├── 0.53 │ └── GreenAPI.epf ├── 0.60 │ └── GreenAPI.epf ├── 0.61 │ └── GreenAPI.epf ├── 0.62 │ └── GreenAPI.epf ├── 0.63 │ └── GreenAPI.epf ├── 0.64 │ └── GreenAPI.epf └── 0.65 │ └── GreenAPI.epf ├── src ├── DataProcessors │ ├── GreenAPI │ │ ├── Templates │ │ │ ├── СканQR │ │ │ │ └── Ext │ │ │ │ │ └── Template.bin │ │ │ ├── ИконкаФиниш │ │ │ │ └── Ext │ │ │ │ │ └── Template.bin │ │ │ ├── ВыборАккаунта │ │ │ │ └── Ext │ │ │ │ │ └── Template.bin │ │ │ ├── ДанныеАккаунта │ │ │ │ └── Ext │ │ │ │ │ └── Template.bin │ │ │ ├── ИконкаWhatsApp │ │ │ │ └── Ext │ │ │ │ │ └── Template.bin │ │ │ ├── СканQR.xml │ │ │ ├── QRМакет.xml │ │ │ ├── ИконкаФиниш.xml │ │ │ ├── ВыборАккаунта.xml │ │ │ ├── ДанныеАккаунта.xml │ │ │ ├── ИконкаWhatsApp.xml │ │ │ └── QRМакет │ │ │ │ └── Ext │ │ │ │ └── Template.xml │ │ └── Forms │ │ │ ├── ВыборГеолокации │ │ │ └── Ext │ │ │ │ ├── Form │ │ │ │ └── Module.bsl │ │ │ │ └── Form.xml │ │ │ ├── СоздатьОпрос │ │ │ └── Ext │ │ │ │ ├── Form │ │ │ │ └── Module.bsl │ │ │ │ └── Form.xml │ │ │ ├── ВыборКонтакта │ │ │ └── Ext │ │ │ │ ├── Form │ │ │ │ └── Module.bsl │ │ │ │ └── Form.xml │ │ │ ├── ВыборСсылкиНаФайл │ │ │ └── Ext │ │ │ │ ├── Form │ │ │ │ └── Module.bsl │ │ │ │ └── Form.xml │ │ │ ├── Форма.xml │ │ │ ├── ВыборКнопок.xml │ │ │ ├── СоздатьОпрос.xml │ │ │ ├── ВыборКонтакта.xml │ │ │ ├── ВыборГеолокации.xml │ │ │ ├── ВыборСсылкиНаФайл.xml │ │ │ ├── ПомощникПодключения.xml │ │ │ ├── ВыборКнопок │ │ │ └── Ext │ │ │ │ ├── Form │ │ │ │ └── Module.bsl │ │ │ │ └── Form.xml │ │ │ └── ПомощникПодключения │ │ │ └── Ext │ │ │ ├── Form │ │ │ └── Module.bsl │ │ │ └── Form.xml │ └── GreenAPI.xml ├── Ext │ └── HomePageWorkArea.xml ├── Languages │ ├── Русский.xml │ └── Английский.xml ├── ConfigDumpInfo.xml └── Configuration.xml ├── LICENSE └── README.md /media/Login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/media/Login.png -------------------------------------------------------------------------------- /media/Sending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/media/Sending.png -------------------------------------------------------------------------------- /media/Receiving.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/media/Receiving.png -------------------------------------------------------------------------------- /media/Screenshort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/media/Screenshort.png -------------------------------------------------------------------------------- /releases/0.34/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.34/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.35/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.35/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.36/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.36/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.37/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.37/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.38/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.38/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.39/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.39/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.50/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.50/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.51/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.51/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.52/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.52/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.53/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.53/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.60/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.60/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.61/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.61/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.62/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.62/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.63/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.63/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.64/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.64/GreenAPI.epf -------------------------------------------------------------------------------- /releases/0.65/GreenAPI.epf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/releases/0.65/GreenAPI.epf -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Templates/СканQR/Ext/Template.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/src/DataProcessors/GreenAPI/Templates/СканQR/Ext/Template.bin -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Templates/ИконкаФиниш/Ext/Template.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/src/DataProcessors/GreenAPI/Templates/ИконкаФиниш/Ext/Template.bin -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Templates/ВыборАккаунта/Ext/Template.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/src/DataProcessors/GreenAPI/Templates/ВыборАккаунта/Ext/Template.bin -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Templates/ДанныеАккаунта/Ext/Template.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/src/DataProcessors/GreenAPI/Templates/ДанныеАккаунта/Ext/Template.bin -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Templates/ИконкаWhatsApp/Ext/Template.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/green-api/whatsapp-api-client-1c/HEAD/src/DataProcessors/GreenAPI/Templates/ИконкаWhatsApp/Ext/Template.bin -------------------------------------------------------------------------------- /src/Ext/HomePageWorkArea.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | TwoColumnsEqualWidth 4 | 5 | 6 | 7 |
DataProcessor.GreenAPI.Form.Форма
8 | 10 9 | 10 | true 11 | 12 |
13 |
14 |
-------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Forms/ВыборГеолокации/Ext/Form/Module.bsl: -------------------------------------------------------------------------------- 1 | &НаСервере 2 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 3 | 4 | Если Параметры.Свойство("IdInstance") Тогда 5 | Объект.IdInstance = Параметры.IdInstance; 6 | КонецЕсли; 7 | 8 | Если Параметры.Свойство("ApiToken") Тогда 9 | Объект.ApiToken = Параметры.ApiToken; 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 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Forms/СоздатьОпрос/Ext/Form/Module.bsl: -------------------------------------------------------------------------------- 1 | &НаСервере 2 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 3 | 4 | Если Параметры.Свойство("IdInstance") Тогда 5 | Объект.IdInstance = Параметры.IdInstance; 6 | КонецЕсли; 7 | 8 | Если Параметры.Свойство("ApiToken") Тогда 9 | Объект.ApiToken = Параметры.ApiToken; 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 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Forms/ВыборКонтакта/Ext/Form/Module.bsl: -------------------------------------------------------------------------------- 1 | &НаСервере 2 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 3 | 4 | Если Параметры.Свойство("IdInstance") Тогда 5 | Объект.IdInstance = Параметры.IdInstance; 6 | КонецЕсли; 7 | 8 | Если Параметры.Свойство("ApiToken") Тогда 9 | Объект.ApiToken = Параметры.ApiToken; 10 | КонецЕсли; 11 | 12 | ЗаполнитьФормуКонтакта(); 13 | 14 | КонецПроцедуры 15 | 16 | &НаСервере 17 | Процедура ЗаполнитьФормуКонтакта() 18 | 19 | Телефон = Число("78087771122"); 20 | Фамилия = "Иванов"; 21 | Имя = "Иван"; 22 | Отчество = "Иванович"; 23 | 24 | Компания = "Рога и Копыта"; 25 | 26 | КонецПроцедуры 27 | 28 | &НаКлиенте 29 | Процедура Отмена(Команда) 30 | 31 | Закрыть(); 32 | 33 | КонецПроцедуры 34 | 35 | &НаКлиенте 36 | Процедура Отправить(Команда) 37 | 38 | Если Не ПроверитьЗаполнение() Тогда 39 | Возврат; 40 | КонецЕсли; 41 | 42 | ОповеститьОВыборе(Новый Структура("ИмяФормы, Телефон, Имя, Фамилия, Отчество, Компания", "ВыборКонтакта", Телефон, 43 | Имя, Фамилия, Отчество, Компания)); 44 | 45 | КонецПроцедуры 46 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Templates/СканQR.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Templates/QRМакет.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Templates/ИконкаФиниш.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Templates/ВыборАккаунта.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Templates/ДанныеАккаунта.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Templates/ИконкаWhatsApp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Forms/ВыборСсылкиНаФайл/Ext/Form/Module.bsl: -------------------------------------------------------------------------------- 1 | 2 | &НаСервере 3 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 4 | 5 | Если Параметры.Свойство("IdInstance") Тогда 6 | Объект.IdInstance = Параметры.IdInstance; 7 | КонецЕсли; 8 | 9 | Если Параметры.Свойство("ApiToken") Тогда 10 | Объект.ApiToken = Параметры.ApiToken; 11 | КонецЕсли; 12 | 13 | ЗаполнитьФормуВыбораСсылкиНаФайл(); 14 | 15 | КонецПроцедуры 16 | 17 | &НаСервере 18 | Процедура ЗаполнитьФормуВыбораСсылкиНаФайл() 19 | 20 | АдресФайла = "https://getfile.dokpub.com/yandex/get/https://disk.yandex.ru/i/KuzZdQv6e7PidA"; 21 | ИмяФайла = "GreenAPI.png" 22 | 23 | КонецПроцедуры 24 | 25 | &НаКлиенте 26 | Процедура Отправить(Команда) 27 | Если ПроверитьЗаполнение() Тогда 28 | ЕстьРасширениеФайла = СтрНайти(ИмяФайла, ".", НаправлениеПоиска.СКонца) <> 0; 29 | Если Не ЕстьРасширениеФайла Тогда 30 | Сообщение = Новый СообщениеПользователю; 31 | Сообщение.Текст = "Имя файла должно содержать расширение"; 32 | Сообщение.Поле = "ИмяФайла"; 33 | Сообщение.Сообщить(); 34 | Возврат; 35 | КонецЕсли; 36 | ОповеститьОВыборе(Новый Структура("ИмяФормы,АдресФайла,ИмяФайла", "ВыборСсылкиНаФайл", АдресФайла, ИмяФайла)); 37 | КонецЕсли; 38 | КонецПроцедуры 39 | 40 | &НаКлиенте 41 | Процедура Отмена(Команда) 42 | Закрыть(); 43 | КонецПроцедуры 44 | 45 | -------------------------------------------------------------------------------- /src/Languages/Русский.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Русский 6 | 7 | 8 | ru 9 | Русский 10 | 11 | 12 | en 13 | Russian 14 | 15 | 16 | 17 | ru 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/Languages/Английский.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Английский 6 | 7 | 8 | ru 9 | Английский 10 | 11 | 12 | en 13 | English 14 | 15 | 16 | 17 | en 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/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/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/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/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/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/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/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/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 | 44 49 | 50 | 51 | 5 52 | 53 | 0 54 | 55 | 56 | 57 | 58 | 59 | true 60 | 1 61 | 45 62 | 45 63 | 64 | 72 65 | 66 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Демо обработка для работы с WhatsApp из 1С 2 | Репозиторий представляет собой исходники конфигурации в формате выгрузки xml файлов с одной обработкой. Из обработки можно отправить сообщение к себе на WhatsApp. Интеграция с WhatsApp сделана через REST сервис [green-api.com](https://green-api.com/) 3 | 4 | ## Требования 5 | * Для запуска обработки нужна Платформа 1С не ниже версии 8.3.10. 6 | * Для загрузки исходников нужно Платформа 1С не ниже версии 8.3.16.1063 7 | 8 | ## Сценарии работы 9 | 10 | 11 | ## Подключение к сервису green-api 12 | 1. [Скачать обработку](https://github.com/green-api/whatsapp-1c-example/releases/download/1.0/GreenAPI.epf) в формате epf 13 | 2. Подключиться к сервису через встроенный в обработку помощник или самостоятельно через сайт [green-api.com](https://green-api.com/). Получить ``API Token`` и ``ID Instance`` 14 | 3. Запустить в браузере или тонком клиенте и указать параметры подключения (``API Token`` и ``ID Instance``) 15 | 4. Сканировать QR код с мобильного телефона WhatsApp (Меню чаты -> Иконка всех функций -> WhatsApp Web) 16 | 6. В форме обработки нажать кнопку ``Проверить подключение / Сканировать QR Код``. Поле формы статус должно изменится на "Подключен" 17 | 18 | ![`Отправка сообщения`](media/Login.png) 19 | 20 | ## Отправка сообщения 21 | ![`Отправка сообщения`](media/Sending.png) 22 | 1. Подключиться к сервису (см. выше п.1) 23 | 2. Перейти на вкладку ``Отправка сообщений`` 24 | 2. Указать телефон получателя и текст соообщения 25 | 7. Нажать кнопку ``Отправить текст`` 26 | 27 | ## Получение сообщения 28 | ![`Получение сообщения`](media/Receiving.png) 29 | 1. Отправить тестовое сообщение (см. выше п.2) 30 | 2. Перейти на вкладку ``Получение сообщений`` 31 | 3. Нажать на кнопку ``Получить сообщенние``. Если сообщение было отправлено, то поле ``Тело сообщения`` заполнится данными в формате JSON. Если нет отправленных сообщенимй - то обработка будет ждать 20 секунд для получения сообщения. 32 | 33 | ## Использование обработки в собственных конфигурациях 34 | 35 | Обработка имеет программный интерфейс, оформленный в соответствии со [стандартами разработки 1С](https://its.1c.ru/db/v8std). Вы можете встроить ее в свою конфигурацию и вызывать АПИ на сервере через создание объекта. Пример использования: 36 | 37 | ### Отправка сообщения в чат 38 | 39 | ```bsl 40 | АПИ = Обработки.GreenAPI.Создать(); 41 | АПИ.IdInstance = "ВАШ_ИНСТАНС"; 42 | АПИ.ApiToken = "ВАШ_ТОКЕН"; 43 | Ответ = АПИ.ОтправитьТекст("79001234567", "Hello"); 44 | ``` 45 | 46 | ### Отправка сообщения в группу 47 | 48 | ```bsl 49 | АПИ = Обработки.GreenAPI.Создать(); 50 | АПИ.IdInstance = "ВАШ_ИНСТАНС"; 51 | АПИ.ApiToken = "ВАШ_ТОКЕН"; 52 | Ответ = АПИ.ОтправитьТекстВГруппу("79001234567-1615394251@g.us", "Hello"); 53 | ``` 54 | 55 | 56 | ## Установка обработки из исходников 57 | 58 | Исходники в репозитории - это xml выгрузка из конфигуратора 1С версии 8.3.16 в режиме совместимости с 8.3.10. Скачайте исходники с репозитория и загрузите в конфигуратор с помощью команды ``Конфигурация`` -> ``Загрузить конфигурацию из файлов`` 59 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Forms/ВыборСсылкиНаФайл/Ext/Form.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | <v8:item> 5 | <v8:lang>ru</v8:lang> 6 | <v8:content>Отправить файл по ссылке</v8:content> 7 | </v8:item> 8 | <v8:item> 9 | <v8:lang>en</v8:lang> 10 | <v8:content>Send file by URL</v8:content> 11 | </v8:item> 12 | 13 | 48 14 | 11 15 | false 16 | 17 | 18 | 27 | 32 | 33 | 34 | 35 | ПриСозданииНаСервере 36 | 37 | 38 | 39 | АдресФайла 40 | 41 | <v8:item> 42 | <v8:lang>ru</v8:lang> 43 | <v8:content>URL файла</v8:content> 44 | </v8:item> 45 | 46 | false 47 | true 48 | 49 | 50 | 51 | 52 | ИмяФайла 53 | false 54 | true 55 | 56 | 57 | ru 58 | image.png 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | cfg:DataProcessorObject.GreenAPI 69 | 70 | true 71 | 72 | 73 | 74 | <v8:item> 75 | <v8:lang>ru</v8:lang> 76 | <v8:content>Имя файла (с расширением)</v8:content> 77 | </v8:item> 78 | 79 | 80 | xs:string 81 | 82 | 0 83 | Variable 84 | 85 | 86 | ShowError 87 | 88 | 89 | 90 | <v8:item> 91 | <v8:lang>ru</v8:lang> 92 | <v8:content>Адрес файла</v8:content> 93 | </v8:item> 94 | 95 | 96 | xs:string 97 | 98 | 0 99 | Variable 100 | 101 | 102 | ShowError 103 | 104 | 105 | 106 | 107 | 108 | <v8:item> 109 | <v8:lang>ru</v8:lang> 110 | <v8:content>Отправить</v8:content> 111 | </v8:item> 112 | <v8:item> 113 | <v8:lang>en</v8:lang> 114 | <v8:content>Send</v8:content> 115 | </v8:item> 116 | 117 | 118 | 119 | ru 120 | Отправить 121 | 122 | 123 | en 124 | Send 125 | 126 | 127 | Отправить 128 | 129 | 130 | 131 | <v8:item> 132 | <v8:lang>ru</v8:lang> 133 | <v8:content>Отмена</v8:content> 134 | </v8:item> 135 | 136 | 137 | 138 | ru 139 | Отмена 140 | 141 | 142 | Отмена 143 | 144 | 145 |
-------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Forms/ВыборГеолокации/Ext/Form.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | <v8:item> 5 | <v8:lang>ru</v8:lang> 6 | <v8:content>Отправить геолокацию</v8:content> 7 | </v8:item> 8 | <v8:item> 9 | <v8:lang>en</v8:lang> 10 | <v8:content>Send location</v8:content> 11 | </v8:item> 12 | 13 | 14 | 15 | 23 | 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 | cfg:DataProcessorObject.GreenAPI 59 | 60 | true 61 | 62 | 63 | 64 | <v8:item> 65 | <v8:lang>ru</v8:lang> 66 | <v8:content>Название локации</v8:content> 67 | </v8:item> 68 | 69 | 70 | xs:string 71 | 72 | 0 73 | Variable 74 | 75 | 76 | 77 | 78 | 79 | <v8:item> 80 | <v8:lang>ru</v8:lang> 81 | <v8:content>Адрес</v8:content> 82 | </v8:item> 83 | 84 | 85 | xs:string 86 | 87 | 0 88 | Variable 89 | 90 | 91 | 92 | 93 | 94 | <v8:item> 95 | <v8:lang>ru</v8:lang> 96 | <v8:content>Широта</v8:content> 97 | </v8:item> 98 | 99 | 100 | xs:decimal 101 | 102 | 10 103 | 6 104 | Any 105 | 106 | 107 | 108 | 109 | 110 | <v8:item> 111 | <v8:lang>ru</v8:lang> 112 | <v8:content>Долгота</v8:content> 113 | </v8:item> 114 | 115 | 116 | xs:decimal 117 | 118 | 10 119 | 6 120 | Any 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | <v8:item> 129 | <v8:lang>ru</v8:lang> 130 | <v8:content>Отмена</v8:content> 131 | </v8:item> 132 | 133 | 134 | 135 | ru 136 | Отмена 137 | 138 | 139 | Отмена 140 | 141 | 142 | 143 | <v8:item> 144 | <v8:lang>ru</v8:lang> 145 | <v8:content>Отправить</v8:content> 146 | </v8:item> 147 | <v8:item> 148 | <v8:lang>en</v8:lang> 149 | <v8:content>Send</v8:content> 150 | </v8:item> 151 | 152 | 153 | 154 | ru 155 | Отправить 156 | 157 | 158 | en 159 | Send 160 | 161 | 162 | Отправить 163 | 164 | 165 | -------------------------------------------------------------------------------- /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 | 44 | 45 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Forms/ВыборКонтакта/Ext/Form.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | <v8:item> 5 | <v8:lang>ru</v8:lang> 6 | <v8:content>Отправить контакт</v8:content> 7 | </v8:item> 8 | <v8:item> 9 | <v8:lang>en</v8:lang> 10 | <v8:content>Send contact</v8:content> 11 | </v8:item> 12 | 13 | 14 | 15 | 24 | 30 | 31 | 32 | 33 | ПриСозданииНаСервере 34 | 35 | 36 | 37 | Телефон 38 | Left 39 | false 40 | true 41 | 42 | 43 | ru 44 | ЧДЦ=; ЧГ= 45 | 46 | 47 | 48 | 49 | 50 | 51 | Фамилия 52 | false 53 | true 54 | 55 | 56 | 57 | 58 | Имя 59 | false 60 | true 61 | 62 | 63 | 64 | 65 | Отчество 66 | false 67 | true 68 | 69 | 70 | 71 | 72 | Компания 73 | false 74 | true 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | cfg:DataProcessorObject.GreenAPI 83 | 84 | true 85 | 86 | 87 | 88 | <v8:item> 89 | <v8:lang>ru</v8:lang> 90 | <v8:content>Телефон</v8:content> 91 | </v8:item> 92 | 93 | 94 | xs:decimal 95 | 96 | 15 97 | 0 98 | Nonnegative 99 | 100 | 101 | ShowError 102 | 103 | 104 | 105 | <v8:item> 106 | <v8:lang>ru</v8:lang> 107 | <v8:content>Имя</v8:content> 108 | </v8:item> 109 | 110 | 111 | xs:string 112 | 113 | 0 114 | Variable 115 | 116 | 117 | ShowError 118 | 119 | 120 | 121 | <v8:item> 122 | <v8:lang>ru</v8:lang> 123 | <v8:content>Фамилия</v8:content> 124 | </v8:item> 125 | <v8:item> 126 | <v8:lang>en</v8:lang> 127 | <v8:content>Last name</v8:content> 128 | </v8:item> 129 | 130 | 131 | xs:string 132 | 133 | 0 134 | Variable 135 | 136 | 137 | ShowError 138 | 139 | 140 | 141 | <v8:item> 142 | <v8:lang>ru</v8:lang> 143 | <v8:content>Отчество</v8:content> 144 | </v8:item> 145 | 146 | 147 | xs:string 148 | 149 | 0 150 | Variable 151 | 152 | 153 | ShowError 154 | 155 | 156 | 157 | <v8:item> 158 | <v8:lang>ru</v8:lang> 159 | <v8:content>Компания</v8:content> 160 | </v8:item> 161 | 162 | 163 | xs:string 164 | 165 | 0 166 | Variable 167 | 168 | 169 | ShowError 170 | 171 | 172 | 173 | 174 | 175 | <v8:item> 176 | <v8:lang>ru</v8:lang> 177 | <v8:content>Отмена</v8:content> 178 | </v8:item> 179 | 180 | 181 | 182 | ru 183 | Отмена 184 | 185 | 186 | Отмена 187 | 188 | 189 | 190 | <v8:item> 191 | <v8:lang>ru</v8:lang> 192 | <v8:content>Отправить</v8:content> 193 | </v8:item> 194 | <v8:item> 195 | <v8:lang>en</v8:lang> 196 | <v8:content>Send</v8:content> 197 | </v8:item> 198 | 199 | 200 | 201 | ru 202 | Отправить 203 | 204 | 205 | en 206 | Send 207 | 208 | 209 | Отправить 210 | 211 | 212 |
-------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Forms/СоздатьОпрос/Ext/Form.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | <v8:item> 5 | <v8:lang>ru</v8:lang> 6 | <v8:content>Отправить опрос</v8:content> 7 | </v8:item> 8 | <v8:item> 9 | <v8:lang>en</v8:lang> 10 | <v8:content>Send poll</v8:content> 11 | </v8:item> 12 | 13 | 14 | 15 | 23 | 28 | 29 | 30 | 31 | ПриСозданииНаСервере 32 | 33 | 34 | 35 | Вопрос 36 | 37 | 38 | 39 | 40 | List 41 |
false
42 | false 43 | false 44 | true 45 | ВариантыОтветов 46 | ВариантыОтветов.Picture 47 | 48 | CheckAll 49 | Pickup 50 | UncheckAll 51 | 52 | None 53 | None 54 | None 55 | 56 | 57 | 58 | 59 | 60 | ВариантыОтветов 61 | SearchStringRepresentation 62 | 63 | 64 | 65 | 66 | 67 | 68 | ВариантыОтветов 69 | ViewStatusRepresentation 70 | 71 | 72 | 73 | 74 | 75 | 76 | ВариантыОтветов 77 | SearchControl 78 | 79 | 80 | 81 | 82 | 83 | 84 | ВариантыОтветов.Value 85 | EnterOnInput 86 | 87 | 88 | 89 | 90 |
91 | 92 | НесколькоВариантов 93 | Right 94 | Auto 95 | 96 | 97 | 98 |
99 | 100 | 101 | 102 | cfg:DataProcessorObject.GreenAPI 103 | 104 | true 105 | 106 | 107 | 108 | <v8:item> 109 | <v8:lang>ru</v8:lang> 110 | <v8:content>Вопрос</v8:content> 111 | </v8:item> 112 | 113 | 114 | xs:string 115 | 116 | 0 117 | Variable 118 | 119 | 120 | 121 | 122 | 123 | <v8:item> 124 | <v8:lang>ru</v8:lang> 125 | <v8:content>Варианты ответов</v8:content> 126 | </v8:item> 127 | 128 | 129 | v8:ValueListType 130 | 131 | 132 | xs:string 133 | 134 | 0 135 | Variable 136 | 137 | 138 | 139 | 140 | 141 | <v8:item> 142 | <v8:lang>ru</v8:lang> 143 | <v8:content>Можно выбрать несколько вариантов ответа</v8:content> 144 | </v8:item> 145 | 146 | 147 | xs:boolean 148 | 149 | 150 | 151 | 152 | 153 | 154 | <v8:item> 155 | <v8:lang>ru</v8:lang> 156 | <v8:content>Отмена</v8:content> 157 | </v8:item> 158 | 159 | 160 | 161 | ru 162 | Отмена 163 | 164 | 165 | Отмена 166 | 167 | 168 | 169 | <v8:item> 170 | <v8:lang>ru</v8:lang> 171 | <v8:content>Отправить</v8:content> 172 | </v8:item> 173 | <v8:item> 174 | <v8:lang>en</v8:lang> 175 | <v8:content>Send</v8:content> 176 | </v8:item> 177 | 178 | 179 | 180 | ru 181 | Отправить 182 | 183 | 184 | en 185 | Send 186 | 187 | 188 | Отправить 189 | 190 | 191 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Forms/ВыборКнопок/Ext/Form/Module.bsl: -------------------------------------------------------------------------------- 1 | 2 | #Область ОбработчикиСобытийФормы 3 | 4 | &НаСервере 5 | Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 6 | 7 | Если Параметры.Свойство("IdInstance") Тогда 8 | //@skip-check unknown-form-parameter-access 9 | Объект.IdInstance = Параметры.IdInstance; 10 | КонецЕсли; 11 | 12 | Если Параметры.Свойство("ApiToken") Тогда 13 | //@skip-check unknown-form-parameter-access 14 | Объект.ApiToken = Параметры.ApiToken; 15 | КонецЕсли; 16 | 17 | ДобавитьКнопкуВИнтерфейсНаСервере("Скопировать инстанс", "copy", Параметры.IdInstance); 18 | ДобавитьКнопкуВИнтерфейсНаСервере("Перейти на сайт", "url", "https://green-api.com"); 19 | 20 | КонецПроцедуры 21 | 22 | &НаСервере 23 | Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) 24 | 25 | Если Не Кнопки.Количество() Тогда 26 | Отказ = Истина; 27 | Сообщить(НСтр("ru = 'Нужно добавить хотя бы одну кнопку'; en = 'You need to create at least one button'")); 28 | КонецЕсли; 29 | 30 | Если Кнопки.НайтиСтроки(Новый Структура("Значение", "")).Количество() Тогда 31 | Отказ = Истина; 32 | Сообщить(НСтр("ru = 'Не указано значение кнопки'; en = 'Button value not set'")); 33 | КонецЕсли; 34 | 35 | КонецПроцедуры 36 | 37 | &НаКлиенте 38 | Процедура Отправить(Команда) 39 | 40 | Если ПроверитьЗаполнение() Тогда 41 | 42 | ТипыКнопок = ТипыКнопок(); 43 | МассивКнопок = Новый Массив; 44 | Для Каждого Строка Из Кнопки Цикл 45 | МассивКнопок.Добавить(Новый Структура("type, buttonId, buttonText, " + ТипыКнопок[Строка.ТипКнопки], 46 | Строка.ТипКнопки, Строка.стрИдКнопки, Строка.Заголовок, Строка.Значение)); 47 | КонецЦикла; 48 | 49 | //@skip-check structure-consructor-too-many-keys 50 | ОповеститьОВыборе(Новый Структура("ИмяФормы, Заголовок, Тело, Подвал, Кнопки", 51 | "ВыборКнопок", ЗаголовокСообщения, ТелоСообщения, ПодвалСообщения, МассивКнопок)); 52 | 53 | КонецЕсли; 54 | 55 | КонецПроцедуры 56 | 57 | #КонецОбласти 58 | 59 | #Область ОбработчикиКомандФормы 60 | 61 | &НаСервере 62 | Процедура ДобавитьКнопкуВИнтерфейсНаСервере(Заголовок = "Скопировать", ТипКнопки = "copy", ЗначениеКнопки = "copy") 63 | 64 | СтрокаКнопки = новыйСтрокаКнопка(Заголовок, ТипКнопки, ЗначениеКнопки); 65 | СтрИдКнопки = СтрокаКнопки.стрИдКнопки; 66 | ИмяКнопка = "Кнопка_" + стрИдКнопки; 67 | ТипИмяКнопка = "Тип" + ИмяКнопка; 68 | 69 | ДобавляемыеРеквизиты = Новый Массив; 70 | ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяКнопка, Новый ОписаниеТипов("Строка"))); 71 | ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ТипИмяКнопка, Новый ОписаниеТипов("Строка"))); 72 | ИзменитьРеквизиты(ДобавляемыеРеквизиты); 73 | 74 | Группа = Элементы.Добавить("Группа" + СтрИдКнопки, Тип("ГруппаФормы"), Элементы.ГруппаКнопок); 75 | Группа.Вид = ВидГруппыФормы.ОбычнаяГруппа; 76 | Группа.Отображение = ОтображениеОбычнойГруппы.Нет; 77 | Группа.ОтображатьЗаголовок = Ложь; 78 | Группа.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; 79 | 80 | НоваяКнопка = Элементы.Добавить(ИмяКнопка, Тип("КнопкаФормы"), Группа); 81 | НоваяКнопка.Заголовок = Заголовок; 82 | НоваяКнопка.Высота = 2; 83 | НоваяКнопка.ИмяКоманды = "КнопкаНажатие"; 84 | Команды.Найти("КнопкаНажатие").Подсказка = НСтр("ru = 'Переименовать'; en = 'Rename'"); 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 | 110 | КонецПроцедуры 111 | &НаСервере 112 | Процедура УдалитьКнопкуНаСервере(стрИдКнопки) 113 | 114 | Элементы.Удалить(Элементы["Группа" + стрИдКнопки]); 115 | Кнопки.Удалить(Кнопки.НайтиСтроки(Новый Структура("стрИдКнопки", стрИдКнопки))[0]); 116 | 117 | УдаляемыеРеквизиты = Новый Массив; 118 | УдаляемыеРеквизиты.Добавить("Кнопка_" + стрИдКнопки); 119 | УдаляемыеРеквизиты.Добавить("ТипКнопка_" + стрИдКнопки); 120 | ИзменитьРеквизиты(,УдаляемыеРеквизиты); 121 | 122 | КонецПроцедуры 123 | &НаКлиенте 124 | Процедура УдалитьКнопку(Декорация) 125 | 126 | УдалитьКнопкуНаСервере(стрИдКнопки(Декорация.Имя)); 127 | 128 | КонецПроцедуры 129 | 130 | &НаКлиенте 131 | Асинх Процедура КнопкаНажатие(Команда) 132 | 133 | СтрИдКнопки = стрИдКнопки(ТекущийЭлемент.Имя); 134 | СтрокаКнопка = СтрокаКнопка(СтрИдКнопки); 135 | Строка = Ждать ВвестиСтрокуАсинх(СтрокаКнопка.Заголовок, "Текст заголовка кнопки", 25); 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 | МаксКнопок = 3; 165 | Если Кнопки.Количество() = МаксКнопок Тогда 166 | ПоказатьПредупреждение(,НСтр("ru = 'Максимум кнопок за вызов '; en = 'Max buttons - '") + МаксКнопок); 167 | Иначе 168 | ДобавитьКнопкуВИнтерфейсНаСервере(); 169 | КонецЕсли; 170 | 171 | КонецПроцедуры 172 | 173 | #КонецОбласти 174 | 175 | #Область СлужебныеПроцедурыИФункции 176 | 177 | &НаСервере 178 | Функция ТипыКнопок() 179 | 180 | ТипыКнопок = Новый Структура; 181 | ТипыКнопок.Вставить("copy", "copyCode"); 182 | ТипыКнопок.Вставить("call", "phoneNumber"); 183 | ТипыКнопок.Вставить("url", "url"); 184 | 185 | Возврат ТипыКнопок; 186 | 187 | КонецФункции 188 | &НаСервере 189 | Процедура ЗагрузитьСписокТипов(Список) 190 | 191 | Типы = ТипыКнопок(); 192 | Для Каждого Элемент Из Типы Цикл 193 | Список.Добавить(Элемент.Ключ); 194 | КонецЦикла; 195 | 196 | КонецПроцедуры 197 | 198 | &НаСервере 199 | Функция новыйСтрокаКнопка(Заголовок, ТипКнопки, ЗначениеКнопки) 200 | 201 | ИдКнопки = ИдКнопки + 1; 202 | 203 | НовСтрока = Кнопки.Добавить(); 204 | НовСтрока.стрИдКнопки = Формат(ИдКнопки, "ЧГ="); 205 | НовСтрока.ТипКнопки = ТипКнопки; 206 | НовСтрока.Заголовок = Заголовок; 207 | НовСтрока.Значение = ЗначениеКнопки; 208 | 209 | Возврат НовСтрока; 210 | 211 | КонецФункции 212 | &НаКлиенте 213 | Функция СтрокаКнопка(СтрИдКнопки) 214 | 215 | Возврат Кнопки.НайтиСтроки(Новый Структура("стрИдКнопки", СтрИдКнопки))[0]; 216 | 217 | КонецФункции 218 | &НаКлиенте 219 | Функция стрИдКнопки(ИмяЭлемента) 220 | 221 | Возврат Сред(ИмяЭлемента, СтрНайти(ИмяЭлемента, "_") + 1); 222 | 223 | КонецФункции 224 | 225 | #КонецОбласти 226 | 227 | -------------------------------------------------------------------------------- /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 | a12cb47a-b197-40c4-94f0-e49c85e618a8 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 | 184 | 185 | Normal 186 | 187 | 188 | Language.Английский 189 | 190 | 191 | 192 | 193 | 194 | Managed 195 | NotAutoFree 196 | DontUse 197 | DontUse 198 | Taxi 199 | Version8_3_10 200 | 201 | 202 | 203 | Русский 204 | Английский 205 | GreenAPI 206 | 207 | 208 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/Forms/ВыборКнопок/Ext/Form.xml: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | <v8:item> 5 | <v8:lang>ru</v8:lang> 6 | <v8:content>Отправить кнопки</v8:content> 7 | </v8:item> 8 | 9 | Use 10 | 11 | 12 | 21 | 22 | 23 | 24 | ПриСозданииНаСервере 25 | ОбработкаПроверкиЗаполненияНаСервере 26 | 27 | 28 | 29 | ЗаголовокСообщения 30 | false 31 | 32 | 33 | 34 | 35 | ТелоСообщения 36 | false 37 | true 38 | 39 | 40 | 41 | 42 | ПодвалСообщения 43 | false 44 | 45 | 46 | 47 | 48 | 49 | <v8:item> 50 | <v8:lang>ru</v8:lang> 51 | <v8:content>+ добавить кнопку</v8:content> 52 | </v8:item> 53 | <v8:item> 54 | <v8:lang>en</v8:lang> 55 | <v8:content>+ add button</v8:content> 56 | </v8:item> 57 | 58 | true 59 | 60 | 61 | 62 | ДобавитьКнопкуНажатие 63 | 64 | 65 | 66 | 67 | <v8:item> 68 | <v8:lang>ru</v8:lang> 69 | <v8:content>Группа кнопок</v8:content> 70 | </v8:item> 71 | 72 | 73 | 74 | ru 75 | Группа кнопок 76 | 77 | 78 | AlwaysHorizontal 79 | None 80 | false 81 | 82 | 83 | 84 | 85 | 86 | 87 | cfg:DataProcessorObject.GreenAPI 88 | 89 | true 90 | 91 | 92 | 93 | <v8:item> 94 | <v8:lang>ru</v8:lang> 95 | <v8:content>Кнопки</v8:content> 96 | </v8:item> 97 | 98 | 99 | v8:ValueTable 100 | 101 | 102 | 103 | 104 | <v8:item> 105 | <v8:lang>ru</v8:lang> 106 | <v8:content>Стр ид кнопки</v8:content> 107 | </v8:item> 108 | 109 | 110 | xs:string 111 | 112 | 0 113 | Variable 114 | 115 | 116 | 117 | 118 | 119 | <v8:item> 120 | <v8:lang>ru</v8:lang> 121 | <v8:content>Заголовок</v8:content> 122 | </v8:item> 123 | 124 | 125 | xs:string 126 | 127 | 0 128 | Variable 129 | 130 | 131 | 132 | 133 | 134 | <v8:item> 135 | <v8:lang>ru</v8:lang> 136 | <v8:content>Значение</v8:content> 137 | </v8:item> 138 | 139 | 140 | xs:string 141 | 142 | 0 143 | Variable 144 | 145 | 146 | 147 | 148 | 149 | <v8:item> 150 | <v8:lang>ru</v8:lang> 151 | <v8:content>Тип кнопки</v8:content> 152 | </v8:item> 153 | 154 | 155 | xs:string 156 | 157 | 0 158 | Variable 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | <v8:item> 167 | <v8:lang>ru</v8:lang> 168 | <v8:content>Ид кнопки</v8:content> 169 | </v8:item> 170 | 171 | 172 | xs:decimal 173 | 174 | 4 175 | 0 176 | Nonnegative 177 | 178 | 179 | 180 | 181 | 182 | <v8:item> 183 | <v8:lang>ru</v8:lang> 184 | <v8:content>Заголовок сообщения</v8:content> 185 | </v8:item> 186 | <v8:item> 187 | <v8:lang>en</v8:lang> 188 | <v8:content>Message header</v8:content> 189 | </v8:item> 190 | 191 | 192 | xs:string 193 | 194 | 0 195 | Variable 196 | 197 | 198 | 199 | ЗаголовокСообщения 200 | 201 | 202 | 203 | 204 | <v8:item> 205 | <v8:lang>ru</v8:lang> 206 | <v8:content>Подвал сообщения</v8:content> 207 | </v8:item> 208 | <v8:item> 209 | <v8:lang>en</v8:lang> 210 | <v8:content>Message footer</v8:content> 211 | </v8:item> 212 | 213 | 214 | xs:string 215 | 216 | 0 217 | Variable 218 | 219 | 220 | 221 | ПодвалСообщения 222 | 223 | 224 | 225 | 226 | <v8:item> 227 | <v8:lang>ru</v8:lang> 228 | <v8:content>Тело сообщения</v8:content> 229 | </v8:item> 230 | <v8:item> 231 | <v8:lang>en</v8:lang> 232 | <v8:content>Message body</v8:content> 233 | </v8:item> 234 | 235 | 236 | xs:string 237 | 238 | 0 239 | Variable 240 | 241 | 242 | 243 | ТелоСообщения 244 | 245 | 246 | 247 | 248 | 249 | 250 | <v8:item> 251 | <v8:lang>ru</v8:lang> 252 | <v8:content>Отправить</v8:content> 253 | </v8:item> 254 | <v8:item> 255 | <v8:lang>en</v8:lang> 256 | <v8:content>Send</v8:content> 257 | </v8:item> 258 | 259 | 260 | 261 | ru 262 | Отправить 263 | 264 | 265 | Отправить 266 | 267 | 268 | 269 | <v8:item> 270 | <v8:lang>ru</v8:lang> 271 | <v8:content>Переименовать</v8:content> 272 | </v8:item> 273 | 274 | 275 | 276 | ru 277 | Переименовать 278 | 279 | 280 | КнопкаНажатие 281 | 282 | 283 |
-------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI.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 16 | 17 | 18 | ru 19 | Green API 20 | 21 | 22 | en 23 | Green API 24 | 25 | 26 | 27 | true 28 | DataProcessor.GreenAPI.Form.Форма 29 | 30 | false 31 | 32 | 33 | 34 | 35 | 36 | 37 | ТекстПолученноеСообщение 38 | 39 | 40 | ru 41 | Текст полученное сообщение 42 | 43 | 44 | 45 | 46 | xs:string 47 | 48 | 0 49 | Variable 50 | 51 | 52 | false 53 | 54 | 55 | 56 | false 57 | 58 | false 59 | false 60 | 61 | 62 | DontCheck 63 | Items 64 | 65 | 66 | Auto 67 | Auto 68 | 69 | 70 | Auto 71 | 72 | 73 | 74 | 75 | IdInstance 76 | 77 | 78 | ru 79 | ID Instance 80 | 81 | 82 | en 83 | ID Instance 84 | 85 | 86 | 87 | 88 | xs:string 89 | 90 | 0 91 | Variable 92 | 93 | 94 | false 95 | 96 | 97 | 98 | false 99 | 100 | false 101 | false 102 | 103 | 104 | ShowError 105 | Items 106 | 107 | 108 | Auto 109 | Auto 110 | 111 | 112 | Auto 113 | 114 | 115 | 116 | 117 | ApiToken 118 | 119 | 120 | ru 121 | API Token 122 | 123 | 124 | en 125 | API Token 126 | 127 | 128 | 129 | 130 | xs:string 131 | 132 | 0 133 | Variable 134 | 135 | 136 | false 137 | 138 | 139 | 140 | false 141 | 142 | false 143 | false 144 | 145 | 146 | ShowError 147 | Items 148 | 149 | 150 | Auto 151 | Auto 152 | 153 | 154 | Auto 155 | 156 | 157 | 158 | 159 | PartnerToken 160 | 161 | 162 | ru 163 | Partner token 164 | 165 | 166 | en 167 | Partner Token 168 | 169 | 170 | 171 | 172 | xs:string 173 | 174 | 0 175 | Variable 176 | 177 | 178 | false 179 | 180 | 181 | 182 | false 183 | 184 | false 185 | false 186 | 187 | 188 | DontCheck 189 | Items 190 | 191 | 192 | Auto 193 | Auto 194 | 195 | 196 | Auto 197 | 198 | 199 | 200 | 201 | ПолученФайл 202 | 203 | 204 | ru 205 | Получен файл 206 | 207 | 208 | 209 | 210 | xs:string 211 | 212 | 0 213 | Variable 214 | 215 | 216 | false 217 | 218 | 219 | 220 | false 221 | 222 | false 223 | false 224 | 225 | 226 | DontCheck 227 | Items 228 | 229 | 230 | Auto 231 | Auto 232 | 233 | 234 | Auto 235 | 236 | 237 | 238 | 239 | apiUrl 240 | 241 | 242 | ru 243 | API URL 244 | 245 | 246 | en 247 | API URL 248 | 249 | 250 | 251 | 252 | xs:string 253 | 254 | 0 255 | Variable 256 | 257 | 258 | false 259 | 260 | 261 | 262 | false 263 | 264 | false 265 | false 266 | 267 | 268 | DontCheck 269 | Items 270 | 271 | 272 | Auto 273 | Auto 274 | 275 | 276 | Auto 277 | 278 | 279 | 280 | 281 | mediaUrl 282 | 283 | 284 | ru 285 | mediaUrl 286 | 287 | 288 | en 289 | MediaURL 290 | 291 | 292 | 293 | 294 | xs:string 295 | 296 | 0 297 | Variable 298 | 299 | 300 | false 301 | 302 | 303 | 304 | false 305 | 306 | false 307 | false 308 | 309 | 310 | DontCheck 311 | Items 312 | 313 | 314 | Auto 315 | Auto 316 | 317 | 318 | Auto 319 | 320 | 321 |
Форма
322 |
ПомощникПодключения
323 |
ВыборСсылкиНаФайл
324 |
ВыборКонтакта
325 |
ВыборГеолокации
326 |
ВыборКнопок
327 |
СоздатьОпрос
328 | 329 | 330 | 331 | 332 | 333 | 334 |
335 |
336 |
-------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/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", "ПомощникПодключения", Объект.IdInstance, Объект.ApiToken)); 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 | СтатусСервиса = НРег(Авторизован) = "authorized"; 493 | 494 | Если СтатусСервиса Тогда 495 | ОбработкаОбъект().УстановитьНастройкиСервисаПоДефолту(); 496 | КонецЕсли; 497 | 498 | Элементы.ГруппаУспешноеПодключение.Видимость = СтатусСервиса; 499 | Элементы.ГруппаОшибкаПодключения.Видимость = Не СтатусСервиса; 500 | 501 | КонецПроцедуры 502 | 503 | //////////////////////////////////////////////////////////////////////////////// 504 | // Переопределяемая часть - Инициализация переходов помощника. 505 | 506 | // Процедура определяет таблицу переходов по сценарию №1. 507 | // 508 | &НаКлиенте 509 | Процедура ТаблицаПереходовПоСценарию1() 510 | 511 | ТаблицаПереходов.Очистить(); 512 | 513 | Переход = ТаблицаПереходов.Добавить(); 514 | Переход.ПорядковыйНомерПерехода = 1; 515 | Переход.ИмяОсновнойСтраницы = "СтраницаОдин"; 516 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииНачало"; 517 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииНачало"; 518 | 519 | Переход = ТаблицаПереходов.Добавить(); 520 | Переход.ПорядковыйНомерПерехода = 2; 521 | Переход.ИмяОсновнойСтраницы = "СтраницаДва"; 522 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииПродолжение"; 523 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 524 | 525 | Переход = ТаблицаПереходов.Добавить(); 526 | Переход.ПорядковыйНомерПерехода = 3; 527 | Переход.ИмяОсновнойСтраницы = "СтраницаТри"; 528 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииПродолжение"; 529 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 530 | 531 | Переход = ТаблицаПереходов.Добавить(); 532 | Переход.ПорядковыйНомерПерехода = 4; 533 | Переход.ИмяОсновнойСтраницы = "СтраницаЧетыре"; 534 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииПродолжение"; 535 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 536 | 537 | Переход = ТаблицаПереходов.Добавить(); 538 | Переход.ПорядковыйНомерПерехода = 5; 539 | Переход.ИмяОсновнойСтраницы = "СтраницаПять"; 540 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииПродолжение"; 541 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 542 | Переход.ИмяОбработчикаПриПереходеДалее = "СтраницаПять_ПриПереходеДалее"; 543 | 544 | Переход = ТаблицаПереходов.Добавить(); 545 | Переход.ПорядковыйНомерПерехода = 6; 546 | Переход.ИмяОсновнойСтраницы = "СтраницаОжидания"; 547 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииОжидание"; 548 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 549 | Переход.ДлительнаяОперация = Истина; 550 | Переход.ИмяОбработчикаДлительнойОперации = "СтраницаОжидания_ОбработкаДлительнойОперации"; 551 | 552 | Переход = ТаблицаПереходов.Добавить(); 553 | Переход.ПорядковыйНомерПерехода = 7; 554 | Переход.ИмяОсновнойСтраницы = "СтраницаСемь"; 555 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииПродолжение"; 556 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 557 | Переход.ИмяОбработчикаПриОткрытии = "СтраницаСемь_ПриОткрытии"; 558 | Переход.ИмяОбработчикаПриПереходеНазад = "СтраницаСемь_ПриПереходеНазад"; 559 | 560 | Переход = ТаблицаПереходов.Добавить(); 561 | Переход.ПорядковыйНомерПерехода = 8; 562 | Переход.ИмяОсновнойСтраницы = "СтраницаВосемь"; 563 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииПродолжение"; 564 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииПродолжение"; 565 | Переход.ИмяОбработчикаПриПереходеДалее = "СтраницаВосемь_ПриПереходеДалее"; 566 | 567 | 568 | Переход = ТаблицаПереходов.Добавить(); 569 | Переход.ПорядковыйНомерПерехода = 9; 570 | Переход.ИмяОсновнойСтраницы = "СтраницаДевять"; 571 | Переход.ИмяСтраницыНавигации = "СтраницаНавигацииОкончание"; 572 | Переход.ИмяСтраницыДекорации = "СтраницаДекорацииОкончание"; 573 | 574 | КонецПроцедуры 575 | 576 | #КонецОбласти 577 | 578 | // Задает вопрос о продолжении действия, которое приведет к закрытию формы. 579 | // Для использования в обработчиках события ПередЗакрытием модулей форм. 580 | // Для отображения вопроса в форме, которая возможно записать в информационную базу, используйте: 581 | // см. процедуру ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияФормы(). 582 | // 583 | // Параметры: 584 | // Форма - ФормаКлиентскогоПриложения - форма, которая вызывает диалог предупреждения. 585 | // Отказ - Булево - возвращаемый параметр, признак отказа от выполняемого действия. 586 | // ЗавершениеРаботы - Булево - признак завершения работы программы. 587 | // ТекстПредупреждения - Строка - текст предупреждения, выводимый пользователю. 588 | // ИмяРеквизитаЗакрытьФормуБезПодтверждения - Строка - имя реквизита, содержащего в себе признак того, нужно 589 | // выводить предупреждение или нет. 590 | // ОписаниеОповещенияЗакрыть - ОписаниеОповещения - содержит имя процедуры, вызываемой при нажатии на кнопку "Да". 591 | // 592 | // Пример: 593 | // ТекстПредупреждения = НСтр("ru = 'Закрыть помощник?'"); 594 | // ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияПроизвольнойФормы( 595 | // ЭтотОбъект, Отказ, ТекстПредупреждения, "ЗакрытьФормуБезПодтверждения"); 596 | // 597 | &НаКлиенте 598 | Процедура ПоказатьПодтверждениеЗакрытияПроизвольнойФормы( 599 | Знач Форма, 600 | Отказ, 601 | Знач ЗавершениеРаботы, 602 | Знач ТекстПредупреждения, 603 | Знач ИмяРеквизитаЗакрытьФормуБезПодтверждения, 604 | Знач ОписаниеОповещенияЗакрыть = Неопределено) Экспорт 605 | 606 | Если Форма[ИмяРеквизитаЗакрытьФормуБезПодтверждения] Тогда 607 | Возврат; 608 | КонецЕсли; 609 | 610 | Отказ = Истина; 611 | Если ЗавершениеРаботы Тогда 612 | Возврат; 613 | КонецЕсли; 614 | 615 | ПараметрыФормы = Новый Структура(); 616 | ПараметрыФормы.Вставить("ТекстПредупреждения", ТекстПредупреждения); 617 | ПараметрыФормы.Вставить("ИмяРеквизитаЗакрытьФормуБезПодтверждения", ИмяРеквизитаЗакрытьФормуБезПодтверждения); 618 | ПараметрыФормы.Вставить("ОписаниеОповещенияЗакрыть", ОписаниеОповещенияЗакрыть); 619 | 620 | ПодключитьОбработчикОжидания("ПодтвердитьЗакрытиеПроизвольнойФормыСейчасGR", 0.1, Истина); 621 | 622 | КонецПроцедуры 623 | 624 | // Задает вопрос о продолжении действия, ведущего к закрытию формы. 625 | // 626 | &НаКлиенте 627 | Процедура ПодтвердитьЗакрытиеПроизвольнойФормыСейчасGR() Экспорт 628 | 629 | ПодтвердитьЗакрытиеПроизвольнойФормыGR(); 630 | 631 | КонецПроцедуры 632 | 633 | &НаКлиенте 634 | Процедура ПодтвердитьЗакрытиеПроизвольнойФормыGR() Экспорт 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 | КонецПроцедуры 672 | 673 | &НаКлиенте 674 | Процедура ЗарегистрироватьсяВGreenAPI(Команда) 675 | Оповещение = Новый ОписаниеОповещения("ЗавершитьЗапускПриложенияGR", ЭтотОбъект); 676 | НачатьЗапускПриложения(Оповещение, "https://console.green-api.com/"); 677 | КонецПроцедуры 678 | 679 | &НаКлиенте 680 | Процедура ЗавершитьЗапускПриложенияGR(КодВозврата, ДополнительныеПараметры) Экспорт 681 | 682 | // Действия не требуются 683 | 684 | КонецПроцедуры 685 | -------------------------------------------------------------------------------- /src/DataProcessors/GreenAPI/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 | 75 59 | false 60 | web:White 61 | 62 | 63 | <v8:item> 64 | <v8:lang>ru</v8:lang> 65 | <v8:content>GREEN API</v8:content> 66 | </v8:item> 67 | <v8:item> 68 | <v8:lang>en</v8:lang> 69 | <v8:content>GREEN API</v8:content> 70 | </v8:item> 71 | 72 | Center 73 | Center 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 | #49B349 87 | 88 | 89 | 90 | 75 91 | false 92 | web:White 93 | 94 | 95 | <v8:item> 96 | <v8:lang>ru</v8:lang> 97 | <v8:content>GREEN API</v8:content> 98 | </v8:item> 99 | <v8:item> 100 | <v8:lang>en</v8:lang> 101 | <v8:content>GREEN API</v8:content> 102 | </v8:item> 103 | 104 | Center 105 | Center 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | <v8:item> 114 | <v8:lang>ru</v8:lang> 115 | <v8:content>Страница декорации окончание</v8:content> 116 | </v8:item> 117 | 118 | #49B349 119 | 120 | 121 | 122 | 75 123 | false 124 | web:White 125 | 126 | 127 | <v8:item> 128 | <v8:lang>ru</v8:lang> 129 | <v8:content>GREEN API</v8:content> 130 | </v8:item> 131 | <v8:item> 132 | <v8:lang>en</v8:lang> 133 | <v8:content>GREEN API</v8:content> 134 | </v8:item> 135 | 136 | Center 137 | Center 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | None 147 | 148 | 149 | 150 | 151 | <v8:item> 152 | <v8:lang>ru</v8:lang> 153 | <v8:content>Страница один</v8:content> 154 | </v8:item> 155 | 156 | 157 | 158 | 159 | Vertical 160 | 161 | 162 | 163 | 45 164 | false 165 | 1 166 | 167 | 168 | <v8:item> 169 | <v8:lang>ru</v8:lang> 170 | <v8:content>Приветствуем Вас!</v8:content> 171 | </v8:item> 172 | 173 | 174 | 175 | 176 | 177 | Center 178 | Center 179 | None 180 | false 181 | 182 | 183 | 184 | 64 185 | false 186 | 187 | <v8:item> 188 | <v8:lang>ru</v8:lang> 189 | <v8:content>Давайте выполним подключением к WhatsApp</v8:content> 190 | </v8:item> 191 | 192 | 193 | 194 | 195 | 196 | КартинкаWhatsApp 197 | None 198 | 13 199 | false 200 | 4 201 | false 202 | false 203 | false 204 | Proportionally 205 | 206 | WithoutBorder 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | false 215 | 216 | <v8:item> 217 | <v8:lang>ru</v8:lang> 218 | <v8:content>Нажмите кнопку "Далее", чтобы быстро все настроить</v8:content> 219 | </v8:item> 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | <v8:item> 231 | <v8:lang>ru</v8:lang> 232 | <v8:content>Страница два</v8:content> 233 | </v8:item> 234 | 235 | 236 | 237 | ru 238 | Страница два 239 | 240 | 241 | 242 | 243 | 244 | true 245 | Center 246 | Vertical 247 | Center 248 | 249 | 250 | 251 | 45 252 | false 253 | 2 254 | 255 | 256 | <v8:item> 257 | <v8:lang>ru</v8:lang> 258 | <v8:content>Зарегистрируйтесь в личном кабинете Green API</v8:content> 259 | </v8:item> 260 | 261 | Center 262 | Center 263 | 264 | 265 | 266 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | <v8:item> 288 | <v8:lang>ru</v8:lang> 289 | <v8:content>Страница три</v8:content> 290 | </v8:item> 291 | 292 | 293 | 294 | ru 295 | Страница два 296 | 297 | 298 | 299 | 300 | 301 | Vertical 302 | 303 | 304 | 305 | 306 | 307 | <v8:item> 308 | <v8:lang>ru</v8:lang> 309 | <v8:content>Создайте аккаунт</v8:content> 310 | </v8:item> 311 | 312 | 313 | 314 | 315 | 316 | КартинкаВыборАккаунта 317 | None 318 | 13 319 | false 320 | 321 | WithoutBorder 322 | 323 | 324 | 325 | 326 | 327 | false 328 | true 329 | 330 | <v8:item> 331 | <v8:lang>ru</v8:lang> 332 | <v8:content>Выберите бесплатный тариф "Разработчик" и создайте свой первый аккаунт</v8:content> 333 | </v8:item> 334 | 335 | Center 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | <v8:item> 346 | <v8:lang>ru</v8:lang> 347 | <v8:content>Страница три</v8:content> 348 | </v8:item> 349 | 350 | 351 | 352 | ru 353 | Страница два 354 | 355 | 356 | 357 | 358 | 359 | Vertical 360 | 361 | 362 | 363 | 364 | 365 | <v8:item> 366 | <v8:lang>ru</v8:lang> 367 | <v8:content>Подключите телефон к аккаунту</v8:content> 368 | </v8:item> 369 | 370 | 371 | 372 | 373 | 374 | КартинкаСканКода 375 | None 376 | 13 377 | false 378 | Proportionally 379 | 380 | WithoutBorder 381 | 382 | 383 | 384 | 385 | 386 | false 387 | true 388 | 389 | <v8:item> 390 | <v8:lang>ru</v8:lang> 391 | <v8:content>Для подключения сканируйте QR-код из приложения WhatsApp Business на телефоне</v8:content> 392 | </v8:item> 393 | 394 | Center 395 | 396 | 397 | 398 | 399 | Center 400 | Center 401 | None 402 | false 403 | 404 | 405 | 406 | 407 | StdPicture.DialogQuestion 408 | true 409 | 410 | 411 | 412 | 413 | 414 | 55 415 | web:DarkBlue 416 | 417 | <v8:item> 418 | <v8:lang>ru</v8:lang> 419 | <v8:content>Рекомендуется использовать приложение WhatsApp Business, однако при желании можно использовать и обычное приложение WhatsApp, если оно уже установлено на вашем телефоне</v8:content> 420 | </v8:item> 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | ru 435 | Страница два 436 | 437 | 438 | 439 | 440 | 441 | Vertical 442 | 443 | 444 | 445 | 446 | 447 | <v8:item> 448 | <v8:lang>ru</v8:lang> 449 | <v8:content>Укажите параметры подключения</v8:content> 450 | </v8:item> 451 | 452 | 453 | 454 | 455 | 456 | Объект.IdInstance 457 | 458 | 459 | ru 460 | 9999 461 | 462 | 463 | 464 | 465 | 466 | 467 | Объект.ApiToken 468 | 469 | 470 | ru 471 | 123fdws3214t3456g214234171855e0ff3f597f1 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | КартинкаДанныеАккаунта 481 | None 482 | 13 483 | false 484 | Proportionally 485 | 486 | WithoutBorder 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | <v8:item> 496 | <v8:lang>ru</v8:lang> 497 | <v8:content>Страница ожидания</v8:content> 498 | </v8:item> 499 | 500 | 501 | 502 | 503 | Vertical 504 | 505 | 506 | 507 | false 508 | 2 509 | false 510 | 511 | 512 | <v8:item> 513 | <v8:lang>ru</v8:lang> 514 | <v8:content>Проверка подключения</v8:content> 515 | </v8:item> 516 | 517 | Top 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | <v8:item> 528 | <v8:lang>ru</v8:lang> 529 | <v8:content>Страница семь</v8:content> 530 | </v8:item> 531 | 532 | 533 | 534 | ru 535 | Страница два 536 | 537 | 538 | 539 | 540 | 541 | Vertical 542 | 543 | 544 | 545 | false 546 | 2 547 | false 548 | 549 | 550 | <v8:item> 551 | <v8:lang>ru</v8:lang> 552 | <v8:content>Проверка подключения</v8:content> 553 | </v8:item> 554 | 555 | Top 556 | 557 | 558 | 559 | 560 | 561 | <v8:item> 562 | <v8:lang>ru</v8:lang> 563 | <v8:content>Группа успешное подключение</v8:content> 564 | </v8:item> 565 | 566 | 567 | 568 | ru 569 | Группа успешное подключение 570 | 571 | 572 | Vertical 573 | None 574 | false 575 | 576 | 577 | 578 | None 579 | false 580 | 581 | 582 | 583 | 584 | StdPicture.AppearanceCheckBox 585 | true 586 | 587 | 588 | 589 | 590 | 591 | 592 | <v8:item> 593 | <v8:lang>ru</v8:lang> 594 | <v8:content>Подключение выполнено успешно</v8:content> 595 | </v8:item> 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | None 604 | false 605 | 606 | 607 | 608 | 609 | StdPicture.AppearanceCheckBox 610 | true 611 | 612 | 613 | 614 | 615 | 616 | 617 | <v8:item> 618 | <v8:lang>ru</v8:lang> 619 | <v8:content>Установлены настройки получения данных</v8:content> 620 | </v8:item> 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | ru 633 | Группа успешное подключение 634 | 635 | 636 | None 637 | false 638 | 639 | 640 | 641 | 642 | StdPicture.AppearanceCrossIcon 643 | true 644 | 645 | 646 | 647 | 648 | 649 | Vertical 650 | None 651 | false 652 | 653 | 654 | 655 | 656 | <v8:item> 657 | <v8:lang>ru</v8:lang> 658 | <v8:content>Возникла ошибка при подключении</v8:content> 659 | </v8:item> 660 | 661 | 662 | 663 | 664 | 665 | ТекстОшибкиПодключения 666 | true 667 | None 668 | 8 669 | false 670 | false 671 | true 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | ru 687 | Страница два 688 | 689 | 690 | 691 | 692 | 693 | Vertical 694 | 695 | 696 | 697 | false 698 | 2 699 | false 700 | 701 | 702 | <v8:item> 703 | <v8:lang>ru</v8:lang> 704 | <v8:content>Рекомендации</v8:content> 705 | </v8:item> 706 | 707 | Top 708 | 709 | 710 | 711 | 712 | ИспользуйтеДляЧатБотов 713 | 714 | Right 715 | 1 716 | Auto 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | ИспользуйтеДляКлиентов 727 | 728 | Right 729 | Auto 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | ИспользуйтеДляСвоихКлиентоа 740 | 741 | Right 742 | ShowBottom 743 | Auto 744 | 745 | 746 | 10 747 | style:FieldSelectionBackColor 748 | Left 749 | 750 | 751 | 752 | None 753 | false 754 | 755 | 756 | 757 | 1 758 | 759 | 760 | 761 | 762 | 763 | 49 764 | style:FieldSelectionBackColor 765 | 766 | 767 | <v8:item> 768 | <v8:lang>ru</v8:lang> 769 | <v8:content>Если клиент не ожидает сообщений от Вас, то скорее всего он нажмет "Заблокировать". Достаточно 10 нажатий, чтобы словить бан. </v8:content> 770 | </v8:item> 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | СтарайтесьЧтобыОтвечали 784 | 785 | <v8:item> 786 | <v8:lang>ru</v8:lang> 787 | <v8:content>Старайтесь, чтобы клиенты больше отвечали на Ваш номер</v8:content> 788 | </v8:item> 789 | 790 | 791 | Right 792 | ShowBottom 793 | Auto 794 | 795 | 796 | style:FieldSelectionBackColor 797 | Center 798 | 799 | 800 | 801 | None 802 | false 803 | 804 | 805 | 806 | 1 807 | 808 | 809 | 810 | 811 | 812 | 57 813 | style:FieldSelectionBackColor 814 | 815 | 816 | <v8:item> 817 | <v8:lang>ru</v8:lang> 818 | <v8:content>Например: "Вы записаны на завтра 12:00. Чтобы подтвердить запись, напишите в ответ *ок*</v8:content> 819 | </v8:item> 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | ПредоставьтеОтписку 833 | 834 | Right 835 | ShowBottom 836 | Auto 837 | 838 | 839 | style:FieldSelectionBackColor 840 | 841 | 842 | 843 | None 844 | false 845 | 846 | 847 | 848 | 1 849 | 850 | 851 | 852 | 853 | 854 | 49 855 | style:FieldSelectionBackColor 856 | 857 | 858 | <v8:item> 859 | <v8:lang>ru</v8:lang> 860 | <v8:content>Например: Напишите *stop* и мы больше не будем Вас беспокоить</v8:content> 861 | </v8:item> 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | <v8:item> 875 | <v8:lang>ru</v8:lang> 876 | <v8:content>Страница девять</v8:content> 877 | </v8:item> 878 | 879 | 880 | 881 | ru 882 | Страница два 883 | 884 | 885 | 886 | 887 | 888 | Vertical 889 | 890 | 891 | 892 | false 893 | 2 894 | false 895 | 896 | 897 | <v8:item> 898 | <v8:lang>ru</v8:lang> 899 | <v8:content>Готово!</v8:content> 900 | </v8:item> 901 | 902 | Top 903 | 904 | 905 | 906 | 907 | Left 908 | Center 909 | Left 910 | Center 911 | None 912 | false 913 | 914 | 915 | 916 | false 917 | 2 918 | false 919 | 920 | <v8:item> 921 | <v8:lang>ru</v8:lang> 922 | <v8:content>Теперь можно выполнять отправку и получение сообщений WhatsApp</v8:content> 923 | </v8:item> 924 | 925 | Top 926 | 927 | 928 | 929 | 930 | ИконкаФиниш 931 | None 932 | false 933 | false 934 | Proportionally 935 | 936 | WithoutBorder 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | false 953 | Vertical 954 | Bottom 955 | false 956 | 957 | 958 | 959 | true 960 | None 961 | 962 | 963 | 964 | 965 | <v8:item> 966 | <v8:lang>ru</v8:lang> 967 | <v8:content>Страница навигации начало</v8:content> 968 | </v8:item> 969 | 970 | HorizontalIfPossible 971 | 972 | 973 | 974 | 975 | 976 | 982 | 983 | 984 | 985 | true 986 | Right 987 | 988 | 989 | 1000 | 1006 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | <v8:item> 1020 | <v8:lang>ru</v8:lang> 1021 | <v8:content>Страница навигации продолжение</v8:content> 1022 | </v8:item> 1023 | 1024 | HorizontalIfPossible 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1036 | 1037 | 1038 | 1039 | true 1040 | Right 1041 | 1042 | 1043 | 1053 | 1060 | 1067 | 1068 | 1069 | 1070 | 1071 | 1072 | 1073 | <v8:item> 1074 | <v8:lang>ru</v8:lang> 1075 | <v8:content>Страница навигации окончание</v8:content> 1076 | </v8:item> 1077 | 1078 | HorizontalIfPossible 1079 | 1080 | 1081 | 1082 | 1083 | 1084 | 1085 | true 1086 | Right 1087 | 1088 | 1089 | 1097 | 1098 | 1099 | 1100 | 1101 | 1102 | 1103 | <v8:item> 1104 | <v8:lang>ru</v8:lang> 1105 | <v8:content>Страница навигации ожидание</v8:content> 1106 | </v8:item> 1107 | 1108 | HorizontalIfPossible 1109 | 1110 | 1111 | 1112 | false 1113 | true 1114 | 1115 | 1116 | 1117 | 1118 | 1119 | 1120 | 1121 | 1122 | 1123 | 1124 | 1125 | 1126 | 1127 | 1128 | 1129 | cfg:DataProcessorObject.GreenAPI 1130 | 1131 | true 1132 | 1133 | 1134 | 1135 | xs:decimal 1136 | 1137 | 3 1138 | 0 1139 | Nonnegative 1140 | 1141 | 1142 | 1143 | 1144 | 1145 | v8:ValueTable 1146 | 1147 | 1148 | 1149 | 1150 | xs:decimal 1151 | 1152 | 3 1153 | 0 1154 | Nonnegative 1155 | 1156 | 1157 | 1158 | 1159 | 1160 | xs:string 1161 | 1162 | 0 1163 | Variable 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:boolean 1215 | 1216 | 1217 | 1218 | 1219 | xs:string 1220 | 1221 | 0 1222 | Variable 1223 | 1224 | 1225 | 1226 | 1227 | 1228 | 1229 | 1230 | xs:boolean 1231 | 1232 | 1233 | 1234 | 1235 | <v8:item> 1236 | <v8:lang>ru</v8:lang> 1237 | <v8:content>С условиями ознакомлен</v8:content> 1238 | </v8:item> 1239 | 1240 | 1241 | xs:boolean 1242 | 1243 | 1244 | 1245 | 1246 | <v8:item> 1247 | <v8:lang>ru</v8:lang> 1248 | <v8:content>Картинка whats app</v8:content> 1249 | </v8:item> 1250 | 1251 | 1252 | xs:string 1253 | 1254 | 0 1255 | Variable 1256 | 1257 | 1258 | 1259 | 1260 | 1261 | <v8:item> 1262 | <v8:lang>ru</v8:lang> 1263 | <v8:content>Картинка выбор аккаунта</v8:content> 1264 | </v8:item> 1265 | 1266 | 1267 | xs:string 1268 | 1269 | 0 1270 | Variable 1271 | 1272 | 1273 | 1274 | 1275 | 1276 | <v8:item> 1277 | <v8:lang>ru</v8:lang> 1278 | <v8:content>Картинка скан кода</v8:content> 1279 | </v8:item> 1280 | 1281 | 1282 | xs:string 1283 | 1284 | 0 1285 | Variable 1286 | 1287 | 1288 | 1289 | 1290 | 1291 | <v8:item> 1292 | <v8:lang>ru</v8:lang> 1293 | <v8:content>Картинка данные аккаунта</v8:content> 1294 | </v8:item> 1295 | 1296 | 1297 | xs:string 1298 | 1299 | 0 1300 | Variable 1301 | 1302 | 1303 | 1304 | 1305 | 1306 | <v8:item> 1307 | <v8:lang>ru</v8:lang> 1308 | <v8:content>Статус сервиса</v8:content> 1309 | </v8:item> 1310 | 1311 | 1312 | xs:boolean 1313 | 1314 | 1315 | 1316 | 1317 | <v8:item> 1318 | <v8:lang>ru</v8:lang> 1319 | <v8:content>Текст ошибки подключения</v8:content> 1320 | </v8:item> 1321 | 1322 | 1323 | xs:string 1324 | 1325 | 0 1326 | Variable 1327 | 1328 | 1329 | 1330 | 1331 | 1332 | <v8:item> 1333 | <v8:lang>ru</v8:lang> 1334 | <v8:content>Используйте Green API для чат ботов</v8:content> 1335 | </v8:item> 1336 | 1337 | 1338 | xs:boolean 1339 | 1340 | 1341 | 1342 | 1343 | <v8:item> 1344 | <v8:lang>ru</v8:lang> 1345 | <v8:content>Используйте Green API для общения с клиентами из 1С</v8:content> 1346 | </v8:item> 1347 | 1348 | 1349 | xs:boolean 1350 | 1351 | 1352 | 1353 | 1354 | <v8:item> 1355 | <v8:lang>ru</v8:lang> 1356 | <v8:content>Используйте Green API для отправки уведомлений только своим клиентам</v8:content> 1357 | </v8:item> 1358 | 1359 | 1360 | xs:boolean 1361 | 1362 | 1363 | 1364 | 1365 | <v8:item> 1366 | <v8:lang>ru</v8:lang> 1367 | <v8:content>Старайтесь, чтобы клиенты больше отвечали на Ваш номер</v8:content> 1368 | </v8:item> 1369 | 1370 | 1371 | xs:boolean 1372 | 1373 | 1374 | 1375 | 1376 | <v8:item> 1377 | <v8:lang>ru</v8:lang> 1378 | <v8:content>Предоставьте клиентам возможность отписаться от Ваших рассылок</v8:content> 1379 | </v8:item> 1380 | 1381 | 1382 | xs:boolean 1383 | 1384 | 1385 | 1386 | 1387 | xs:string 1388 | 1389 | 0 1390 | Variable 1391 | 1392 | 1393 | 1394 | 1395 | 1396 | <v8:item> 1397 | <v8:lang>ru</v8:lang> 1398 | <v8:content>Параметры формы</v8:content> 1399 | </v8:item> 1400 | 1401 | 1402 | 1403 | 1404 | 1405 | 1406 | 1407 | <v8:item> 1408 | <v8:lang>ru</v8:lang> 1409 | <v8:content>Далее ></v8:content> 1410 | </v8:item> 1411 | 1412 | КомандаДалее 1413 | DontUse 1414 | 1415 | 1416 | 1417 | <v8:item> 1418 | <v8:lang>ru</v8:lang> 1419 | <v8:content>< Назад</v8:content> 1420 | </v8:item> 1421 | 1422 | КомандаНазад 1423 | DontUse 1424 | 1425 | 1426 | 1427 | <v8:item> 1428 | <v8:lang>ru</v8:lang> 1429 | <v8:content>Отмена</v8:content> 1430 | </v8:item> 1431 | 1432 | КомандаОтмена 1433 | DontUse 1434 | 1435 | 1436 | 1437 | <v8:item> 1438 | <v8:lang>ru</v8:lang> 1439 | <v8:content>Готово</v8:content> 1440 | </v8:item> 1441 | 1442 | КомандаГотово 1443 | DontUse 1444 | 1445 | 1446 | 1447 | <v8:item> 1448 | <v8:lang>ru</v8:lang> 1449 | <v8:content>Зарегистрируйтесь в личном кабинете Green API</v8:content> 1450 | </v8:item> 1451 | 1452 | 1453 | 1454 | ru 1455 | Зарегистрироваться в green API 1456 | 1457 | 1458 | ЗарегистрироватьсяВGreenAPI 1459 | 1460 | 1461 | --------------------------------------------------------------------------------