├── 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 |
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 |
4 |
5 | СканQR
6 |
7 |
8 | ru
9 | Скан QR
10 |
11 |
12 |
13 | BinaryData
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Templates/QRМакет.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | QRМакет
6 |
7 |
8 | ru
9 | QRМакет
10 |
11 |
12 |
13 | SpreadsheetDocument
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Templates/ИконкаФиниш.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ИконкаФиниш
6 |
7 |
8 | ru
9 | Иконка финиш
10 |
11 |
12 |
13 | BinaryData
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Templates/ВыборАккаунта.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ВыборАккаунта
6 |
7 |
8 | ru
9 | Выбор аккаунта
10 |
11 |
12 |
13 | BinaryData
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Templates/ДанныеАккаунта.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ДанныеАккаунта
6 |
7 |
8 | ru
9 | Данные аккаунта
10 |
11 |
12 |
13 | BinaryData
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Templates/ИконкаWhatsApp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ИконкаWhatsApp
6 |
7 |
8 | ru
9 | Иконка whats app
10 |
11 |
12 |
13 | BinaryData
14 |
15 |
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 |
22 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Forms/ВыборКнопок.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Forms/СоздатьОпрос.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Forms/ВыборКонтакта.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Forms/ВыборГеолокации.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Forms/ВыборСсылкиНаФайл.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
22 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Forms/ПомощникПодключения.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
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 | 
19 |
20 | ## Отправка сообщения
21 | 
22 | 1. Подключиться к сервису (см. выше п.1)
23 | 2. Перейти на вкладку ``Отправка сообщений``
24 | 2. Указать телефон получателя и текст соообщения
25 | 7. Нажать кнопку ``Отправить текст``
26 |
27 | ## Получение сообщения
28 | 
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 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Forms/ВыборГеолокации/Ext/Form.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/src/DataProcessors/GreenAPI/Forms/СоздатьОпрос/Ext/Form.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | QRМакет
329 | ИконкаWhatsApp
330 | ВыборАккаунта
331 | СканQR
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 |
--------------------------------------------------------------------------------