126 lines
6.2 KiB
Plaintext
126 lines
6.2 KiB
Plaintext
|
||
#Область ПрограммныйИнтерфейс
|
||
|
||
Функция КлавиатураОтвета(Клавиатура, Компактная = Ложь, Одноразовая = Ложь) Экспорт
|
||
|
||
СоответствиеКлавиатуры = Новый Соответствие();
|
||
|
||
СоответствиеКлавиатуры.Вставить("keyboard", Клавиатура);
|
||
|
||
Если Компактная Тогда
|
||
СоответствиеКлавиатуры.Вставить("resize_keyboard", Компактная);
|
||
КонецЕсли;
|
||
|
||
Если Одноразовая Тогда
|
||
СоответствиеКлавиатуры.Вставить("one_time_keyboard", Одноразовая);
|
||
КонецЕсли;
|
||
|
||
Возврат СоответствиеКлавиатуры;
|
||
|
||
КонецФункции
|
||
|
||
Функция КлавиатураВстроенная(Клавиатура) Экспорт
|
||
|
||
СоответствиеКлавиатуры = Новый Соответствие();
|
||
|
||
СоответствиеКлавиатуры.Вставить("inline_keyboard", Клавиатура);
|
||
|
||
Возврат СоответствиеКлавиатуры;
|
||
|
||
КонецФункции
|
||
|
||
Функция КнопкаКлавиатурыВстроенной(Надпись, Url = Неопределено, CallbackData = Неопределено) Экспорт
|
||
|
||
СоответствиеКнопка = Новый Соответствие;
|
||
СоответствиеКнопка.Вставить("text", ?(НЕ ЗначениеЗаполнено(Надпись), "<?>", Надпись));
|
||
|
||
Если Url <> Неопределено Тогда
|
||
СоответствиеКнопка.Вставить("url", Url);
|
||
КонецЕсли;
|
||
|
||
Если CallbackData <> Неопределено Тогда
|
||
СоответствиеКнопка.Вставить("callback_data", CallbackData);
|
||
КонецЕсли;
|
||
|
||
Возврат СоответствиеКнопка;
|
||
|
||
КонецФункции
|
||
|
||
Функция КнопкаКлавиатурыОтвета(Надпись) Экспорт
|
||
|
||
СоответствиеКнопка = Новый Соответствие;
|
||
СоответствиеКнопка.Вставить("text", ?(НЕ ЗначениеЗаполнено(Надпись), "<?>", Надпись));
|
||
Возврат СоответствиеКнопка;
|
||
|
||
КонецФункции
|
||
|
||
Функция РядКнопок(СписокНаименованийКнопокСтрокой) Экспорт
|
||
|
||
Результат = Новый Массив;
|
||
МассивНаименованийКнопок = СтрРазделить(СписокНаименованийКнопокСтрокой, ";");
|
||
|
||
Если МассивНаименованийКнопок.Количество() = 0 Тогда
|
||
Возврат Результат;
|
||
КонецЕсли;
|
||
|
||
Для каждого НадписьКнопки Из МассивНаименованийКнопок Цикл
|
||
Результат.Добавить(КнопкаКлавиатурыОтвета(НадписьКнопки));
|
||
КонецЦикла;
|
||
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
Функция МассивРядовСоСпискомКонфигураций(ИдЧата, Команда, Подписка = Неопределено) Экспорт
|
||
|
||
СписокКонфигураций = РаботаСОбновлениямиВызовСервера.СписокКонфигураций(ИдЧата);
|
||
|
||
Если СписокКонфигураций.Количество() = 0 Тогда
|
||
Возврат Неопределено;
|
||
Иначе
|
||
МассивРядов = Новый Массив;
|
||
Для каждого Конфигурация Из СписокКонфигураций Цикл
|
||
Если НужноДобавитьКнопкуСКонфигурацией(Подписка, Конфигурация) Тогда
|
||
МассивКнопок = Новый Массив;
|
||
КнопкаКлавиатурыВстроенной = ТелеграмРаботаСКлавиатурой.КнопкаКлавиатурыВстроенной(Конфигурация.Наименование, ,
|
||
СтрШаблон("%1 %2", Команда, Конфигурация.Имя));
|
||
МассивКнопок.Добавить(КнопкаКлавиатурыВстроенной);
|
||
МассивРядов.Добавить(МассивКнопок);
|
||
КонецЕсли;
|
||
КонецЦикла;
|
||
Возврат МассивРядов;
|
||
КонецЕсли;
|
||
|
||
КонецФункции
|
||
|
||
Функция МассивРядовСПериодамиОповещения(ИдЧата, Команда) Экспорт
|
||
|
||
МассивРядов = Новый Массив;
|
||
|
||
Для каждого ЗначениеПериода Из Метаданные.Перечисления.ПериодичностьУведомлений.ЗначенияПеречисления Цикл
|
||
КнопкаКлавиатурыВстроенной = ТелеграмРаботаСКлавиатурой.КнопкаКлавиатурыВстроенной(ЗначениеПериода.Синоним, ,
|
||
СтрШаблон("%1 %2", Команда, ЗначениеПериода.Имя));
|
||
Если ЗначениеПериода.Имя <> "НеУведомлять" Тогда
|
||
МассивКнопок = Новый Массив;
|
||
МассивКнопок.Добавить(КнопкаКлавиатурыВстроенной);
|
||
МассивРядов.Добавить(МассивКнопок);
|
||
КонецЕсли;
|
||
КонецЦикла;
|
||
|
||
Возврат МассивРядов;
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|
||
#Область СлужебныеПроцедурыИФункции
|
||
|
||
Функция НужноДобавитьКнопкуСКонфигурацией(Подписка, Конфигурация)
|
||
|
||
Возврат Подписка = Неопределено ИЛИ (Подписка И Конфигурация.Подписка) ИЛИ (НЕ Подписка И НЕ Конфигурация.Подписка);
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|