новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Обсуждение к контенту: TCP клиент для 1С. Native API внешняя компонента на C++

    • #1
    • 26.09.2022 15:45
    0
    • #2
    • 26.09.2022 15:48
    0
    Добрый день!
    Компонента подключилась, но при выполнении подключения к серверу тестовой командой из вашей обоработки:
    &НаКлиенте
    Процедура Подключиться(Команда)  
    	Если ВК.Подключиться(Сервер, Порт) Тогда
    		Сообщить("Выполнено подключение к серверу");
    	Иначе
    		Сообщить("Не удалось подключиться к серверу по причине: " + ВК.ПоследняяОшибка);
    	КонецЕсли;	
    КонецПроцедур


    платформа отрабатывает ошибку: Использование асинхронных методов на клиенте запрещено!
    Как быть?
    • #3
    • 26.09.2022 16:17
    0
    Добрый день.

    Для асинхронной работы с внешней компонентой нужно:
    Для установки свойства вызвать метод НачатьУстановкуИмяСвойства, где ИмяСвойства = реальному имени свойства.
    Для получения свойства вызвать метод НачатьПолучениеИмяСвойства, где ИмяСвойства = реальному имени свойства.
    Для вызова метода использовать НачатьВызовИмяМетода, где ИмяМетода = реальному имени метода.

    Например:

    ОписаниеОповещения = Новый ОписаниеОповещения("ПодключитьсяЗавершение", ЭтотОбъект);
    ВК.НачатьВызовПодключиться(ОписаниеОповещения );

    &НаКлиенте
    Процедура ПодключитьсяЗавершение(Результат, Параметры, ДопПараметры) Экспорт
    Если Результат Тогда
    Сообщить("Выполнено подключение к серверу");
    Иначе
    Сообщить("Не удалось подключиться к серверу");
    КонецЕсли;
    КонецПроцедуры

    Аналогично с другими методами.
    https://its.1c.ru/db/v8321doc#bookmark:dev:TI000001509
    • #4
    • 25.09.2023 11:08
    • Отредактировано: 25.09.2023 11:09:22
    0
    получится ли с помощью этой компоненты (TCPclient) отправлять сообщения в Трассир ?
    по сути нужна только отправка
    предполагалось использовать вашу разработку https://1lancer.ru/catalog/4336
    но в комментах пишут что для отправки в трассир она не подходит
    • #5
    • 25.09.2023 11:11
    0
    Если трассир принимает данные по TCP протоколу, то да получится.
    • #6
    • 30.09.2023 12:31
    • Отредактировано: 30.09.2023 12:41:26
    0
    я создал общий макет и загрузил Tcp client dll но не подклучается что делат помогите пожолуйста исползоват обработка TCPClient
    я покупал dll тоже
    • #7
    • 30.09.2023 12:48
    0
    Какую ошибку пишет?
    • #8
    • 30.09.2023 13:39
    • Отредактировано: 30.09.2023 13:40:53
    0
    спасибо всё работает норм
    как можна отправить сообшения на етом порт можете обяснит
    • #9
    • 30.09.2023 13:49
    0
    &НаКлиенте
    Процедура Подключиться(Команда)
    Если ВК.Подключиться(Сервер, Порт) Тогда
    Сообщить("Выполнено подключение к серверу");
    ВК.Send("Привет, сервер!");

    Иначе
    Сообщить("Не удалось подключиться к серверу по причине: " + ВК.ПоследняяОшибка);
    КонецЕсли;
    КонецПроцедуры


    Метод объекта не обнаружен (Send)
    как эта исправить если не трудна помогите пожалуйста
    • #10
    • 13.12.2023 11:27
    0
    А если мы удачно подключились, но произошел разрыв соединения... удастся как-то об этом узнать?
    • #11
    • 13.12.2023 11:54
    0
    При записи данных - да. У меня выходит ошибка "Не удалось записать данные по причине: Сделана попытка выполнить операцию на объекте, не являющемся сокетом."
    При чтении нет, потому что как только данные поступают в сокет, компонента считывает их и сохраняет в буфере. А потом 1С читает их из буфера.
    При разрыве соединения никакого сообщения от компоненты не будет.
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться