Telegram bot API - разбор документации с примерами

Публикация № 1217332

Разработка - Системная интеграция - Интеграция с WEB

telegram

Перевод документации на язык 1С.

Хоть и с большим запозданием, публикую шпаргалку по telegram bot api, может, будет полезна.

Прикладываю официальную документацию, и готовый набор методов для работы с telegram. Обработку тестировал на 8.3.15.1747.

Ссылки:

Официальная документация

Документация с частичным переводом (документация не полная, но рабочая)

В тексте я буду давать ссылки на вторую документацию т.к. для ее просмотра не нужны премудрости для обхода блокировок.

 

 
 Создание бота

 

Соединение

В документации написано:

Все запросы к Telegram Bot API должны осуществляться через HTTPS в следующем виде: https://api.telegram.org/bot<token>/НАЗВАНИЕ_МЕТОДА

Подчеркнуто, что соединение именно HTTPS, а значит не забываем указывать порт 443 и создать объект ЗащищенноеСоединениеOpenSSL

Код создания соединения :


АдресTelegramAPI = "api.telegram.org";
ПроксиАдрес = "159.138.22.170";
ПрокcиПорт = 3128;

Прокси = Новый ИнтернетПрокси;
Прокси.Установить("https", ПроксиАдрес, ПроксиПорт);
Прокси.Установить("http", ПроксиАдрес, ПроксиПорт);

СоединениеHTTP  =  Новый HTTPСоединение(АдресTelegramAPI,443,,,Прокси,,Новый ЗащищенноеСоединениеOpenSSL());

 

Прокси

Прокси нужен для обхода блокировок РосКомНадзора, если у вас провайдер не блокирует сайт telegram.org, то прокси можно не создавать.

Есть огромное количество сайтов предоставляющий список таких бесплатных прокси, я использую https://free.proxy-sale.com/https/ т.к. там есть возможность скачать списков нужном мне формате для автоматической загрузки.

Я реализовал у себя регистр сведений, где храню флаг доступности, ip и порт прокси. Флаг доступности актуализируется регламентным заданием

Проверка соединения

Для проверки соединения или проверки работает прокси или нет реализован специальный GET-метод getMe

Я специально буду повторять блоки кода, дабы Вы копировали сразу рабочий вариант, конечно это все нужно обернуть в функции и процедуры


МойToken = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11";
АдресTelegramAPI = "api.telegram.org";
ПроксиАдрес = "159.138.22.170";
ПроксиПорт = 3128;
ТаймаутСоединения = 2;//Ставим таймаут в пару секунд, чтобы долго не ждать исключения при неудачной проверке соединения

Прокси = Новый ИнтернетПрокси;
Прокси.Установить("https", ПроксиАдрес, ПроксиПорт);
Прокси.Установить("http", ПроксиАдрес, ПроксиПорт);

СоединениеHTTP  =  Новый HTTPСоединение(АдресTelegramAPI,443,,,Прокси,ТаймаутСоединения,Новый ЗащищенноеСоединениеOpenSSL());

АдресЗапроса = "bot" + МойToken.token + "/getMe";
ЗапросHTTP = Новый HTTPЗапрос(АдресЗапроса);
Попытка
    ОтветHTTP = СоединениеHTTP.Получить(ЗапросHTTP);
    ПроксиДоступен = Истина;
Исключение
    ПроксиДоступен = Ложь;
КонецПопытки;

Сообщить("Прокси доступен - " + ПроксиДоступен);

 

Метод getMe вернет в теле ответа JSON структуру

{
    "ok": true,
    "result": {
        "id": 12345678912,
        "is_bot": true,
        "first_name": "Представление имени моего бота",
        "username": "unikalnoe_imya_bot",
        "can_join_groups": true,
        "can_read_all_group_messages": false,
        "supports_inline_queries": true
    }
}

"ok":true - Означает, что авторизация прошла успешно и Ваш токен валидный.

 

Получение сообщений

Для получения сообщений существуют 2 совершенно разных способа

  1. Через HTTP-запросы к методу getUpdates
  2. Через Webhook

 

Запрос к методу getUpdates инициирует 1С, и есть 2 варианта использования

 

Short polling - это классическая схема, когда отправляя запрос мы сразу получаем результат его выполнения.

В случае с getUpdates мы сразу получаем ответ, где в поле result будет массив объектов с типом Update

 
Примитивный запрос на получение всех сообщений
 
 Запрос на получение новых сообщений после последнего запроса

 

Long polling - это схема, когда сервер возвращает ответ на запрос не сразу, а в момент появления данных. Проще говоря ваше HTTP соединение висит пока не появятся новые сообщения или не закончится таймаут.

Для работы в такой схеме необходимо договориться с сервером - какой таймаут считать допустимым, для этого у метода getUpdates есть параметр timeout, для удобства еще будем отправлять номер начального сообщения (offset)

 
 Запрос на ожидание получения новых сообщений

 

Получение сообщений через Webhook

Данные способ подразумевает наличие опубликованного наружу HTTP-сервиса, куда и будут приходить запросы от telegram с новыми сообщениями

Следует отметить 2 важные детали - сервис должен быть HTTPS и обрабатывать POST-запросы

Для переключения режима обмена на вебхуки существует метод setWebhook

Основной плюс данного метода - отсутствие необходимости в рег.заданиях, которые с определенным интервалом опрашивают или ждут ответа от сервера telegram. Новые сообщения приходят в режиме реального времени, причем если ваш сервис будет недоступен, то запрос будет повторен (сколько раз и с каким интервалом не понятно)

 

Обработка входящих сообщений

Сообщения, полученные от сервера telegram это массив объектов с типом Update. У данного типа есть обязательное поле update_id и ряд опциональных, зависящих от типа входящего сообщения. Основное доп.поле - message с типом Message заполнено у входящих текстовых сообщениях, входящих файлах, фотографиях, аудио сообщениях, входящем сообщении с контактом, георасположением, видео и стикеры.

Второе доп.поле - callback_query с типом CallbackQuery - это результат нажатия на кнопку клавиатуры InlineKeyboardMarkup

Примеры сообщений с типом Message

 
 Сообщение
 
 Фото
 
 Документ
 
 Аудио сообщение
 
 Геоданные
 
 Опрос
 
 Контакт
 
 Музыка
 
 Нажатие на кнопку ReplyKeyboard

Пример сообщения с типом CallbackQuery

 
 Нажатие на кнопку InlineKeyboard

 

Загрузка полученных файлов

Т.к. в сообщении приходит только идентификатор файла, то необходимо его как то получить.

Для этого существует GET-метод getFile, у которого есть один обязательный параметр file_id

Метод возвращает объект типа File, это еще не файл, но он уже доступен по ссылке, которую необходимо собрать из полученных данных.

Ссылка имеет вид https://api.telegram.org/file/bot<token>/<file_path>, где file_path - это свойство объекта File

 
 Пример загрузки файла

 

Отправка сообщения

Для отправки сообщения используется GET-метод sendMessage, обязательных параметров всего два chat_id и text

chat_id можно взять из полученных сообщений

 
 Отправка простого сообщения

 

У метода sendMessage есть еще ряд необязательных параметров, один из них это parse_mode, который включает нужный синтаксис оформления текста сообщения. Таких режимов два - HTML и Markdown

Проще говоря, этот параметр говорит по каким правилам должно оформляться сообщение

Я приведу пример отправки сообщения в синтаксисе HTML

 
 Отправка оформленного сообщения

В чат при этом запросе прилетит вот такое сообщение

Показ привью отправленной ссылки можно отключить с помощью параметра disable_web_page_preview

Для этого нужно к запросу добавить строку &disable_web_page_preview=true

Также у метода есть параметр reply_to_message_id, который принимает идентификатор сообщения, на которое делается ответ.

 

Кнопки (клавиатуры)

У метода sendMessage есть еще один очень интересный параметр - reply_markup, который отвечает за быстрые ответы.

Типов таких быстрых ответов на данный момент 4: InlineKeyboardMarkup, ReplyKeyboardMarkup, ReplyKeyboardHide и ForceReply.

 

InlineKeyboardMarkup

Это клавиатура, которая привязана к сообщению. У этого объекта всего одно поле inline_keyboard, которое содержит массив строк с массивами кнопок (2 мерный массив кнопок или массив массивов с кнопками)

Кнопка - это объект InlineKeyboardButton, у которого только одно обязательное поле - text

Есть еще ряд полей, основное из которых - callback_data. Это данные, которые будут отправлены после нажатия кнопки пользователем. Сюда можно записывать идентификаторы из 1С (документа или справочника), числа и т.д. для последующей обработки.

Второй полезный параметр - url, в котором указывается ссылка, которая будет открыта при нажатии на кнопку

 
 Пример отправки InlineKeyboardMarkup

 

ReplyKeyboardMarkup

Набор кнопок, которые не привязаны к конкретному сообщению а закреплены внизу окна диалога.

Объект имеет одно обязательное поле keyboard, которое содержит массив массивов кнопок с более простым типом нежели InlineKeyboard - KeyboardButton с основным полем text, данный объект можно не использовать и сразу формировать массив строк.

Еще один важный параметр клавиатуры, но не обязательным, является resize_keyboard, который отвечает за "авто высоту" кнопок.

По умолчанию данный параметр установлен в false и клавиатура растягивается на высоту основной клавиатуры, что выглядит громоздко (см. скрин в примере).

Еще один опциональный параметр - one_time_keyboard, который при установке в true скрывает клавиатуру после нажатия кнопки.

 
 Пример отправки ReplyKeyboardMarkup

 

ReplyKeyboardHide - Своего рода команда управления видимостью для клавиатуры ReplyKeyboardMarkup 

ForceReply - команда инициирующая цитату на отправляемое сообщение

 

Отправка контактов

GET-метод sendContact позволяет отправить контакт пользователю спец.сообщением.

Метод похож на sendMessage за исключением нескольких обязательных полей:

phone_number - строковое представление телефонного номера

first_name - Имя контакта

 
 Пример отправки контакта

 

Отправка документов (файлов)

За отправку файлов отвечает POST-метод sendDocument, у которого 2 обязательных поля - chat_id и document.

Поле document может иметь тип строки, это нужно тогда, когда мы переотправляем уже полученный файл и в этом случае указываем идентификатор файла.

Второй тип, который может содержать поле document - это сам отправляемый файл в формате multipart/form-data

Сам формат multipart/form-data достаточно простой, его цель - оправить серверу ряд разнородных данных (файлы, строки и т.д.) в одном сообщении (файле). Это своего рода zip-архив без сжатия, где не только файлы, но и другие данные.

Сервер, получив сообщение, должен понять где заканчиваются/начинаются блоки с данными и что там за данные. Для этого ему необходим разделитель данных - boundary и некая запись о характере данных блока.

Вернемся к нашему методу sendDocument, которому необходимо передать 2 параметра - строковый chat_id и файл document

Шаблон тела запроса будет выглядеть следующим образом:

--%Разделитель%
Content-Disposition: form-data; name="chat_id"

%ЧатID%
--%Разделитель%
Content-Disposition: form-data; name="document"; filename="%ИмяФайла%"

%СодержимоеФайла%
--%Разделитель%--

Со строковыми значениями вопросов не возникает - делаем СтрЗаменить и все, но есть еще и содержимое файла, которое нужно в итоговый запрос подсунуть.

Для решения этой проблемы у 1С есть метод ОбъединитьФайлы, который объединяет переданный в него массив файлов в один.

Разделим шаблон на части - певая это текст до %СодержимоеФайла%, а вторая это текст после %СодержимоеФайла%. Запишем эти 2 текста в файлы и используем ОбъединитьФайлы подсунув между текстовиками отправляемый файл.

 
Пример отправки файла

 

Скачать файлы

Наименование Файл Версия Размер
Документация Telegram Bot API ver.4.7
.pdf 616,12Kb
04.04.20
8
.pdf 616,12Kb 8 Скачать
Telegram bot API Библиотека методов
.epf 7,28Kb
05.04.20
17
.epf 7,28Kb 17 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. serg-lom89 53 06.04.20 10:39 Сейчас в теме
тема хоть и "заезженная" но тем не менее почитал с удовольствием,вспомнил как сам разбирался с API_)
TreeDogNight; +1 Ответить
2. feva 397 06.04.20 13:52 Сейчас в теме
Хорошее развитие темы ботов телеги и 1с) Грамотно написано! Однозначно луцк!
Evg-Lylyk; +1 3 Ответить
3. CyberCerber 500 06.04.20 14:13 Сейчас в теме
(2) Кажется, это уже правило Инфостарта. В комментах к любой статье появится автор другой статьи на эту тему, и порекламирует себя.
izidakg; leongl; +2 1 Ответить
4. feva 397 06.04.20 14:22 Сейчас в теме
(3) ну тема на самом дела не одинаковая. Тут глубже развернуты команды бота телеги, с примерами. А расширение информационного поля полезно всем - как автору, так и читателю и журналу
Evg-Lylyk; +1 Ответить
5. Nikola23 507 06.04.20 15:04 Сейчас в теме
(3) рынок диктует свои правила. Вам не нравится что-то конкретное в его поведении?
6. CyberCerber 500 06.04.20 15:21 Сейчас в теме
(5) Вообще такая откровенная самореклама не очень нравится. Комменты к этой статье посвящены именно этой публикации, а не всем на эту тему. Найти интересные мне статьи я и сам смогу.
Конкретно в этой фразе не понравилось "Хорошее развитие темы...". Какое развитие? Как будто автор взял именно его статью как эталон и что-то дополнил... Здесь подробный разбор функционала API, там - просто краткий пример базовой возможности.
7. Nikola23 507 07.04.20 09:21 Сейчас в теме
(6) "Комменты к этой статье посвящены именно этой публикации". Ну это правило вы сами придумали.

ИМХО, вы придираетесь. В каждом форуме с момента появления такого понятия, есть темы и есть админы.
Да, принято писать "по теме", но не запрещено (по умолчанию). На инфостарте - не запрещено.
Админы принимают решение что и где писать, а не пользователи.

Выбор за вами - адаптироваться или нет.
Кстати и вы и я сейчас пишем совсем не по теме, но никто же не возмущается :)
Fox-trot; +1 Ответить
8. izidakg 157 07.04.20 16:23 Сейчас в теме
(3) когда статья не то что хуже, но существенно менее информативна, это наверное и не плохо
но в данном случае эта статья более полная, а значит лучше
9. Anton64 265 08.04.20 09:53 Сейчас в теме
Вы только в тексте статьи описания клавиатур делаете обычным текстом? или в обработке так же?
Непонятно как вы динамически собираетесь при таком подходе формировать клавиатуры.
10. leongl 318 08.04.20 10:44 Сейчас в теме
(9)В тексте не стал делать динамически для прозрачности.
В обработке 2 экспортных метода
ПрикрепитьКнопки(Получатель, ТекстСообщения, МассивМассивовКнопок, ЭтоФорматированноеСообщение = Ложь)
ОтправитьСообщениеСКнопками(Получатель, ТекстСообщения, МассивМассивовInlineКнопок, ЭтоФорматированноеСообщение = Ложь)
и обертка для получения описания inlineКнопки
ПолучитьКнопкуInline(Заголовок, ДанныеДляВозврата = Неопределено, СсылкаURL = Неопределено)

Использование простое - для прикрепления кнопки делаете 2мерный массив строк и скармливаете ПрикрепитьКнопки
Для inlineКлавиатуры делаете 2мерный массив из результатов функции ПолучитьКнопкуInline(
CyberCerber; +1 Ответить
11. Anton64 265 08.04.20 11:50 Сейчас в теме
(10) Тогда понятно)) а то в публикации как-то слишком странно выглядело
12. nestokay 59 10.04.20 08:26 Сейчас в теме
Воооот, отличная статья, спасибо!!!
13. hardcodder2020 13.04.20 11:38 Сейчас в теме
Статья крутейшая! Автору респектую!
14. Pixar0000 13.04.20 18:46 Сейчас в теме
А отправка смайликов - не раскрыта вообще, если добавить, то настольное руководство на связке 1С + Тележка
Автору респект!
15. AlexK_2012 14.04.20 17:29 Сейчас в теме
а обработка запускабельна?
16. leongl 318 14.04.20 18:11 Сейчас в теме
17. leongl 318 14.04.20 18:13 Сейчас в теме
(15)Запускабельны примеры из статьи
18. AlexK_2012 15.04.20 12:38 Сейчас в теме
(17) Добрый день! Большая просьба добавить пример разбора полученных сообщений, вижу только примеры получаемых данных
19. leongl 318 15.04.20 16:55 Сейчас в теме
(18)Это немного выходит за рамки статьи, но я могу посоветовать:
1. Получив ОтветHTTP проверить его свойство КодСостояния, при удачном выполнении он должен быть равен 200
2. Получить тело ответа через метод ПолучитьТелоКакСтроку и преобразовать его из JSON в объект 1С через Новый ЧтениеJSON
3. Проверить получившийся объект 1С на наличие поля "ok" и его значение = Истина
4. Обработать свойство result объекта
В обработке с библиотекой методов есть экспортный метод ПолучитьИОбработатьСообщения() там есть и получение сообщений и их обработка.
igormiro; Terve!R; AlexK_2012; CyberCerber; +4 Ответить
20. mvgfirst 4 17.04.20 16:00 Сейчас в теме
Не то что бы я придирался
но вот есть кусочек
где ошибка:

ЗапросHTTP = Новый HTTPЗапрос(АдресЗапроса);
Попытка
   ОтветHTTP = СоединениеHTTP.Получить(HTTPЗапрос);
   Сообщить(ОтветHTTP.ПолучитьТелоКакСтроку())
21. leongl 318 17.04.20 21:37 Сейчас в теме
22. igormiro 705 28.04.20 09:41 Сейчас в теме
Хорошая статья.
Есть вопрос бот работает, у некоторых пользователей вот перестаёт реагировать на все команды.
Что делать в таких случаях?
23. leongl 318 28.04.20 11:11 Сейчас в теме
(22) Команды от пользователя приходят в сообщениях?
24. igormiro 705 28.04.20 11:46 Сейчас в теме
25. igormiro 705 28.04.20 11:49 Сейчас в теме
Уже было такое пришлось пересоздать бот. Тогда все ок.
26. doctordre 30.04.20 21:55 Сейчас в теме
ошибочка в адресе запроса для получения файла. там не bot a /file/bot
поправьте пожалуйста
27. leongl 318 06.05.20 11:55 Сейчас в теме
Оставьте свое сообщение

См. также

Внешняя компонента для работы по Web-socket протоколу Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

5 стартмани

30.03.2018    21500    32    Ditron    68    

Выбираем российского провайдера для интеграции с WhatsApp

WEB Интеграция v8 Россия Абонемент ($m)

Собственно, почему выбираем именно провайдера и почему российского? WhatsApp, создавая свое API, преследовал две цели - делать деньги и минимизировать спам. И чтобы убить сразу двух зайцев, было принято решение предлагать API исключительно через партнеров. Ну а вопрос по поводу российского партнера скорее уже риторический. И не только из-за курса рубля, но и из-за таланта работать с российскими телефонными номерами, коим одарены далеко не все провайдеры. Между тем статья не претендует на всесторонний анализ всех возможностей всех провайдеров. Мы копнем лишь верхушку айсберга этого немаленького рынка.

1 стартмани

19.05.2020    2025    0    ripreal1    1    

Язык запросов 1C#

Интеграция WEB v8 Абонемент ($m)

В новой версии язык запросов 1C# поддерживает практический полный синтаксис SQL Server 2005-2016. Обращение к объектам СУБД выполняется в терминах метаданных 1С. Доступ к возможностям 1C# реализован в виде web api сервиса. Результаты запросов возвращаются в виде JSON.

1 стартмани

20.04.2020    3119    6    zhichkin    14    

Пример работы с Trello из 1С

WEB v8 1cv8.cf Россия УУ Абонемент ($m)

Небольшая конфигурация содержит примеры обмена с онлайн-сервисом Trello.

1 стартмани

15.02.2020    7886    32    terrorion    8    

Работа с релизами 1С и договорами ИТС Промо

WEB БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Работа с релизами 1С и партнерским кабинетом.

2 стартмани

15.08.2019    10967    34    RocKeR_13    10    

Взаимодействие HTML (COM объект, WebKit) с 1С (обычные и управляемые формы)

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Показан пример использования HTML (COM объект, WebKit) в 1С (8.3).

2 стартмани

18.01.2020    5533    19    Deniskinr83    0    

Google drive - менеджер файлов

WEB Внешние источники данных v8 1cv8.cf Россия Абонемент ($m)

Синхронизация с гугл диском легко и просто!

10 стартмани

05.12.2019    6662    21    zykov_vitaliy    22    

Автозаполнение адреса по КЛАДР в УПП при выгрузке контрагента с портала компании (API dadata)

WEB v8 1cv8.cf Абонемент ($m)

Заведение, согласование контрагентов организовано на портале компании. Далее по web-сервису контрагенты выгружаются в УПП (юр.адрес и факт.адрес выгружаются строкой). Задача автоматизировать заполнение адреса в УПП по КЛАДР.

1 стартмани

03.12.2019    4582    1    John_d    10    

Проверка VAT номеров Промо

WEB v8 1cv8.cf Абонемент ($m)

Обработка для вызова сервиса проверка VAT номера.

1 стартмани

26.11.2018    9781    0    wtlz    1    

Работа с Яндекс-картами в 1С (вывод меток, прокладка маршрута, отображение балуна, вывод меток в кластеры) (обычное и управляемое приложение)

WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Работа с Яндекс-картами в 1С (управляемое приложение). Обработка показывает, как можно найти адреса на карте Яндекс, проложить маршрут.

2 стартмани

20.11.2019    9003    86    Denr83    0    

Пример взаимодействия HTML (COM объект, WebKit) с 1С (динамический отбор) (обычные и управляемые формы)

WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Показан пример использования WebKit в 1С (8.3).

2 стартмани

18.11.2019    7006    12    Denr83    0    

"Живые" картинки со Snap.SVG

Практика программирования WEB Работа с интерфейсом v8 Абонемент ($m)

В статье рассмотрен пример использования http-сервисов для визуализации данных

1 стартмани

24.10.2019    11146    17    blackhole321    7    

Работа с картой. Кадастровый учет (Росреестр). Тематические карты Промо

WEB Рабочее место v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка для работы с картами в 1С. Получения изображения с публичной кадастровой карты России, построения тематических карт

5 стартмани

31.08.2017    14872    10    vipchep    0    

Яндекс сервисы [Расширение]

Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

Расширение для работы с Яндекс-сервисами (предиктор,переводчик,проверка орфографии)

1 стартмани

24.10.2019    8968    7    noprogrammer    7    

Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью Rest API сайта. Часть 1. Авторизация

WEB v8 Абонемент ($m)

Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью функционала Rest API предоставляемого платформой (CMS) WordPress (WooCommerce). Без дополнительных приложений на PHP/вставьте сюда любой другой язык программирования/.

1 стартмани

12.10.2019    17129    17    osivv    30    

Telegram бот на 1С

WEB v8 1cv8.cf Абонемент ($m)

Telegram бот на 1С в виде внешней обработки, встраиваемой в типовые 1С 8.3.

1 стартмани

24.09.2019    11164    28    budidich    19    

Путеводитель по истории релизов

WEB v8 1cv8.cf Абонемент ($m)

Отчет по истории выпуска релизов и анализа информации по обновлениям.

5 стартмани

13.08.2019    10728    10    YPermitin    18    

Подключение к сайту и отправка или получение данных по API (POST, GET...) (с описанием кода)

WEB v8 1cv8.cf Абонемент ($m)

Простая обработка по отправке или получение данных с любого сервера главное знать ресурс (выполняемую функцию) и тело запроса.

1 стартмани

12.08.2019    9237    17    MaxPowerr    5    

Использование HTTP-сервиса для создания "фронтенда" HTML/CSS/jQuery с кэшированием

WEB v8 1cv8.cf Абонемент ($m)

В статье описан способ создания "фронтенда" на HTML/CSS/jQuery и скрипт кеширования AJAX запросов на PHP.

1 стартмани

06.08.2019    12146    15    Sedaiko    24    

Работа с картами 1С 4 в 1: Яндекс, Google , 2ГИС, OpenStreetMap(OpenLayers) Промо

Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

С каждым годом становится все очевидно, что использование онлайн-сервисов намного упрощает жизнь. К сожалению по картографическим сервисам условия пока жестковаты. Но, ориентируясь на будущее, я решил показать возможности API выше указанных сервисов: Инициализация карты Поиск адреса на карте с текстовым представлением Геокодинг Обратная поиск адреса по ее координатами Взаимодействие с картами - прием координат установленного на карте метки Построение маршрутов по указанным точками Кластеризация меток на карте при увеличении масштаба Теперь также поддержка тонкого и веб-клиента

1 стартмани

28.12.2012    98595    1134    Smaylukk    348    

Конфигурация для обмена данными (интеграционная шина)

Внешние источники данных WEB v8 1cv8.cf Абонемент ($m)

Система позволяет организовать обмен данными, как с базами 1С, так и любыми другими приложениями. Система представляет собой отдельную конфигурацию. Система позволяет организовать гибкие возможности по настройке обмена. В качестве брокера сообщений, для передачи данных, используется отдельная самостоятельная конфигурация на 1С. Комплект поставки содержит файл расширения для "клиентской" части шины, данное расширение позволяет без снятия "ключа" организовать гибкий механизм обмена данными.

4 стартмани

08.07.2019    8426    25    miha-28    16    

Шаблон http-сервиса для вашего проекта

Внешние источники данных WEB Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

Http-сервис для обмена данными в формате JSON. Обработчики этого сервиса находятся во внешней обработке, что позволяет дорабатывать его без изменения конфигурации. Также прилагаю пример мобильного приложения для работы с данным сервисом (получает номенклатуру и остатки на складе). Сервис очень быстро разворачивается и масштабируется под ваши задачи.

3 стартмани

04.05.2019    15663    63    MarkoSokolov    47    

1C + Python + Django Rest Framework + Vue.js. Опыт несложной full-stack разработки

Практика программирования Внешние источники данных Обмен через XML WEB Разработка v8 1cv8.cf Абонемент ($m)

В этой статье мы рассмотрим путь и основные моменты создания небольшого вэб-сервиса, который мы называем "Онлайн Прайс-лист". Выгрузка из 1С, бэкенд, фронтенд, получение заказов в 1С.

1 стартмани

22.04.2019    27259    32    riposte    63    

Пример использования REST API Яндекс Диска Промо

WEB v8 1cv8.cf Абонемент ($m)

Пример использования REST API Яндекс Диска: чтение диска, добавление каталога, загрузка файла, скачивание файлов или каталогов, удаление файлов или каталогов.

1 стартмани

26.06.2018    20310    32    MKFreeUser    14    

1С и WebKit. Вариант взаимодействия

WEB v8 1cv8.cf Абонемент ($m)

В результате перехода на WebKit тип свойства Документ у поля, имеющего вид ПолеHTMLДокумента, изменился с COMОбъект на ВнешнийОбъект. Также изменилась DOM модель документа, доступная через это свойство.

2 стартмани

23.02.2019    22897    69    mi1man    55    

Строим маршруты на картах в 1С с помощью OpenStreetMap, OSRM и Leaflet

WEB v8 1cv8.cf Транспорт, автопарки, такси Абонемент ($m)

Краткая статья о том как вывести на карту (в 1С) маршруты с помощью OpenStreetMap, OSRM и Leaflet. По данной системе очень мало примеров, но так как OpenStreetMap является бесплатным сервисом и не требует никаких ключей и регистраций, и является довольно мощным механизмом, решил написать небольшую статью "как это сделать?". В первую очередь скажу, все намного проще, если вы используете последнюю версию платформы (8.3.14), где есть поддержка практически всех браузеров (IE 11, EDGE, Mozilla), но что делать если у нас не самая свежая платформа, где поддержка только IE 9?

2 стартмани

12.02.2019    20015    82    Ditron    58    

Яндекс карта в документе "Заказ клиента" на закладке "Доставка". (Расширение) УТ 11.4

Обработка документов WEB Оптовая торговля Оптовая торговля v8 УТ11 Россия УУ Абонемент ($m)

Показ яндекс карты в документе "Заказ клиента" на закладке "Доставка" и печать карты для курьера с контактными данными. (Расширение)

3 стартмани

05.02.2019    8461    12    ret    6    

Работа с публикациями "Инфостарт" Промо

Практика программирования О сообществе WEB v8 УУ Абонемент ($m)

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    17384    12    RocKeR_13    16    

Яндекс карты 2.1. Построение маршрута. Передача длины маршрута в реквизит формы

WEB v8 1cv8.cf Абонемент ($m)

Пригодится как пример использования Яндекс карты 2.1 для построения маршрута.

1 стартмани

24.01.2019    10701    62    John_d    32    

Веб-форма авторизации/регистрации/восстановления пароля для веб-клиента 1С с помощью HTML/CSS/PHP/HTTP-сервисов 1С

WEB v8 1cv8.cf Абонемент ($m)

Пришла в голову идея создать универсальную веб-форму входа в веб-клиент 1С на HTML/CSS/PHP/HTTP-сервисы 1С. Чтобы прямо как на нормальных сайтах. Заодно и для ознакомления с 1С с новой, для себя, стороны. Интересно было попробовать интеграцию PHP - 1С.

1 стартмани

08.11.2018    14077    23    Бэнни    16    

SOAP для чайников

Обмен через XML WEB v8 1cv8.cf Абонемент ($m)

Немножко про SOAP сервис. И пример работы с подключением и получением данных по SOAP за 5 минут.

1 стартмани

05.09.2018    37847    34    dusha0020    18    

Конфигурация для просмотра публичных телеграм каналов Промо

WEB v8 Абонемент ($m)

Просмотр и каталогизация в более удобном виде публичных телеграм каналов, групп и чатов.

1 стартмани

02.06.2018    15363    10    DO_WHILE_LOOP    7    

Класс-обработка “Работа с картами Яндекс”

Разработка внешних компонент WEB v8 Абонемент ($m)

Как показать точку или маршрут на карте Яндекс. Как получить координаты по строке адреса (геокодирование).

1 стартмани

01.08.2018    19967    175    RSConsulting    15    

HTTP Сервисы: Путь к своему сервису. Часть 1

Практика программирования WEB v8 1cv8.cf Абонемент ($m)

Уже много было написано про http-сервисы, но то и дело всплывают «Новые» статьи по обмену между базами V8 по COM, что «Немножко» удивляет. Решил внести свои 5 копеек, поработаем с http-сервисом.

1 стартмани

15.07.2018    69293    23    dsdred    24    

Чтение сжатого gzip, deflate HTTP ответа сервера. Без ВК. Уменьши время загрузки и сократи трафик в 3 раза

WEB v8 1cv8.cf Абонемент ($m)

В платформе 1С:Предприятие не реализовано штатного механизма декодирования ответа веб серверов, в которых присутствует gzip сжатие. Некоторые использовали WinHttpRequest.5.1 , кто-то писал ВК. Друзья, хватит. Вот вам решение.

1 стартмани

08.06.2018    12877    66    Malfarion    16    

Обмен файловыми базами данных через Yandex диск Промо

WEB v8 Россия Абонемент ($m)

Выполнение операций обмена с Yandex диском для файловых БД, по протоколу WebDav, в автоматическом или ручном режимах.

1 стартмани

11.06.2018    14690    5    slimper    1    

Интеграция между Atlassian Jira и 1С:Предприятие 8.3 используя Jira REST API (выборка, создание и изменение запросов, чтение, создание и удаление записей о работах, чтение комментариев и другие возможности)

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с Atlassian Jira используя Jira REST API. Ключевые функции: выборка запросов с использованием JQL; добавление и изменение запросов; добавление, изменение и удаление записей о работах; чтение комментариев к запросам; сохранение всех ключевых параметров между сеансами работы. Тестирование проводилось на платформе 1С (8.3.11.2954) совместно с JIRA Server platform (7.3.7)

1 стартмани

24.04.2018    26515    155    Ko1t    70    

Простая и пошаговая интеграция Яндекс-Алисы и 1С

WEB v8 Абонемент ($m)

Интеграция Алисы и 1С через http сервис на платформе 8.3.9. Используем виртуальный сервер, сертификат от letsencrypt, и делаем простые запросы к базе из Алисы.

1 стартмани

09.04.2018    19822    18    kiv1c    34    

Чтение и запись из таблиц гугл (google sheets) в табличный документ 1С (8.3, управляемые формы)

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка на управляемой форме для 1С версии 8.3 для доступа к сервисам Google Sheets c использованием протокола авторизации OAuth 2.0. Выполняет получение списка листов таблицы гугл, чтение таблицы гугл в табличный документ 1С и запись из табличного документа 1С в таблицу гугл. Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.11.2954).

1 стартмани

09.04.2018    32634    210    Ko1t    70    

Сервер push сообщений “Push0k“ 18.05 Промо

WEB v8 1cv8.cf Абонемент ($m)

Аналог других “мессенджеров“. Позволяет практически все то же самое, что и другие решения. За исключением смайлов, эмодзи, голосовой и видео связи. Основное отличие от других решений, открыта и доступна для изменения серверная и клиентская часть месенджера. Общедоступной серверной части нет, за серверную часть отвечаете вы сами.

1 стартмани

19.12.2017    15355    12    PloAl    20    

2 в 1: Проверить действительность паспорта / Получить ИНН по паспорту

Обработка справочников WEB Управление персоналом (HRM) Управление персоналом (HRM) v8 v8::УФ ERP2 БП3.0 ЗУП3.x Россия БУ Абонемент ($m)

Представляю вашему вниманию внешнюю обработку заполнения элемента справочника "Физические лица". Обработка выполнена с использованием API (для работы необходим доступ в интернет), содержит полностью открытый код и 2 команды: Проверка документа, удостоверяющего личность, в списке недействительных паспортов и Заполнение ИНН по паспортным данным.

1 стартмани

27.02.2018    19897    134    VladimirElohov    35    

А чё это вы здесь делаете, а?

WEB v8 1cv8.cf Абонемент ($m)

Разработчикам тиражных обработок близка и понятна проблема обратной связи с пользователем. Много важного и полезного можно почерпнуть, зная, что делает бухгалтер, который запустил обработку. В большом мире вэба сбор статистики на сайте дело привычное и даже обязательное. Эта статья покажет практику применения инструментов сбора статистики из мира веба для обработок на платформе 1С:Предприятие.

1 стартмани

21.01.2018    22285    30    infosoft-v    42    

Пример заполнения/создания файла XML из XSD схемы, используя XDTO

Обмен через XML WEB v8 1cv8.cf Абонемент ($m)

Добрый день, коллеги! Наконец-то дошли руки написать сию статью. Хочу поделиться своим опытом по разбору xsd схемы используя Фабрику XDTO, а также связанным с этим XML файлом. Думаю, наверняка кому-то понадобится.

1 стартмани

21.12.2017    41190    52    sandybaev    23    

Построение маршрута доставки с расчётом расстояния для любой базы УФ Промо

Универсальные обработки WEB Оптовая торговля Оптовая торговля v8 v8::УФ 1cv8.cf Абонемент ($m)

Графическое изображение маршрутного листа по картам гугл. Работает на любой конфигурации с управляемыми формами. Использует новую версию api google-карт от 13.02.2018 года под IE11.

10 стартмани

24.02.2018    31076    40    KorotkovRV    16