Обработка представлена как простой пример, публикую ее т.к. сам не сразу нашел ответ на вопрос, как отправить смайлы в Телеграм из 1С. Проверена на платформе 8.3.10.2753 и 8.3.11.3133.
Перед отправкой сообщений нужно заполнить настройки.
Токен: API-токен Вашего бота, который Вы получили от @BotFather при создании бота в Телеграм. Если бота у Вас еще нет - заведите его, уйдет полминуты, в результате чего @BotFather Вам сообщит что-то вроде этого:
Use this token to access the HTTP API 123456789:AAbbCC00ddEEffGGhhIgKLmnopQFK3-KLAA
Прокси: любой https или socks5 прокси за пределами юрисдикции РКН. Я использую Tor-браузер: если его запустить, то в системе появится локальный socks5 прокси, использующий сеть тор. На скрине выше именно тор-прокси используется эской. Это и бесплатно, и быстро, и стабильно. Бесплатный сторонний сервер может работать медленно или стать недоступным, в этом случае настройки прокси для Telegramm придется менять. Сеть же Tor работает отлично, и РКН до нее пока не добрался. Если Ваш прокси https - заполняйте настройку без префикса https://. Если socks5 - заполняйте с префиксом socks5:// как на скрине.
После заполнения полей настроек можно нажать кнопку Проверить, если все в порядке - появятся поля с именем Вашего бота.
Для отправки сообщения нужно, чтобы получатель один раз дал на это свое "согласие". Согласие выражается в том, что пользователь отправит хотя бы одно сообщение Вашему боту или просто найдет его в Телеграмм и нажмет кнопку START. Для отправки сообщения в группу просто подпишите своего бота в эту группу. После того, как пользователи или группы "засвидетельствовали" свое согласие получать сообщения от Вашего бота - нажмите кнопку Показать таблицу получателей. Внизу обработки выведется таблица для выбора получателя сообщения. Выберите двойным щелчком строку таблицы с нужным получателем, напишите текст сообщения, кликните нужные пиктограммы (в текст отправки будут вставляться html-тэги иконок) и жмите Отправить сообщение.
Сохраните где-нибудь ИД получателей - если в течение 24 часов пользователь не отправит Вашему боту ни одного сообщения - то этот пользователь перестанет появляться в таблице получателей. Отправлять ему сообщения Вы по прежнему сможете, для этого ИД нужно будет ввести вручную в поле Получатель. То же самое произойдет с ИД группы, если в группе не будет сообщений в течение 24 часов. Если не записали или потеряли ИД получателей - просто попросите их еще раз отправить сообщение боту, в таблице они снова будут появляться в течение 24 часов.
Технические детали.
Большая часть emoji в Telegram - одиночные символы таблицы юникода, как обычные буквы алфавита. Чтобы отправить такие символы по API в GET-запросе (.../SendMessage?text=...), их нужно предварительно URL-кодировать, как, впрочем, и русские буквы. Например, чтобы отправить русский текст "рука" полюс иконку ладони (это символ юникода с порядковым номером 9995), надо использовать
КодироватьСтроку("рука" + Символ(9995), СпособКодированияСтроки.КодировкаURL);
Но подобный код не будет работать для юникод-символов с порядковым номером больше 65535, просто потому что 1C с ними не умеет работать. А именно в этом диапазоне большинство смайлов. Есть вариант сразу узнать binhex нужного символа, закодированного в UTF-8. В этом случае нужно между байтами binhex поставить знаки % - и мы получим готовый URL-кодированный символ для параметра GET в Телеграм. Моя обработка работает не с binhex, а с десятичными порядковыми номерами символов в таблице юникода. Обработка сама переводит номер символа за пределами понимания эски (например смайл 128512) в URL - кодированный вид. Иными словами, с символом номер 128512 обработка сделает то же, что делал бы код эски:
КодироватьСтроку(Символ(128512), СпособКодированияСтроки.КодировкаURL);
если бы эска умела работать с символами юникода за пределами границы 65535.