Конструктор ботов Телеграм— лёгкая и универсальная интеграция 1С с Telegram

Лёгкая в установке и настройке, многофункциональная и универсальная интеграция 1С с Telegram. Использованные в решении подходы позволяют совместить все возможности 1С с возможностями Telegram. Ещё никогда до этого решение задачи отправки данных в Telegram из 1С, получения данных из Telegram в 1С и организация многоступенчатого бота не было таким простым.

Перейти к публикации

Вознаграждение за ответ
Показать полностью
Комментарии
1. Алексей Патюков (apatyukov) 870 30.05.17 10:33 Сейчас в теме
3. Aleksandr Gorlov (gavlexx) 36 04.08.17 19:14 Сейчас в теме
С помощью этого конструктора можно постранично вывести каталог товаров из 1С?
Под "постранично" понимаю вывод нескольких товаров и кнопки страниц/прокрутки списка.
(3) Решение кардинально облегчает взаимодействие Телеграм и 1С. На любую команду из Телеграм легко назначается свой обработчик. Для заполнения содержимого обработчика предусмотрены шаблоны (отправка сообщения, видео, фото, клавиатуры и так далее). Шаблоны создают структуру, а структуру заполняете уже Вы. Для вывода содержимого номенклатуры нужно — 1) выбрать запросом элементы номенклатуры 2) получить из присоединённых файлов картинки элементов 3) на основе пункта 1 собрать сообщения 4) вывести в телеграм полученные картинки и собранные сообщения 5) последнее сообщение сопроводить контекстной клавиатурой с кнопками "вверх" "вниз"
9. Леонид Павлиенко (PLAstic) 182 29.08.17 17:08 Сейчас в теме
(3)Попробуй представить, как это будет выглядеть для пользователя? Ну, допустим, можно сделать кнопки под сообщением, как у @vote, но что ты подразумеваешь под "вывести несколько товаров"? Выводить наименований в одно сообщение? Это весьма фееричное задание для телеги. Я бы рекомендовал искать другие способы интеграции.
5. Сергей Лесовой (Synoecium) 272 15.08.17 12:39 Сейчас в теме
Судя по описанию крутая штука. Интересует интеграция с системами типа Zabbix для мониторинга состояния оборудования, есть ли какие то наработки в эту сторону?
(5) Спасибо. Zabbix это php, классы php для работы с telegram наверное есть на гитхабе
7. Семён Павлюков (7OH) 31 29.08.17 16:22 Сейчас в теме
Пробую понять - возможно ли в данной реализации уловить всю цепочку нажатия кнопок.
Допустим есть меню не из 2х уровней, а из 4.
Можно ли на 6-м уровне понять на какую кнопку нажали на всех остальных ?
1. Начало
2. справочник\пвх
3. выбираем, допустим из 4-х номеров
4. изменить код\наименование
5. Ввод данных
6. записать\отменить.
И вот на последнем этапе как узнать, справочник или пвх и с каким кодом надо изменить ?
Может плохо смотрю, но пока вижу только данные нажатой прошлой кнопки.
Подскажете или всё только в виде техподдержки ?
(7) Добрый день! Подобную схему можно реализовать через работу с параметрами контекста.

В Вашем случае, возможно, нужны следующие параметры контекста:
"ВидЭлемента" (строка, "справочник" или "пвх")
"ИзменяемыйРеквизит" (строка, "наименование", "код" и так далее)

1 — создаёте новые элементы плана видов характеристик ТелеграмПараметрыКонтекста, которые по сути будут являться временными переменными определённых типов
2 — в обработках на странице "Действия над контекстом" производите присвоение переменных по логике решения
(присвоенные данные становятся видны в таблице "Контекст сеансов")
3 — создаёте наборы условий, в которых прописываете все возможные по логике случаи
4 — добавляете наборы условий в сервисы — либо в табличную часть "Наборы условий" (тогда условия проверяются для сервиса целиком), либо в табличную часть "Обработки" (тогда набор условий проверяется при вызове обработки)

Плюс, контекстную клавиатуру можно формировать "на лету" (посмотреть код можно через кнопку "Код клавиатуры"), и в данные контекстной клавиатуры можно подставлять части строк, по которым можно будет что-либо идентифицировать.

Также, возможно, Вам пригодится пример работы с параметрами контекста в демо-боте.

Также, на выходе релиз 1.02 (примерно неделя-две), с которым я постараюсь выпустить более подробную порцию справки, описывающую возможности решения, а также добавлю параметры контекста в НакопленныеДанные (для упрощения программной проверки условий)
14. Семён Павлюков (7OH) 31 29.08.17 20:18 Сейчас в теме
(8) Спасибо. Под конец дня докопался до регистра.
Как параметры сеанса - довольно удачное решение.
Туда и буду писать нужное.
(10) по коды кнопок попробую в демке найти - посмотрим что будет более привлекательным.
---
Сходу немного путаешься, так как не хватает связующей формы (может схемы). После пары часов изучения - уже картинка вырисовывается, но желание сделать форму (бот + обработки + клавиатуры) пока не покинуло :).
(14) если "hello world" получается, то и остальное получится ;-)
10. Леонид Павлиенко (PLAstic) 182 29.08.17 17:15 Сейчас в теме
(7) В телеге кнопки под сообщениями могут иметь присвоенные вами значения. Когда нажимается такая кнопка, вы получаете сообщение, что в таком-то чате у такого-то сообщения нажали такую-то кнопку. Когда вы генерите самое первое сообщение с кнопками, то присваиваемые коды кнопкам сохраняйте. Например, создайте РС, где измерением храните уникальный идентификатор кнопки, а ресурсом - структуру, преобразованную в строку. В структуре предусмотрите все нужные на разных уровнях выбора значения. Каждый раз при нажатии определённой кнопки обновляйте значения этой структуры.
Почему не ПВХ, а РС с использованием ЗначениеВСтрокуВнутр? Потому что при разрастании бота ваши хотелки будут только расти и надо будет хранить структуры с разным составом реквизитов.
Сразу рекомендую добавить реквизит "ДатаСоздания" и сделать рег.задание сборщика мусора. Например, поиграется клиент с вашим ботом, пройдёт неделя и ни ему, ни тем более вам незачем будет хранить данные его незавершённой сессии.
11. Леонид Павлиенко (PLAstic) 182 29.08.17 17:20 Сейчас в теме
Я не вижу перспектив подобных конструкторов ботов. Сколько я их написал, у каждого своя механика. Да, есть общий шаблон вроде:
ОтправитьСообщение
УдалитьСообщение
ИзменитьКлавиатуру
ОтправитьФайл
ОтправитьЛоку
СоздатьСессию (это то самое, о чём я писал в (10) )
УдалитьСессию
и т.п., но само мясо разное у каждого бота.
rolin555; rayastar; user820666; +3 Ответить
(11) Ну понятно, что имея API, можно реализовать всё что угодно, но просто вопрос времени и желания вникать в его нюансы. Сессия сделана через параметры контекста. Мясо тоже можно реализовать любое, и значительную его часть — тыкая мышкой в справочники.
(7) В структуре НакопленныеДанные есть ключ КонтекстСеанса, являющийся соответствием (ключ — параметр контекста, значение — значение параметра)
16. Семён Павлюков (7OH) 31 29.08.17 22:00 Сейчас в теме +1.1 $m
Дамир, не покидает мысль, что некоторую безопасность, раз уж это конструктор - нужно конфигурацией обеспечить.
Например - опционально - в подчиненный справочник ботам - писать всех, кто к нему обращается первый раз (ид + логин\имя) и разрешать общаться с ботом со стороны 1С (с возможностью временного отключения\бана).
В боте вон есть ключ, чтобы никто извне не попал к нам "случайно".
Но ведь имя бота могут, допустим, и сотрудники подсмотреть.
Можно реализовывать при начале работы авторизацию по номеру, как в дэмке.
Но ведь это надо будет на каждом цикле (/start) по-хорошему делать - не айс.
Плюс - привязка номера к чему-то в базе не сильно возможна. Мы же не против, чтобы он работал в базе, а вот через бота доступа быть не должно.
(16)
Например - опционально - в подчиненный справочник ботам - писать всех, кто к нему обращается первый раз (ид + логин\имя) и разрешать общаться с ботом со стороны 1С (с возможностью временного отключения\бана).
хороший вариант авторизации, реализую в релизе 1.02 (сентябрь)
18. Леонид Павлиенко (PLAstic) 182 30.08.17 09:25 Сейчас в теме
(16) При первом обращении пользователя выдаем на экран сообщение, что для начала работы нужно пройти авторизацию. Под сообщением кнопка "отправить запрос". Пользователь нажимает кнопку, приходит запрос. Бот отравляет админу/админам сообщение "такой-то чел хочет общаться" с двумя кнопками: разрешить/отклонить. По нажатию админом на любую записываем в бд статус доступа.
Если админов несколько, предусмотреть ответы по уже рассмотренным другими админами запросам.
19. Семён Павлюков (7OH) 31 30.08.17 09:43 Сейчас в теме
(18) Так то оно так.
По хорошему бы ещё и пользователя подвязать.

Только не хочется в каждой базе придумывать КУДА записать результат.

Смысл был в том, чтобы это хранилось в этой системе (а не любая Типовая + Типовая Телеграмм + отдельный объект для хранения связки этих двух систем).
(19) для привязки предусмотрен регистр ТелеграмНастройкиПользователей
21. Семён Павлюков (7OH) 31 30.08.17 12:43 Сейчас в теме
(20) осталось только заполнение ИД чата, чтобы заполнять можно было не вручную :) - тогда задача авторизации считай решена : настройку сделать ссылкой на что-угодно и вперёд.
22. Алексей СТ (alexeist) 31.08.17 17:31 Сейчас в теме
А массовая рассылка по номерам из базы возможна?
(22) Технически никаких ограничений со стороны решения нет, и Вы можете организовать рассылку любой сложности, но только если пользователь добавил бота ранее. Решением предоставляются инструменты — структура данных, процедуры, функции. Код самой рассылки необходимо писать самостоятельно.
24. Семён Павлюков (7OH) 31 01.09.17 14:35 Сейчас в теме
Добрались руки сделать работу через вёбхуки.
И тут неожиданно
{
	"ok": false,
	"error_code": 400,
	"description": "Bad Request: message text is empty"
}

при попытке отправить клавиатуру в ответ.
Всё то же самое, что работало через обновления - через хук выдаёт вот это.
(24) Видимо, всё-таки не всё то же самое. Если остальной функционал работает, то дело не в вебхуках. Данные клавиатуры должны быть заполнены, это неявное условие сервера Телеграм. Отпишитесь, помогло или нет.
26. Семён Павлюков (7OH) 31 01.09.17 16:16 Сейчас в теме +1 $m
Дело было в первоначальном обновлении.
Наверное стоит как-то сигнализировать - если про него "забыли".
28. Семён Павлюков (7OH) 31 01.09.17 17:26 Сейчас в теме
Ещё вопрос - форум глюканул или удалили сообщение.
Вопрос оплаты - что после оплаты мы получим - конфу можно будет вручную править ?
Или всё через Вас ?
Один регистр - я смотрю не на поддержке - это отлично (настройки пользователя) - и по нему уже есть исправления (могу поделиться).
Уже не хватает пары методов: редактирование сообщений и их удаление.
В регистр сейчас вношу эти 2 метода с параметрами - подскажете как вызвать добавленное ?
(28)
что после оплаты мы получим - конфу можно будет вручную править ?
да, конфигурация полностью открыта для внесения изменений и не содержит закрытых модулей

Или всё через Вас ?
нет, через меня ничего не надо проводить, но если у Вас будет сильное желание, я могу настроить бота любой степени сложности в рамках нового договора

Уже не хватает пары методов: редактирование сообщений и их удаление.
моё мнение, что для бота эти методы не нужны (во всяком случае, я не вижу области для их применения)


(28)
В регистр сейчас вношу эти 2 метода с параметрами - подскажете как вызвать добавленное ?
в NFR-версии Вы не сможете вызвать добавленное. В обычной версии нужно будет добавить довольно банальные процедуры в модуль ТелеграмСервер, по аналогии с ОтправитьСообщение
30. Семён Павлюков (7OH) 31 01.09.17 18:01 Сейчас в теме +1 $m
(29)
моё мнение, что для бота эти методы не нужны (во всяком случае, я не вижу области для их применения)

Для инлайн клавиатуры - для изменения текущего сообщения, а в конце - для удаления за собой мусора.
32. Кузнецов Максим (rolin555) 11 25.09.17 12:14 Сейчас в теме
Просто отправить сообщение нескольким пользователям бот может? Например взаимодействие и оповещение заданий (по расписанию)
(32) Добрый день, да.

ДанныеБота = Новый Структура;
ДанныеБота.Вставить("Жетон", Бот.Жетон);
ДанныеБота.Вставить("Бот", Бот.Ссылка)

Сообщение = Новый Структура;
Сообщение.Вставить("ИдентификаторЧата", ИдентификаторЧата); // Ранее сохранённый Идентификатор чата собеседника
Сообщение.Вставить("ТекстСообщения", "привет, Вася");

ТелеграмСервер.ОтправитьСообщение(Сообщение, НакопленныеДанные);
+

НакопленныеДанные = Новый Структура;
НакопленныеДанные.Вставить("ДанныеБота", ДанныеБота);
35. Филипп Денисов (denisovphilip) 23.10.17 15:58 Сейчас в теме
Кто нибудь работал через веб хуки? Похоже, что приложение не может правильно отправить самоподписанный сертификат...
Веб сервер использую IIS, в диспетчере сервера создаю сертификат, с помощью openssl конвертирую в .pem.
(35) с сертификатами действительно возникают проблемы, но не из за реализации. Через IIS я тоже не смог, из за его нежелания корректно работать с PEM. Попробуйте делать через переадресацию или установите в качестве веб-сервера Апач.
37. Филипп Денисов (denisovphilip) 23.10.17 17:03 Сейчас в теме
(36) При нажатии на "Отправить настройки" тело запроса не заполнялось Content-Disposition: form-data, т.к. способ запроса стоял "Простой".

Сертификат использовали самоподписанный или пришлось обратится к центрам сертификации?
(37) наберите мне, по возможности, контакты в решении
39. Семён Павлюков (7OH) 31 23.10.17 22:42 Сейчас в теме
(35) у нас через хуки, но сертификат заверенный.
Проблема не в приложении, а между сервером гугла и вашим вёб-сервером.
40. Филипп Денисов (denisovphilip) 24.10.17 01:07 Сейчас в теме +1 $m
(39)
(38)

Разобрался.
Код в конфигурации все таки пришлось поправить, если нужно показать в чем была проблема, Дамир, можете со мной связаться через ЛС.
Стек следующий: Win server 2012 R2 -> IIS 8 -> 1c 8.3

Чтобы сертификат телеграм счел валидным пришлось:
1) Купить доменное имя (сначала просто заходил на сервер по белому IP)
2) Купить заверенный сертификат (https://sslcertificate.ru/)
3) Подтвердить, что я являюсь владельцем сайта (в личном кабинете все описано)
4) Добавить сертификат и все корневые сертификаты на свой сервер
5) При установке веб хука к телеграму необходимо передавать не только открытый ключ самого сертификата но и открытые ключи всех узлов на пути сертификации! Проще говоря соберите в одном файле открытый ключ сертификата + содержимое файла Linux/CA_NAME.ca-bundle (если будете брать сертификат на sslcertificate.ru)

Если у кого-нибудь будут вопросы или нужно помочь с настройкой сервера - пишите, помогу.

Всем спасибо, за подсказки.
7OH; Amati77; +2 Ответить
(40) Добрый день. Рад, что Вы запустили работу через веб-хуки. По поводу ошибки, если Вы имеете ввиду "изменяет сохраняемые данные", то да, исправлю в релизе 1.02. Если у Вас есть ещё какие-то рекомендации для добавления в следующий релиз, буду благодарен за их формулировку. Спасибо.
42. Павел Булатов (dtybr) 14 07.11.17 15:21 Сейчас в теме
Добрый день.
Скажите интересуют ряд возможностей. Не уверен что они есть в API бота возможно нужно часть реализовывать через клиента.
Скажите что из перечисленного возможно в вашей разработке:
1. Ботом создавать и администрировать новые Чаты(Группы). Добавлять исключать пользователей из них. И себя самого туда добавлять. И быть администратором этой группы. Возможно это нужно реализовывать через клиента а не через бота. Для создания отдельных чатов для проектов.
2. Если бот получает команды находясь в определенном чате то иметь возможность в контексте знать в каком он чате получил сообщение для того чтобы обрабатывать его по правилам этого чата. Например переписка в каком чате ботом дублируется в определенный проект. Достаточно чтобы при получении сообщения бот через контекст знал в какой группе он получил сообщение.
3. Бот мог присутствовать в разных группах и отправлять сообщение в конкретную группу при появлении такой необходимости в 1с. Как это правильнее реализовать.
4. В условиях по которым определяется Сервис и выбирается обработчик. Иметь возможность выборки данных из Регистров и справочников для принятия решения о срабатывании условия.
5. Инлайн клавиатура?
6. При пере направлении боту нескольких сообщений получать их отдельными сообщениями в одной обработке.
(42) Добрый день!

1. Ботом создавать и администрировать новые Чаты(Группы). Добавлять исключать пользователей из них. И себя самого туда добавлять. И быть администратором этой группы. Возможно это нужно реализовывать через клиента а не через бота. Для создания отдельных чатов для проектов.


Шаблоны для этих методов в продукте не реализованы, но продукт сделан так, что, зная синтаксис, можно довольно легко использовать любой доступный сейчас и в будущем метод API Telegram Bot. То есть, другими словами, Вы сможете это всё сделать, но это потрубует больше сил, чем для реализованных шаблонов, и знаний с Вашей стороны

2. Если бот получает команды находясь в определенном чате то иметь возможность в контексте знать в каком он чате получил сообщение для того чтобы обрабатывать его по правилам этого чата. Например переписка в каком чате ботом дублируется в определенный проект. Достаточно чтобы при получении сообщения бот через контекст знал в какой группе он получил сообщение.


при получении сообщения доступна переменная ИдентификаторЧата, и на основании этой переменной Вы сможете сделать любую логику

3. Бот мог присутствовать в разных группах и отправлять сообщение в конкретную группу при появлении такой необходимости в 1с. Как это правильнее реализовать.


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

4. В условиях по которым определяется Сервис и выбирается обработчик. Иметь возможность выборки данных из Регистров и справочников для принятия решения о срабатывании условия.


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

5. Инлайн клавиатура?


есть

6. При пере направлении боту нескольких сообщений получать их отдельными сообщениями в одной обработке.


Вы имеете ввиду клиент на стороне 1С? Пока не реализован, будет в следующих релизах
44. Spenser (spenser123) 10.11.17 18:36 Сейчас в теме
Скачал для теста за SM - все по видео "учим привет", база файловая чистая в которую загрузил cf этот, при банальном привет и структуре ответа как в видео выдает
{
	"ok": false,
	"error_code": 400,
	"description": "Bad Request: message text is empty"
}
(44) значит, Вы неправильно настроили обработку ответа. Отправьте мне dt.
46. Spenser (spenser123) 13.11.17 10:19 Сейчас в теме
(45) все сделано по видео, скриншоты приложены (P.S. с ботами telegram из 1С дело имею довольно тесное и самописным вариантом вполне успешно рассылаю, здесь модули закрыты, потому не могу посмотреть в чем проблема, обработка рассматривается в целях удобства быстрой настройки и заведения новых ботов)
Прикрепленные файлы:
(46) Вы первый, кто говорит, что "не работает простейший функционал". Скиньте dt, я покажу, где Вы неправильно настроили.
48. Spenser (spenser123) 13.11.17 11:58 Сейчас в теме
(48) Сервис -> Обновление версии -> Обновить, и всё заработает
53. Семён Павлюков (7OH) 31 13.11.17 13:44 Сейчас в теме
(49) я тоже на эти грабли наступил.
Всё ждём 2-ю версию :)
(53) спасибо ) скоро будет, никак не доделаю
51. Spenser (spenser123) 13.11.17 12:49 Сейчас в теме
(50) да, спасибо, в видео не было об этом =)
johnnyshut23; +1 Ответить
(51) да, первая версия не лишена недостатков
55. Вадим Иванов (vadimgrt) 20.11.17 09:18 Сейчас в теме
Добрый день, Дамир. Потерялась ваша почта. Напишите ее пожалуйста. Есть вопросы по тех поддержке. или напишите мне vadim@grt.kz
johnnyshut23; +1 Ответить
56. Вэл Грекофф (Amati77) 20.11.17 09:31 Сейчас в теме
Покупатели первой версии 2ую получат бесплатно?
johnnyshut23; +1 Ответить
58. Игорь Доля (user676486_dolya) 24.11.17 12:28 Сейчас в теме
Поправьте ошибку связанную со вставкой нескольких Эмодзи в сообщение:
Функция ВставитьЭмодзи(РезультатСборки) Экспорт
...		
		//ПредставлениеЭмодзи = Сред(РезультатСборки, ПозицияЭмодзи + 7, 5);
		ПредставлениеЭмодзи = Сред(Ответ, ПозицияЭмодзи + 7, 5);
...
johnnyshut23; +1 Ответить
(58) добрый день, уже поправил в 1.02, который на днях всем разошлю. Можете заменить функцией https://yadi.sk/i/YcABhQBe3PzDdE
johnnyshut23; +1 Ответить
60. Семён Павлюков (7OH) 31 29.11.17 10:19 Сейчас в теме
Вчера пришлось немного пошаманить с кодом в клавиатурах и прочем.
Связано было с тем, что в регистры в 1.02 добавилось измерение БОТ.
johnnyshut23; +1 Ответить
61. Семён Павлюков (7OH) 31 29.11.17 13:02 Сейчас в теме +1 $m
Пытаюсь добавить метод
https://core.telegram.org/bots/api#sendmediagroup
Запарился - не выходит - на этапе сборки бока:
отдаю ему в медиа массив структур ("type, media", "photo", двДанныеФотки)
двоичные данные походу JSON не хочет принимать.
Буду рад, если кто-то сможет подсказать дельное
johnnyshut23; +1 Ответить
(61) этот метод ждёт массив InputMedia, под него нужно переделывать процедуры взаимодействия с api
johnnyshut23; +1 Ответить
(61) возможно добавлю в 1.03, но сейчас с ним не всё так просто. Первое — нужно отправить все медиафайлы на сервер и получить по ним ссылку. Второе — из этих ссылок составить массив и передать через sendmediagroup
johnnyshut23; +1 Ответить
(61) оказывается, не всё так просто и не все новые методы можно легко реализовать.... подправил в этой части публикацию, ещё раз большое спасибо
johnnyshut23; +1 Ответить
65. Семён Павлюков (7OH) 31 29.11.17 13:52 Сейчас в теме
(64) а не подскажете ещё один момент - новые методы изменитьсообщение и удалить как-то странно работают
может я где-то ошибюась
"Сообщение = Новый Структура;
Сообщение.Вставить("ТекстСообщения", ТекстСообщения);
Сообщение.Вставить("Клавиатура", "Ц: Стартовая клавиатура");
ОтправитьСообщение(Сообщение, НакопленныеДанные);

Сообщение = Новый Структура;
Сообщение.Вставить("ИдентификаторЧата", НакопленныеДанные.ИдентификаторЧата);
Сообщение.Вставить("ИдентификаторСообщения", НакопленныеДанные.ИдентификаторСообщения);
Сообщение.Вставить("ТекстСообщения", ТекстСообщения + " :: " + НакопленныеДанные.ИдентификаторСообщения);
ИзменитьТекстСообщения(Сообщение, НакопленныеДанные);"

текст не меняется
johnnyshut23; +1 Ответить
(65) В твоём примере, если я правильно понял, ты отправляешь сообщение и сразу же его меняешь. Так это не сработает, потому что ты не знаешь идентификатор сообщения. Попробуй через контекстные клавиатуры. В демо-боте есть примеры работы с этими методами.
johnnyshut23; +1 Ответить
67. Иван Карло (johnnyshut23) 29.11.17 13:59 Сейчас в теме
спасибо! очень интересная статья/разработка
68. Семён Павлюков (7OH) 31 29.11.17 14:00 Сейчас в теме
Ну я в базе делаю так - в контекст сохраняю ид только что отправленного сообщения.
После работы (нажатия нескольких кнопок) пытаюсь его удалить или изменить и ничего не происходит.
Я ведь могу получить ид только что отправленного сообщения ?
69. Семён Павлюков (7OH) 31 29.11.17 14:05 Сейчас в теме
(68) походу в журнал этот номер попадает - ну очень хочется его видеть и в Накопленных данных.
(68) Предусмотренными в решении методами — нет. А так — да. Когда ты отправляешь сообщение, сервер телеграм тебе в ответ присылает статус (смотри журнал). Соответственно, если ты хочешь сразу же увидеть ИД только что отправленного сообщения, я вижу два варианта:
1. дождись 1.03, так как есть в планах более детально анализировать ответы (в них ссылки на отправленные файлы и другая полезная информация)
2. анализируй ответ от телеграма, который содержится в

СтрокаJSON = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
функции ВыполнитьМетод(...)

в ответе должен быть присвоенный сообщению ИД
71. Семён Павлюков (7OH) 31 29.11.17 14:16 Сейчас в теме +1 $m
(70) спасибо. Добавил в СобратьВыполнитьМетод
"
резОтвет = ТелеграмAPI.ВыполнитьМетод(ДанныеБота, Метод, СтруктураОтправки);

ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(резОтвет);
ЗначениеОбъект = ПрочитатьJSON(ЧтениеJSON);

НакопленныеДанные.Вставить("РезультатМетода", ЗначениеОбъект);"
---
до выхода 1.03 - вполне устраивает
73. Артем Быстрицкий (artb) 01.12.17 12:31 Сейчас в теме
Дамир, периодический запрос, возникает "ошибка интернет соединения. Превышено время ожидания."
Пока не нажмешь "ОК", зависает база.
Есть ли рекомендации по устранению?
(73) добрый день! Мне кажется, речь идёт всё-таки о получении обновлений через обработчик ожидания формы?
75. Семён Павлюков (7OH) 31 01.12.17 13:45 Сейчас в теме
(74) было похожее что-то.
При интервале в 1 секунду - база подвисала - ставлю теперь 5.
В процедуре обработчика обновлений надо бы отключать обработчик перед поиском обновлений, а уже после включать.
78. Артем Быстрицкий (artb) 02.12.17 22:59 Сейчас в теме
(78) раз в секунду — может оказаться слишком часто, может оказаться, что фоновые задания 1С будут конкурировать. Выставляйте раз в три секунды, например.
77. Артем Быстрицкий (artb) 02.12.17 22:56 Сейчас в теме
(74) да, все верно. Ещё замечена ошибка - Непредвиденный символ при чтении JSON
(77) какой релиз? 1.01? Это сервер телеграма шалит, обновляйте на 1.02, там эта шалость, когда вместо JSON приходит HTML при ошибке 500, вынесена в попытку-исключение
76. Angry (Angry) 11 02.12.17 22:51 Сейчас в теме
Здравствуйте!

Как пользоваться данными чата, например: НастройкиПользователя
Т.е. как их установить?
И как установить контекст программно?
(76) Добрый вечер. НастройкиПользователя — это расширяемый регистр, добавляйте измерения, какие Вам нужно, и в модуле менеджера укажите их — они появятся в НакопленныеДанные.НастройкиПользователя, а записывать в него что-то Вы должны сами.

Контекст — это регистр сведений, программно добавляйте в него информацию через менеджер записи.
82. Angry (Angry) 11 03.12.17 10:24 Сейчас в теме +1 $m
(79) Про НастройкиПользователя раз есть структура, то сначала полагал, что и запись из нее идет автоматически - не угадал, а будет удобно.
Почему Вы саму структуру предлагаете дополнять в Функции ПолучитьСоставНастроек, почему бы не сделать там заполнение по метеданным?

Так же не хватает нормальной отладки: Два режима: отладка и рабочий.
1) В рабочем режиме происходит ошибка, то сообщение не должно передаваться в телеграмм, туда должно идти типа "что-то пошло не так сообщите администратору", и должно записываться в ЖР.
2) В режиме отладки нужно дополнительно сообщать какие модули отработали (какой сервис сработал, по какой обработке и с какой клавиатурой и т.п.).
Так же при отладке будет полезно в ЖР сыпать информацию об работе условий(какой сервис, набор условий что сравнивалось и что получилось).
(82) добрый день! По поводу настроек пользователя — да, перемудрил, переделаю в 1.03
По поводу отладки — тоже добавлю более подробную в 1.03, спасибо
83. Angry (Angry) 11 03.12.17 11:04 Сейчас в теме +1 $m
(79) Как программно узнать значение набора условий?
В сортировке либо нужны отрицательные значения, либо по умолчанию должна быть значительная цифра (напр. 1000)

Как идет установка контекста?
Есть сервисы, есть сортировка. Первый сервис изменяет контекст, во втором сервисе при проверке контекст ещё не изменен.
(83) значение набора условий можно узнать программно, используя функцию ПроверкаНабораУсловий из модуля менеджера Справочники.ТелеграмНаборУсловий

Сортировку тоже подправлю в 1.03

Установка контекста происходит в обработке или программно. По поводу "Первый сервис изменяет контекст, во втором сервисе при проверке контекст ещё не изменен." прошу расписать подробнее.
86. Angry (Angry) 11 03.12.17 12:20 Сейчас в теме
(85) Установка контекста: Обработка - действие над контекстом.
Задача в том что есть сервис, который отвечает на конкретную команду. а есть сервис, который отвечает в случае, если другие не ответили.

Как можно передать в генерируемую программно клавиатуру параметр?
Например: вывод списка заданий с кнопками - принять и отказаться.
Будет несколько сообщений, к каждому прицеплено меню.
87. Angry (Angry) 11 03.12.17 12:26 Сейчас в теме
(85)
значение набора условий можно узнать программно, используя функцию ПроверкаНабораУсловий из модуля менеджера Справочники.ТелеграмНаборУсловий

А какой интерфейс функции, или где посмотреть пример?
88. Angry (Angry) 11 03.12.17 12:52 Сейчас в теме
Как заполнить регистр сведений: Телеграм: описание параметров методов?
(88) посмотрите код обработки обновления в части заполнения этого регистра, там две строки, два вызова одного метода
91. Angry (Angry) 11 03.12.17 15:35 Сейчас в теме
(89) Понял.
Если встраиваем в типовую, надо учитывать, что БСП не любит давать администратору роли кроме "Полные права".
Т.о. если в ИБ есть полные права, то не надо проверять есть ли у пользователя роль "ТелеграмАдминистратор".
Из-за этого не получилось обновить. И возник вопрос.
92. Семён Павлюков (7OH) 31 03.12.17 20:56 Сейчас в теме
(91) в БСП есть варианты с исключением - методами самой БСП.
93. Angry (Angry) 11 04.12.17 00:20 Сейчас в теме
(92)
в БСП есть варианты с исключением - методами самой БСП.

Поясните о чем Вы.
94. Семён Павлюков (7OH) 31 04.12.17 16:31 Сейчас в теме
(93) не совсем типовой (походу кот-то красиво дописал просто)
Справочник "ПрофилиГруппДоступа" - модуль менеджера - функция "ПоставляемыеПрофили"
после
ОписанияПрофилей.Добавить(ОписаниеПрофиляАдминистратор);
добавлена функция
УправлениеДоступомПереопределяемый.ПослеЗаполненииПоставляемыхПрофилейГруппДоступа(
ОписанияПрофилей, ПараметрыОбновления);
--
Процедура ПослеЗаполненииПоставляемыхПрофилейГруппДоступа(ОписанияПрофилей, ПараметрыОбновления) Экспорт
	
	Для Каждого элементПрофиля Из ОписанияПрофилей Цикл
		
		Если элементПрофиля.Имя = "Администратор" Тогда
			
			элементПрофиля.Роли.Добавить(Метаданные.Роли.внАдминистраторЖурналаРегистрации.Имя);
			элементПрофиля.Роли.Добавить(Метаданные.Роли.ТелеграмАдминистратор.Имя);
			
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры
Показать

---
По идее можно было прям на месте.
Раз уж мы встраиваем доработку - почему бы и не добавить в профиль роль ?
(88) пишите в телеграм или звоните, Ваши вопросы - это в чистом виде поддержка при внедрении
95. Семён Павлюков (7OH) 31 07.12.17 13:48 Сейчас в теме +1 $m
Хотелось бы писать вот так
НакопленныеДанные.КонтекстСеанса.Вставить(ПараметрСообщенияУдалить, НакопленныеДанные.РезультатМетода.result.message_id);

Но, на сколько я понимаю - эти данные каждый раз перечитываются.
Приходится писать громоздко во так
РегистрыСведений.ТелеграмКонтекстСеансов.ИзменитьПараметрКонтекстаСеанса(
			НакопленныеДанные.ДанныеБота.Бот,
			НакопленныеДанные.ИдентификаторЧата,
			ПараметрСообщенияУдалить,
			Перечисления.ТелеграмДействияСКонтекстом.Установить,
			НакопленныеДанные.РезультатМетода.result.message_id
		);
(95) НакопленныеДанные — это структура, да, которая каждый раз в каждом сообщении инициализируется заново.

Громоздко, согласен, добавлю в 1.03 какой-то способ попроще, без указания бота и идентификатора чата
Оставьте свое сообщение