Telemonitor — объединяем Telegram и 1С

Не так давно Telegram предоставил API для создания ботов. Telemonitor — программа, позволяющая легко настроить собственного бота для работы с 1С.

Что это такое?

Telegram набирает всё большую популярность. Недавно сервис предоставил платформу для создания ботов. Telemonitor — это прослойка между API Telegram и 1С/OneScript, позволяющая легко настроить функционал собственного бота. Кто-то задастся вопросом, а зачем вообще нужна какая-то дополнительная программа, ведь все можно организовать и в 1С. Конечно можно, но, на мой взгляд, это не всегда удобно. Во-первых, более или менее удобный функционал есть только в версии 8.3. Во-вторых, надо постоянно держать запущенным сеанс. Telemonitor, конечно, тоже имеет свои недостатки, но работать с ним, думаю будет удобнее.

Как это работает?

Схема работы

Telemonitor опрашивает бота с заданной периодичностью. При получении новой команды программа создает соединение с базой данных через ComConnector, и выполняет указанный для команды код, через вызов процедуры Выполнить(). Количество COM-соединений никак не ограничивается, поэтому одновременно можно отправлять боту несколько команд.

Как настроить своего бота?

Как зарегистрировать бота рассказывать, думаю, смысла нет. В интернете полно примеров, на Инфостарте, кстати, тоже есть очень полезная публикация. И так, открываем каталог Telemonitor и видим файл settings.ini. В нем необходимо задать token для бота, полученный при регистрации. При желании можно изменить интервал опроса бота и параметры соединения. Теперь рассмотрим папку databases, в ней будем описывать базы и команды.

Структура каталогов

Для каждой базы данных, в которой будем использовать бота создаем папку с произвольным названием латиницей. Для примера я использую базы FileAccounting82 и ServerTrade83. В каждой папке необходимо разместить файл database.ini, в котором указывается строка соединения с базой (сейчас в меня полетят тухлые помидоры, но да, пароль хранится в чистом виде) и используемая версия 1С. Кстати, 8.1 не поддерживается. Кодировка у ini файла должна быть Windows-1251. 

Теперь настало время описать команды. В той же папке создаем файлы *.tcm. Каждый такой файл — это просто текст в кодировке UTF-8, содержащий описание команды и код, выполняемый в 1С. Первой строкой идет описание, далее — исполняемый код.

Команда, исполняемая ботом

Если мы хотим увидеть какой-либо отклик от бота, тогда необходимо заполнить переменную Результат. В данном примере бот вернет описание пользователей, работающих в базе или скажет: "Нет активных пользователей".  При создании своих команд помните, что весь код помещается в конструкцию Выполнить(), поэтому он имеет некоторые ограничения, думаю сами догадываетесь какие. Чтобы бот вернул файл, например, вы хотите получать какой-нибудь отчет или прайс, то в коде команды необходимо заполнить переменную Результат_Файл.

Что получилось в итоге?

После того, как мы создали каталоги для баз данных и файлы с командами, наш бот знает, какие команды у него есть, и что с ними делать.

Имя каждой команды складывается из имени базы данных и имени файла tcm. Запросим у бота список команд. И так, бот, /start !

Список команд бота

Ух ты! Работает! Давай-ка, бот, нам список активных пользователей.

Выполнение команды

Эх, не было печали, а теперь вот каждое утро общаюсь с ботом и смотрю, все ли с базами в порядке 🙂

Что дальше?

Программу, она кстати использует NET Framework 2.0, писал для собственных нужд, но, если кому пригодится, буду очень рад. Буду рад предложениям по улучшению и расширению функционала.

Последние изменения:

  • 12.08.2026
  • Добавил команду /screen для получения скриншота.
  • Добавил возможность отправки файлов.
  • 23.10.2026
  • В команду теперь можно передавать параметры. В 1С все параметры будут доступны в реквизите "ПараметрыКоманды" через запятую
  • В settings.ini добавил параметр [SafeMode1C] для запуска кода в небезопасном режиме.
  • 17.03.2026
  • Добавил ограничение доступа по имени пользователя Telegram (username). Ограничения можно задать как на бота целиком, так и на базу данных. Для этого в файлах settings.ini и database.ini есть секция [WhiteList] и параметр Users. Именя пользователей, которым разрешен доступ, следует указывать через запятую. В этой же секции файла settings.ini можно ограничить доступ пользователям к получению скриншотов. Имя параметра, отвечающего за данное ограничение — ScreenOwners
  • 15.04.2026
  • Добавил поддержку команд с запросом параметров. Для того, чтобы бот запросил параметр, необходимо в коде команды использовать переменную ДиалогСПараметрами. Ниже представлен пример команды с запросом трех параметров
  • МассивПараметров = Новый Массив();
    Подстроки = СтрЗаменить(ПараметрыКоманды, ",", Символы.ПС);
    Для Сч = 1 По СтрЧислоСтрок(Подстроки) Цикл
    Параметр = СокрЛП(СтрПолучитьСтроку(Подстроки, Сч));
    Если ЗначениеЗаполнено(Параметр) Тогда
    МассивПараметров.Добавить(Параметр);
    КонецЕсли;
    КонецЦикла;
    Если МассивПараметров.Количество() < 3 Тогда
    ДиалогСПараметрами = Истина;
    Заголовки = Новый Соответствие();
    Заголовки[0] = "Введите первый параметр:";
    Заголовки[1] = "Отлично! Теперь укажите второй:";
    Заголовки[2] = "Почти готово! Третий параметр и заканчиваем:";
    Результат = Заголовки[МассивПараметров.Количество()];
    Иначе
    // Здесь выполнение какого-то кода...
    Результат = "Команда выполнена со следующими параметрами:" + Символы.ПС;
    Результат = Результат + "1) " + МассивПараметров[0] + Символы.ПС;
    Результат = Результат + "2) " + МассивПараметров[1] + Символы.ПС;
    Результат = Результат + "3) " + МассивПараметров[2];
    КонецЕсли;

    Ну и результат работы

    Команда с запросом параметров Команда с запросом параметров

    При написании таких команд надо понимать, что Telemonitor не поддерживает COM-соединение между запросами параметров у пользователя. При передаче каждого параметра создается новое соединение и в код каманды передаются все полученные параметры, поэтому в описании команды нет смысла инициализировать какие-либо переменные и выполнять действия, в надежде, что они будут доступны при передаче следующего параметра.

  • Также, теперь в коде команды есть доступ к имени пользователя Telegram, и полному идентификатору команды. Для этого используются переменные username, first_name, last_name и command
  • 22.11.2026
  • Добавлена поддержка OneScript(1Script). Для тех, кто не в курсе, что это такое вот ссылка и вот. Скрипты необходимо размещать в папке scripts c расширением *.os. Примеры скриптов есть в архиве с программой. Команды для OneScript имеют некоторые особенности, но не сильно отличаются от таковых для 1С. Все пробелы в параметрах, переданных в команду заменяются на знак подчеркивания "_".
  • 06.04.2026
  • Команды для OScript можно делать в виде кнопок. Для этого файл команды должен быть с расширением *.os_b
  • 18.04.2026
  • Добавлена поддержка SOCKS5. В settings.ini секция [Proxy], параметр Type

P.S. Писал быстро, поэтому возможны какие-нибудь ошибки. Буду благодарен, если вы сообщите о таковых.

98 Comments

  1. shalimski

    Отличная идея! Все работает.

    Reply ↓
  2. roofless

    тут http://infostart.ru/public/372352/ нужна платформа не меньше 8.3.6, какая нужна для вашего телемонитора?

    Reply ↓
  3. salexdv

    (2) roofless, 8.2 и выше.

    Reply ↓
  4. didkovskij

    Спасибо, всё работает!

    А есть возможность возвращать не текст, а прикреплять файл, например?

    Reply ↓
  5. salexdv

    (4) didkovskij, нет, пока только текст. Можно доработать. Опишете, зачем такое надо?

    Reply ↓
  6. salexdv

    (4) didkovskij, добавил такую возможность. Для примера код команды:

    Результат_Файл = КаталогВременныхФайлов()  + «result.xls»;
    ТабДокумент = Новый ТабличныйДокумент();
    ТабДокумент.Область(1, 1, 1, 1).Текст = «Тестовый файл»;
    ТабДокумент.Записать(Результат_Файл, ТипФайлаТабличногоДокумента.XLS97);

    Т.е. необходимо заполнить переменную Результат_Файл, тогда Telemonitor отправит указанный файл боту.

    Reply ↓
  7. sml

    ТС, похоже с планировщиками оконными не знаком?

    Reply ↓
  8. salexdv

    (7) sml, про что речь?

    Reply ↓
  9. Операция1Ы

    Круто, а исходники будут?

    Reply ↓
  10. salexdv

    (9) Операция1Ы, не планировал выкладывать.

    Reply ↓
  11. didkovskij

    (6) например в 1с формируется файл (отчёт, график и т.п.) хочется его прикрепить, чтобы пользователь смог его посмотреть. Спасибо за возможность!

    Reply ↓
  12. didkovskij

    (7) sml, ну так то можно и web сервис поднять и приложение под андроид написать. Одну и ту же задачу можно кучей разных способов реализовать. Мне идея и реализация понравилась. Например, кто захочет тот и получит нужную информацию, а не так как в планировщике по заданным параметрам, выполнять одно и тоже действие 🙂

    Reply ↓
  13. Darklight

    Что-то фишку не просёк. Идея общаться с ботом текстовыми командами не впечатлила

    Разве не удобнее

    1. Сделать отдельную БД, которая будет собирать состояния из целевых баз и показывать сводно при старте и по отдельности на весь экран (без каких-либо запросов со стороны оператора)

    2. Нужные дополнительные сведения получать в один-два клика мыши в отельных окнах

    3. Получать из базы периодические рассылки важной контроллируемой информации по электронной почте / SMS и по любым иным каналам сваязи

    Reply ↓
  14. CratosX

    (13) Darklight,

    Что-то фишку не просёк.

    как минимум Телеграм быстр и не требователен, зачастую уже установлен. Установка «отдельной базы» тяжела, требует мобильной платформы

    Reply ↓
  15. salexdv

    (13) Darklight, здесь уже писали про планировщик заданий, что в принципе равносильно периодическим рассылкам, как пишите вы.

    Но идея бота не в периодических оповещениях, а в предоставлении информации по требованию. Мне не нужно получать каждый день SMS (электронное письмо и т.д.) о том что все хорошо/все пропало. Я хочу видеть информацию, только когда у меня душа заболела.

    Reply ↓
  16. yuran2000

    Идея хорошая, но не везде есть возможность запускать чужие программы.

    Пытаюсь на 1С это же написать, по обмену сообщениями трудности не возникло, но вот отправку файла так и не победил.

    Думаю, что не туда вставляю Токен.

    Т.е., что б бот что-то сделал в базе и отправил отчет в виде файла.

    Может, распишите принцип этого процесса?

    Reply ↓
  17. salexdv

    (16) yuran2000, я сам не с первого раза отправил файл, скорее всего ошибка в формировании тела multipart/form-data и определении ContentLength. Попробую сделать в 1С такое и напишу.

    Reply ↓
  18. salexdv

    (16) yuran2000, к сожалению мне не удалось отправить данные 1С на api.telegram.org с помощью multipart/form-data. Испытывал на методе sendMessage, передавая поля chat_id и text. Передавать пробовал с помощью WinHttp.WinHttpRequest.5.1, Msxml2.SERVERXMLHTTP и встроенного HTTPСоединение. Если указывать протокол http, то возвращается ошибка 301, либо text is empty, а если использовать, как положено, https — вылет по таймауту. Причем тело multipart/form-data точно правильное взял его из Telemonitor.

    Если найдете решение, дайте знать.

    Тело запроса выглядит так

    ————ebcd4ec6dea948099c4c47ca5c9541bd
    Content-Disposition: form-data; name=»chat_id»
    
    XXXXXXXXX
    ————ebcd4ec6dea948099c4c47ca5c9541bd
    Content-Disposition: form-data; name=»text»
    
    test
    ————ebcd4ec6dea948099c4c47ca5c9541bd—

    Показать

    Reply ↓
  19. salexdv

    (19) eugeniezheludkov, возможно, но мне и меньшего объема сообщение не удавалось отправить. Пример сообщением выше (18)

    Reply ↓
  20. FSerg
    Reply ↓
  21. salexdv

    (21) FSerg, спасибо! Обязательно попробую

    Reply ↓
  22. el-gamberro

    (21) FSerg, спасибо за разжевывание. 🙂

    Тоже такое попробую.

    Reply ↓
  23. mrmasson

    Идея хороша. решил воспользоватся. Опишу недостатки, которые мешают в полной мере насладиться разработкой:

    1. мало документации с Вашей стороны.

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

    Ошибка при вызове метода контекста (ЗапуститьПриложение)
    Установлен безопасный режим. Выполнение операции запрещено

    а так однозначный плюс

    Reply ↓
  24. salexdv

    (24) mrmasson, спасибо за отзыв!

    Да, действительно весь код запускается во внешней обработке, которая создается в безопасном режиме.

    Я добавлю в настройки возможность запускать небезопасный режим.

    А насчет документации даже и не знаю, что сказать. Я тут постарался максимально просто и доступно объяснить как все работает. Как создавать свои команды для бота написал. Если есть какие-то вопросы, пишите, обязательно отвечу.

    Reply ↓
  25. salexdv

    (24) mrmasson, добавил возможность запуска кода в небезопасном режиме. Нужно в settings.ini добавить строку

    [SafeMode1C]

    Enabled=0

    Reply ↓
  26. JohnyDeath

    Я все-таки не понял, почему отдельная программа, а не планировщик или http-сервис в самой 1С? Зачем лишняя прослойка?

    Reply ↓
  27. salexdv

    (27) JohnyDeath, чтобы получать информацию, когда она действительно нужна. Не будем брать в расчет всякие отказы, когда что-то не работает. В этом случае, конечно, удобнее планировщиком опрашивать какие-то параметры и, в случае возникновения критической ситуации, оповещать об этом.

    Telemonitor немного про другое. Например, для обновления конфигурации БД требуется реструктуризация, которую невозможно выполнить с работающими пользователями. Дело к вечеру, а пользователи все работают. С помощью Telegram можно отправить команду боту, пусть будет /MyBase_GetActiveUsers. Когда увидим, что пользователей нет, можно запустить /MyBase_UpdateDB.

    Другой пример, хотим увидеть сколько задач выставлено нам в базе, отправляем /MyBase_GetTasks UserID. Или нужно узнать сколько новых заказов ждут обработки, тогда /MyBase_GetNewOrders.

    Вариантов возможного использования масса, причем использовать бота может не только админ/программист, а директор, менеджер, бухгалтер и т.д.

    Надеюсь теперь идея ясна.

    Reply ↓
  28. JohnyDeath

    (28) идею-то я сразу понял. Я не понял почему все это нельзя обрабатывать на стороне 1С, используя, например, http-сервис?

    Или, если лень заморачиваться с публикацией сервиса, создать регламентное задание, в котором будет периодически вызываться getUpdates телеграма?

    Вы же создаете дополнительную прослойку, которая плюс ко всему имеет закрытый код.

    Reply ↓
  29. salexdv

    (29) JohnyDeath, программа использует NET.Framework, поэтому посмотреть код, нет никаких проблем.

    Http-сервисы, конечно, можно использовать, можно даже и без них обойтись, но тогда придется либо изменять конфигурацию и держать web-сервер, либо постоянно держать открытым сеанс с обработкой, которая будет вызывать getUpdates. Так что в любом случае, как вы говорите «прослойка», какая-никакая, а нужна. Весь вопрос в том, самому её делать, либо взять готовую.

    Моё решение позволяет все делать без изменения конфигурации(й) и не писать самому взаимодействие с Telegram API, а сосредоточится только на создании функционала бота.

    Как я уже отмечал ранее, программа изначально писалась для собственных нужд, поэтому я никого не призываю пользоваться именно моим «велосипедом», тут каждый волен сделать свой.

    Reply ↓
  30. nomadon

    (30) и вот еще решение))

    http://infostart.ru/public/416348/

    Reply ↓
  31. salexdv

    (31) nomadon, спасибо я оценил уже. Отличная вещь!

    Reply ↓
  32. maxx

    Подскажите, а то мало знаю по всякими месенджерам, боты, которые вы создаёте, доступны абсолютно другим пользователям Telegram. То есть я могу найти вашего бота и им воспользоваться злонамеренно?

    Reply ↓
  33. salexdv

    (33) maxx, если вы знаете имя бота, то сможете его найти и пользоваться

    Reply ↓
  34. JohnyDeath

    (33), (34) но вроде как в боте можно прописать желаемых участников или схему входа (по паролю и т.п.), т.е. при желании левые акки к вам не придут

    Reply ↓
  35. salexdv

    (35) JohnyDeath, можно команды без пароля не принимать. Да и найти бота не зная его точного имени сложно

    Reply ↓
  36. adhocprog

    Прикольная штука )

    Reply ↓
  37. amitin78

    Всем Доброго вечера. Подскажите студенту как заполнить файл settings. Всем заранее спасибо.

    Reply ↓
  38. amitin78

    Разобрался.

    Просьба подсказать как задать выполнение команды Боту в 1с. Для примера сделать Синхронизацию. Сам так сказать процесс.

    Reply ↓
  39. amitin78

    И само собой как запустить саму 1с перед этим. Буду благодарен за подсказки.

    Reply ↓
  40. salexdv

    (40) amitin78, 1с запускать не надо. Telemonitor сам создает Com-соединение, когда получает команду. Что именно вам не понятно с командами? Файлы *.tcm — это и есть описание команд. Имя файла — это имя команды. Первая строка в файле — тектовое описание команды, начиная со второй строки — исполняемый в 1С код.

    Reply ↓
  41. amitin78

    salexdv Спасибо с этим разобрался.

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

    Reply ↓
  42. salexdv

    (42) amitin78, так запускаете батники через 1С, и ничего дорабатывать не придется 🙂

    Напишите в команде

    ЗапуститьПриложение(<ПутьКФайлуBat>);
    Reply ↓
  43. amitin78

    (43) Фся фишка запускать все по команде удаленно с телефона, планшета, компьютера. Как я с телефона дам команду в 1с? А вот через Ваш Telemonitor должно получиться. Просьба доработать функционал. Благодарных пользователей будет много как поймут плюсы. Спасибо.

    Reply ↓
  44. salexdv

    (44) amitin78, вы, видимо, не совсем поняли принцип работы. Посмотрите на схему вначале статьи. Вы с телефона в Telegram отдаете команду, а уже Telemonitor выполняет код команды в 1С. Получается вы на смартфоне выбираете команду «ЗапуститьBAT», а на компьютере, где стоит 1С и Telemonitor выполняется код

    ЗапуститьПриложение(<ПутьКФайлуBat>);

    . Таким образом через 1С запускается батник в системе.

    Reply ↓
  45. amitin78

    Это(45) Это конечно да. То есть без 1с вообще не будем никакого действия? А вот скан например тоже средствами 1с сделан? Если тогда моя идея идет немного дальше. Запустить Батник не привлекая 1с. Это не возможно сделать?

    Reply ↓
  46. amitin78

    salexdv как подсказали получилось УРА (ЗапуститьПриложение(<ПутьКФайлуBat>);).

    Вопрос: создаю свой файл для команды *.tcm, не сразу подхватывает Телеграмм как команду. Ему время надо для этого, просьба уточнить.

    Reply ↓
  47. salexdv

    (47) amitin78, все команды считываются только при запуске Telemonitor. На ходу новые команды не подхватываются.

    Reply ↓
  48. Il

    Классный и удобный бот!

    есть маленькая хотелки:

    — возможно ли в ini файлах баз прописывать каким юзерам телеграмма есть доступ? соответственно у этого юзера будут видны только команды его базы.

    — и сделать разрешение/запрет на команды /screen также нужным юзверям?

    ЗЫ. можу простимулировать на пивасик, для поднятия боевого тонуса 😉

    Reply ↓
  49. salexdv

    (49) Il, а почему именно в ini базы данных? Может лучше в глобальных настройках бота?

    Reply ↓
  50. Il

    (50) в глобальном ini нет списка баз.

    а так к примеру база А иванову, петрову, база Б всем, база С петрову и сидорову…

    Reply ↓
  51. Il

    (50) ну и до кучи (что-то я разошелся ::) передавать в 1с параметром имя юзверя телеги (тоже можно вынести в настройку вкл/выкл)

    Reply ↓
  52. salexdv

    (51) Il, ограничение по именам пользователей добавил. Описание в секции «Последние изменения».

    Reply ↓
  53. Il

    (53) вот спасибо!

    скажи куда благодарность можно перевести (тел, ya, visa)?

    такие интересные идеи уже мона реализовать с этим функционалом…

    Reply ↓
  54. salexdv

    (54) Il, спасибо сказали, уже хорошо 🙂 Я в первую очередь для себя делал программу, а раз ещё кому-то пригодилось — вообще отлично.

    Reply ↓
  55. Andrey_R91

    Доброго времени суток.

    Отписываюсь в данной теме так как она более приближенная к моей задаче.

    Для начала опишу конечную цель:

    Нужно с определенных чатов удалять/добавлять пользователей, имея их номера телефонов.

    Я так понимаю, бот телеграма нам не совсем здесь интересен, по этому нужно использовать именно методы обычного API.

    В API есть методы управления чатами. Но не совсем понятно как можно узнать ID добавляемого контакта, зная его телефон?

    Может кто сталкивался с подобной ситуацией? Кто-то сталкивался с взаимосвязью 1С — API Telegram ?

    Буду благодарен за направления мыслей в нужную сторону 🙂

    Reply ↓
  56. salexdv

    (56) Andrey_R91, к сожалению, не встречал такого функционала

    Reply ↓
  57. Dobermann86

    Кто нибудь подскажет как ботом получить файл(или фото) в 1С и дальше сохранить его на HDD?

    Reply ↓
  58. salexdv

    (58) Dobermann86,

    Чтобы бот вернул файл, например, вы хотите получать какой-нибудь отчет или прайс, то в коде команды необходимо заполнить переменную Результат_Файл.

    Сформируйте файл в 1С, сохраните на диск и поместите полное имя файла в переменную Результат_Файл

    Reply ↓
  59. salexdv

    (58) Dobermann86, вот здесь (6) я показывал, как такое сделать.

    Reply ↓
  60. zhurba

    Оч.полезная штуковина! Спасибо ))

    Пожелания 🙂

    a. Было бы очень хорошо запускатьTelemonitor как сервис (!!!)

    b. Хорошо бы иметь возможность настраивать «белый» список пользователей для каждой команды;

    с. мелочь, но все же — в контекстное меню по иконке в трее добавить «Перезапустить».

    Reply ↓
  61. zhurba

    Вдогонку:

    d. Передавать в 1С имя пользователя, который отправил команду.

    Reply ↓
  62. zhurba

    (62) И еще одна «хотелка»:

    е. Хотелось бы иметь возможность в папку с описанием базы положить файл «nocommand.tcm» и передавать в него сообщения от пользователя без слеша — не команды. Это позволит реализовывать «многоходовые» команды (как в @BotFather и пр.), т.е. сначала бот получает команду, а потом задает пользователю вопрос и ждет от него ответ (команды с параметрами менее юзабильные).

    Reply ↓
  63. salexdv

    (63) zhurba, спасибо за отзыв и пожелания. У меня была мысль реализовать «диалог» с ботом, но пока, к сожалению, совсем нет на это времени. Программа писалась буквально за 2 дня для решения одной насущной проблемы. Все остальные доработки делаю, когда есть свободное время, а это случается нечасто.

    Reply ↓
  64. zhurba

    Обнаружилась неприятная «фича» 🙁

    В чате случайно задел кнопку с микрофоном. Записанное аудио отправилось боту и тот «повис» — все последующие команды не обрабатываются. То же самое происходит если отправить боту фоточку.

    «Полечил» бота отправкой через браузер команды getUpdate со смещением.

    Хотел подключить к боту своих юзверей, но увы, придется пользоваться только мне одному…

    Reply ↓
  65. salexdv

    (65) zhurba, проверю

    Reply ↓
  66. salexdv

    (65) zhurba, ошибка, приводившая к зависанию, исправлена.

    Reply ↓
  67. salexdv

    (63) zhurba, добавил поддержку диалоговых команд. Теперь код команды можно описать так, чтобы бот запрашивал дополнительные параметры. Если есть возможность, проверьте и отпишитесь.

    Reply ↓
  68. brrart

    Отличная штуковина. Всё просто и понятно. Супер!!!!

    Reply ↓
  69. Vladimir_Konyrev

    (68)

    Добрый день, подскажите можно ли организовать чат без установки каких-либо доп. приложений на сервер (все работают в терминале)?

    Reply ↓
  70. salexdv

    (70) Vladimir_Konyrev, приложение в каком-то смысле для создания чата, но не между людьми. Диалог Человек <-> Бот Telegram — вот назначение программы. Для создания чатов между сотрудниками вам надо найти что-то другое.

    Reply ↓
  71. Снежный_человек

    Добрый день! Если включить бота в группу, то он понимает только команду /start. Если общаться с ботом напрямую, то понимает все команды, созданные мной в настройках. Хотелось бы, чтоб в группе он тоже работал. В группе все видят, кто, когда, какие команды боту давал.

    Reply ↓
  72. salexdv

    (72) Снежный_человек, с группами не работал. Обязательно проверю

    Reply ↓
  73. Снежный_человек

    Есть еще вопрос, долго ли ждет бот параметра, когда используется команда с параметрами? Настраивается ли таймаут?

    Reply ↓
  74. salexdv

    (74) Снежный_человек, таймаута нет, бот будет ожидать бесконечно

    Reply ↓
  75. Снежный_человек

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

    Ошибка при вызове метода контекста (Записать)

    ЗаявкаОбъект.Записать(РежимЗаписиДокумента.Проведение);

    по причине:

    Ошибка при выполнении обработчика — ‘ПередЗаписью’

    по причине:

    Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ПередЗаписьюЗаявки ()

    Reply ↓
  76. Снежный_человек

    Процедура «ПередЗаписьюЗаявки()» находится в общем серверном модуле и на нее ссылается мной добавленная подписка на событие. Первый ее параметр — Источник

    Reply ↓
  77. Снежный_человек

    Подозреваю, что то не так у вас в приложении с исполнением кода 1С &НаКлиенте и &НаСервере

    Reply ↓
  78. salexdv

    (78) Снежный_человек, в описании программы сказано, что весь код выполняется через метод Выполнить(). Всё это работает в режиме внешнего соединения. Проверьте свою конфигурацию на работу в режиме «Внешнее соединение» и «Внешнее соединение (клиент-сервер)». Думаю, проблема как раз в этом.

    Reply ↓
  79. Снежный_человек

    Другими словами, если использовать подписку на событие документа «ПередЗаписью», то при исполнении процедуры этой подписки в общем серверном модуле с использованием параметра «Источник» в клиент серверном варианте не работает. Текст ошибки выше.

    Reply ↓
  80. Снежный_человек

    Да, все верно. В указанном общем модуле установил галку «Внешнее соединение». Все заработало.

    Reply ↓
  81. Снежный_человек

    Добрый день! Поставил нескольким юзверям. Обнаружил проблему зависания приложения телемонитор, причем, если жать на зависший экземпляр правой кнопкой мыши в трэе, то нет появления меню Выход. причем бот реагирует на команду старт, выдает список доступных команд, но на полученную из списка команду никак не реагирует. Лечится убиванием процесса telemonitor в диспетчере задач и перезапуском. До следующего повторения зависания.

    Reply ↓
  82. Снежный_человек

    Файл лога ошибок не создается

    Reply ↓
  83. salexdv

    (83) Снежный_человек, у себя такого поведения не встречал. Что за операционная система?

    Reply ↓
  84. Снежный_человек

    Windows 2008 Server. Я, правда, создал каждому юзеру отдельного бота и запускал несколько приложений в одном терминальном сеансе, причем переименовывал файл Telemonitor.exe в ****.exe, , где *** имя пользователя латиницей, чтобы видеть, чья именно копия телемонитора отваливается. Сейчас оставил только одну копию, проверить на предмет конфликта запущеных копий. Пока работает, часа 2

    Reply ↓
  85. Il

    (72) Присоединяюсь к просьбе… полезная фишка

    Reply ↓
  86. salexdv

    (103) Il, к какой просьбе? Если вы про команды с параметрами, то они есть и работают.

    Reply ↓
  87. Il

    (104) я про добавление бота в группу.

    Reply ↓
  88. Il

    вопрос (72), про добавление бота в группу еще смотрели?

    Reply ↓
  89. yuran2000

    С крайними версиями БП 2.0.66.6 и 3.0.46.16 перестало работать, ждет нажатия «ОК»:

    15.01.2017 23:31:03 — debug (3): wt 844

    ! 15.01.2017 23:31:03 — Не удалось выполнить команду «/FileAccounting83_ActiveUsers»: Адресат вызова создал исключение.

    Предупреждение безопасности

    Открывается «Выполнение произвольного кода для Telemonitor» из файла «R:SoftTelemonitorexecuter83.tep».

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

    Если с источником нет договоренности о разработке дополнительных модулей,

    или есть сомнения в содержимом файла, то его не рекомендуется открывать,

    поскольку это может нанести вред компьютеру и данным.

    Разрешить открывать данный файл?

    15.01.2017 23:31:03 — debug (5): Команда /FileAccounting83_ActiveUsers выполнена

    15.01.2017 23:31:03 — debug (5): url: https://api.telegram.org/bot{0}/sendMessage

    15.01.2017 23:31:03 — debug (5): response: Ошибка при выполнении команды

    Reply ↓
  90. yuran2000

    (122) Насчет безопасности рашел решение:

    http://its.1c.ru/db/v838doc#bookmark:dev:TI000001873

    Reply ↓
  91. salexdv

    (124) Спасибо за ссылку.

    (123) Такое, к сожалению, реализовать не смогу т.к. программа построена совсем на других принципах и такое поведение не планировалось с самого начала.

    Reply ↓
  92. user859444

    (1) Уже ничего не работает:

    15.12.2017 16:24:36 — debug (8): Запуск команды /ERP_ActiveUsers на выполнение

    15.12.2017 16:24:36 — debug (3): wt 926

    15.12.2017 16:24:37 — debug (3): url: https://api.telegram.org/bot{0}/getUpdates?offset=тутномер

    15.12.2017 16:24:37 — debug (3): mt wait

    15.12.2017 16:24:37 — debug (3): request created

    15.12.2017 16:24:37 — debug (3): response ok

    15.12.2017 16:24:37 — debug (3): request:{«ok»:true,»result»:[]}

    15.12.2017 16:24:37 — debug (3): True

    15.12.2017 16:24:37 — debug (3): mt release

    15.12.2017 16:24:37 — debug (3): wt 918

    15.12.2017 16:24:38 — debug (3): url: https://api.telegram.org/bot{0}/getUpdates?offset=тутномер

    Reply ↓
  93. user853472

    (21)

    ОтправитьДляОбработки
    Reply ↓
  94. user853472

    (21)

    МассивФайловДляОбъединения.Добавить(СокрЛП(Объект.ИмяФайла)); ТекстДляОтправки = «» + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + «—«+Boundary+»—«; ФайлаОтправкиКонец.ЗаписатьСтроку(ТекстДляОтправки); ФайлаОтправкиКонец.Закрыть(); МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиКонец);

    Не могу понять, что сюда добавляется? Что такое «Объект» ?

    Вот здесь:

    // ФОТО
    ТекстДляОтправки = ТекстДляОтправки + «—«+Boundary + Символы.ПС;
    ТекстДляОтправки = ТекстДляОтправки + «Content-Disposition: form-data; name=»»photo»»; filename=»»01.jpg»»» + Символы.ПС;
    ТекстДляОтправки = ТекстДляОтправки + «Content-Type: image/jpeg» + Символы.ПС;

    filename это произвольное название?

    а где передается сама картинка?

    У меня сервер возвращает «IMAGE_PROCESS_FAILED» . Пожалуйста! Помогите! Третий день отправляю изображение, все никак не отправлю…..

    Reply ↓
  95. user853472

    (21) Подскажите пожалуйста как вывести в данном случае inline_keyboard кнопки? Очень нужно! Можно в ЛС телеграмма @bosprofit

    Reply ↓
  96. ndacoder

    Разобрался на вин 8.1 работает а вот на сервере 2008 не хочет

    14.08.2018 12:04:07 — debug (3): url: https://api.telegram.org/bot{0}/getUpdates?offset=0

    14.08.2018 12:04:07 — debug (3): mt wait

    14.08.2018 12:04:07 — debug (4): checker: cur.time — 14.08.2018 12:04:07, ls.time — 14.08.2018 12:04:07

    14.08.2018 12:04:07 — debug (3): request created

    ! 14.08.2018 12:04:09 — debug (3): response err: Ошибка на стороне клиента. Код состояния: 401

    14.08.2018 12:04:09 — debug (3): mt release

    Reply ↓
  97. salexdv

    (166)

    Код состояния: 401

    Как организована сеть на 2008-м сервере, сервер в сеть ходит напрямую или через прокси?

    Reply ↓
  98. vis_tmp

    (21)

    МассивФайловДляОбъединения.Добавить(СокрЛП(Объект.ИмяФайла));

    Скажите, что у вас в «Объект.ИмяФайла» ?

    Что содержит этот файл?

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *