Files
tg_bot_1c/src/cf/CommonModules/ТелеграмРаботаСКлавиатурой/Ext/Module.bsl

126 lines
6.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#Область ПрограммныйИнтерфейс
Функция КлавиатураОтвета(Клавиатура, Компактная = Ложь, Одноразовая = Ложь) Экспорт
СоответствиеКлавиатуры = Новый Соответствие();
СоответствиеКлавиатуры.Вставить("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", Команда, ЗначениеПериода.Имя));
Если ЗначениеПериода.Имя <> "НеУведомлять" Тогда
МассивКнопок = Новый Массив;
МассивКнопок.Добавить(КнопкаКлавиатурыВстроенной);
МассивРядов.Добавить(МассивКнопок);
КонецЕсли;
КонецЦикла;
Возврат МассивРядов;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция НужноДобавитьКнопкуСКонфигурацией(Подписка, Конфигурация)
Возврат Подписка = Неопределено ИЛИ (Подписка И Конфигурация.Подписка) ИЛИ (НЕ Подписка И НЕ Конфигурация.Подписка);
КонецФункции
#КонецОбласти