telegram max +7 (999) 881-15-11 zakirovdamir@vk.com

Статьи

Клавиатура выбора даты

Расширяет функциональность решения: выбор даты через контекстную клавиатуру. Доработка планировалась в обновлении; файл можно подключить отдельно.

Внешний вид

Клавиатура выбора даты — экран 1 Клавиатура выбора даты — экран 2 Клавиатура выбора даты — экран 3 Клавиатура выбора даты — экран 4

Установка и использование

  1. Скачайте ТелеграмКлавиатураВыбораДаты.bsl
  2. Создайте в конфигураторе общий модуль ТелеграмКлавиатураВыбораДаты
  3. На закладке «Свойства» включите флаг «Сервер»
  4. На закладке «Дополнительно» укажите подсистему «Телеграм»
  5. Вставьте текст файла в модуль
Модуль в конфигураторе

Создайте элемент справочника «Клавиатуры»:

Элемент справочника Клавиатуры
Если Вход.ОтветКК = Неопределено Тогда
	Клавиатура = ТелеграмКлавиатураВыбораДаты.Создать(Бот, Вход);
Иначе
	Клавиатура = ТелеграмКлавиатураВыбораДаты.ОбработатьНажатие(Бот, Вход);
КонецЕсли;

Пример обработки с клавиатурой выбора даты:

Обработка с клавиатурой
ПараметрыМетода = Новый Структура;
ПараметрыМетода.Вставить("Сообщение", "Выбор даты");
ПараметрыМетода.Вставить("Клавиатура", "Выбор даты");
ОтправитьСообщение(Бот, ПараметрыМетода, Вход);

Нужны два сервиса и две обработки: один ловит нажатия кнопок контекстной клавиатуры, второй — окончательный выбор даты.

Сервисы клавиатуры даты

Код обработки «Нажатие кнопки клавиатуры»:

ПараметрыМетода = Новый Структура;
ОтветНаНажатиеКнопкиКК(Бот, ПараметрыМетода, Вход);

ПараметрыМетода = Новый Структура;
ПараметрыМетода.Вставить("Клавиатура", "Выбор даты");
ВыполнитьМетод(Бот, "editMessageReplyMarkup", ПараметрыМетода, Вход);
Обработка выбора даты

Код обработки «Выбор даты»:

ПараметрыМетода = Новый Структура;
ОтветНаНажатиеКнопкиКК(Бот, ПараметрыМетода, Вход);

ДОтпр = Вход.ОтветКК;
ИдКл = Сред(ДОтпр, 13, 36);
Дата = Дата(Сред(ДОтпр, 49, 14));

Сообщение = СтрШаблон(
	"Выбрана дата. Текущие значения выбора:
	|Идентификатор клавиатуры = %1
	|Выбранная дата = %2", ИдКл, Дата);

ПараметрыМетода = Новый Структура;
ПараметрыМетода.Вставить("Сообщение", Сообщение);
ОтправитьСообщение(Бот, ПараметрыМетода, Вход);