Роботы, плагины и скрипты к чату MyChat. Разработка альтернативных клиентов и различных утилит. Технические вопросы по программированию, замечания и предложения по развитию API
КамалБайрамов
Здраствуйте .
Задача:отправка сообщений из 1с в mychat .
Он видит сервер Mychat,проверял(отключал сервер, и он не видел сервер).
Подскажите пожалуйста, в чем ошибка
Написал такой код :

Код: Выделить всё
Процедура Кнопка1Нажатие(Элемент)
 Сообщить(КомпонентMyChat.SendPrivateMessage("127.0.0.1", 80, "qYGe9biZAwaecFJ5dKpw", "0", "1", "Привет из 1С от встроенного робота"));
КонецПроцедуры
Результат=ПодключитьВнешнююКомпоненту("C:\Program Files (x86)\1cv8t\8.3.8.1933\bin\mychatvk.dll","MyChat", ТипВнешнейКомпоненты.Native);
Если Результат Тогда
   КомпонентMyChat = Новый ("AddIn.MyChat.MyChatClass");
Иначе Сообщить("Ошибка подключения mychatvk.dll!");
КонецЕсли;
Аватара пользователя
Алексей Пикуров
Добрый день.

Чтобы ответить, нужна хотя какая-то информация от вас. Логи, сообщения, хоть что-то.

И мы рекомендуем не DLL использовать (их там две в комплекте), а REST. Это проще и надёжнее.
https://nsoft-s.com/mcserverhelp/index. ... 1crest.htm
Аватара пользователя
Алексей Пикуров
Кстати, а почему "SendPrivateMessage("127.0.0.1", 80" ?

Вы запустили ядро сервера вместо 2004 TCP на 80-м порту?
КамалБайрамов
Я приложил файл. У меня там было написано TCP порт 80 , из-за этого указал 80. Это не правильно?
Вложения
Безымянный.png
Безымянный.png (346.7 КБ) Просмотров: 8268
Аватара пользователя
Алексей Пикуров
Да, неправильно. Вы указали порт WEB-сервера а не порт ядра, к которому цепляется DLL. В примере в справке это чётко указано. Если вы используете Native API, то указывайте 2004 порт, как написано в примере из справки.
КамалБайрамов
Делаю как вы сказали , и в 1с выходит такая ошибка
Вложения
Безымянный2.png
Безымянный2.png (131.09 КБ) Просмотров: 8266
КамалБайрамов
Пишу ваш код в 1с в "Управляемом приложение " и он не работает.Его можно использовать в Управляемом приложение?
КамалБайрамов
Вот такие ошибки выходят
Вложения
Безымянный1.png
Безымянный1.png (139.37 КБ) Просмотров: 8252
Безымянный.png
Безымянный.png (129.98 КБ) Просмотров: 8252
Аватара пользователя
Алексей Пикуров
Извините, я не знаю, что это.

Примера для работы с Native API из справки должно быть достаточно. А лучше используйте технологию работы через REST, она универсальнее и проще. Ссылку на справку я дал вам выше.
Аватара пользователя
Алексей Пикуров
Камал, разобрались с REST?
КамалБайрамов
Здравствуйте ,делаю через Rest, выходит такая ошибка.

Код: Выделить всё
Процедура Отправить(Команда)
 Сервер = "172.16.2.94";
  Порт = 80;
  Ресурс = "/API/?data=";
  Ключ = "mGe1YyWutBaOMPfn673L";
  UINПолучателя = "2"; 
  ТекстСообщения = ТекстСтатуса + ТекущаяДата() + Символы.ВК + Символы.ПС ;
  СтруктураДанных = Новый Структура;
  СтруктураДанных.Вставить("cmd", "0002");
  СтруктураДанных.Вставить("UserFrom", "[email protected]");
  СтруктураДанных.Вставить("UserTo", UINПолучателя);
  СтруктураДанных.Вставить("Msg", ТекстСообщения);
  СтруктураДанных.Вставить("APIStype", "mcrest");
  СтруктураДанных.Вставить("ServerKey", Ключ);
   
  ЗаписьJSON = Новый ЗаписьJSON;
  ЗаписьJSON.УстановитьСтроку();
  ЗаписатьJSON(ЗаписьJSON, СтруктураДанных);
  СтрокаJSON = ЗаписьJSON.Закрыть(); 
   
    Попытка
        HTTP = Новый HTTPСоединение(Сервер,Порт,,,,30);
        HTTPЗапрос = Новый HTTPЗапрос(Ресурс);
        HTTPЗапрос.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded");
        HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
        Результат  = HTTP.ОтправитьДляОбработки(HTTPЗапрос);
        Если Результат.КодСостояния <> 200 Тогда
            Сообщить("Ошибка при отправке запроса: " + Результат.КодСостояния);
        КонецЕсли;
    Исключение
        Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки());
    КонецПопытки;   
КонецПроцедуры
Вложения
Безымянный.png
Безымянный.png (34.19 КБ) Просмотров: 8214
Аватара пользователя
Алексей Пикуров
Откройте в браузере с этого компьютера http://172.16.2.94

Работает?
Аватара пользователя
Алексей Пикуров
Тогда разберитесь, почему в 1С это не работает, раз вы указали правильный IP и порт сервера для REST запроса.
Аватара пользователя
Алексей Пикуров
Покажите скриншоты:
1. Сервер, настройки, Integration API
2. Сервер, настройки, WEB-сервисы
3. Сервер, настройки, сетевые настройки.
КамалБайрамов
Вот!
Вложения
3.png
3.png (841.26 КБ) Просмотров: 8157
2.png
2.png (421.29 КБ) Просмотров: 8157
1.png
1.png (1011.11 КБ) Просмотров: 8157
Аватара пользователя
Алексей Пикуров
Включите галку "Включить поддержку интеграции со сторонним программным обеспечением".

Последний скриншот.
КамалБайрамов
Здравствуйте, ещё такой вопрос.
А в вашем чате есть возможность отправлять сообщения из Mychat в 1с?
Аватара пользователя
Алексей Пикуров
Без проблем, если вы можете отправить в 1С REST запрос, например. Как приёмник сообщений организовать на стороне 1С ?
Аватара пользователя
Алексей Пикуров
Кроме "Да", может, подробнее что-то напишете? Чтобы я не работал Вангой.
КамалБайрамов
Приходит сообщение из 1с, и чтобы пользователь mychat мог ответить на эту смс, и чтобы это сообщение отправлялось в 1с
Аватара пользователя
Алексей Пикуров
Простите, я вас не понимаю. Позвоните скайпом, расскажете голосом.
alexey.pikurov
Аватара пользователя
ВладимирVS
при попытке отправки сообщения выдаёт " Ошибка работы с Интернет: Не могу установить соединение"
использовал ваш пример, сервер развернут на 127.0.0.1,

в 1с пишу
Сервер = "192.168.0.110"; -- это IP компа локального где развернут сервер
Порт =80; - порт
уже даже порт открыл
а всё равно
что не так может быть?
Аватара пользователя
ВладимирVS
как оказалось порт 80 был закрыт, после открытия ошибки нету но и сообщений у клиента тоже нету.
хотя отправка проходит.
Аватара пользователя
Алексей Пикуров
Покажите свой код и результат работы функции, которая отправляет сообщение из 1С с MyChat.
Аватара пользователя
ВладимирVS
всё, отбой, оказывается от пользователя как напримере т.е. "[email protected]" не отправляет, от любых созданных вручную уходит.