ДАННАЯ ВНЕШНЯЯ КОМПОНЕНТА МОЖЕТ БЫТЬ ИСПОЛЬЗОВАНА ТОЛЬКО ДЛЯ ПЕРЕДАЧИ СООБЩЕНИЙ МЕЖДУ СЕРВЕРОМ И КЛИЕНТОМ 1С ЧЕРЕЗ TCP ПРОТОКОЛ.
ЕСЛИ НУЖНО ВЗАИМОДЕЙСТВИЕ ПО TCP ПРОТОКОЛУ С ВНЕШНИМИ УСТРОЙСТВАМИ, ТО ЛУЧШЕ ИСПОЛЬЗОВАТЬ ДРУГУЮ ВНЕШНЮЮ КОМПОНЕНТУ TCP-КЛИЕНТ, КОТОРУЮ МОЖНО НАЙТИ В МОЕМ ПРОФИЛЕ.
Внешняя компонента разработана на С++ по технологии Native API. Позволяет отправлять сообщения по протоколам TCP и UDP, в том числе с сервера вызывать клиента. На клиенте будет вызвано внешнее событие. Работает в тонком клиенте, в толстом клиенте, на сервере. Подходит для 32-х разрядных и для 64-х разрядных приложений. Только для Windows.
Свойства внешней компоненты:
Методы внешней компоненты:
Пример использования:
Предположим, что архив внешней компоненты загружен в макет с именем "TCP_UDP" обработки ВК.
Нужно запустить фоновое задание на клиенте и через поле индикатора отображать прогресс выполнения фонового задания.
Предварительно внешняя компонента была установлена на клиента методом УстановитьВнешнююКомпоненту:
УстановитьВнешнююКомпоненту("Обработка.ВК.Макет.TCP_UDP");
Пример запуска фонового задания из формы обработки:
//ОбъектКомпоненты должен быть объявлен как переменная формы &НаКлиенте Перем ОбъектКомпоненты; Процедура Тест(Команда) //открытие TCP порта на клиенте: ПодключитьВнешнююКомпоненту("Обработка.ВК.Макет.TCP_UDP", "ВК"); ОбъектКомпоненты = Новый ("AddIn.ВК.TCP_UDP"); ОбъектКомпоненты.ЭтоTCP = Истина; ОбъектКомпоненты.Порт = 1111; ОбъектКомпоненты.ОткрытьПорт(); ВыполнитьНаСервере(); КонецПроцедуры &НаСервере Процедура ВыполнитьНаСервере() //запуск фонового задания ФоновыеЗадания.Выпoлнить("Сервер.Тест"); КонецПроцедуры
//общий модуль Сервер Функция Тест() Экспорт //создание объекта внешней компоненты ПодключитьВнешнююКомпоненту("Обработка.ВК.Макет.TCP_UDP", "ВК"); ОбъектКомпонентыКлиент = Новый ("AddIn.ВК.TCP_UDP"); ОбъектКомпонентыКлиент.ЭтоTCP = Истина; ОбъектКомпонентыКлиент.IP = "127.0.0.1"; ОбъектКомпонентыКлиент.Порт = 1111; //получаем какую-то большую таблицу значений БольшаяТЗ = ПолучитьБольшуюТаблицуЗначений(); Для Каждого Стр Из БольшаяТЗ Цикл ... //с какой-то периодичностью отправляем прогресс обработки таблицы значений на клиента Если КакоеТоУсловие Тогда Прогресс = ПолучитьПрогресс(); //Прогресс - % обработки таблицы значений //отправляем прогресс выполнения на клиента ОбъектКомпонентыКлиент.Отправить("" + Прогресс); //тип должен быть Строка КонецЕсли; ... КонецЦикла; КонецФункции
//обработка внешнего события на клиенте, на форме обработки &НаКлиенте Процедура ВнешнееСобытие(Источник, Событие, Данные) Если Источник = "TCP" И Событие = "Send" Тогда //преобразуем в число Прогресс = Число(Формат(Данные, "ЧГ=0")); //обновляем поле индикатора ПолеИндикатора = Прогресс; //ПолеИндикатора это реквизит формы, связанный с элементом формы Поле индикатора Если ПолеИндикатора = 100 Тогда //закрываем порт, после выполнения обработки. //ВАЖНО: ОбъектКомпоненты - это тот же самый объект, который был создан на клиенте //до запуска фонового задания. ОбъектКомпоненты.ЗакрытьПорт(); Сообщить("Обработка завершена"); КонецЕсли; КонецЕсли; КонецПроцедуры
Может быть Вас заинтересуют другие мои разработки:
1. Перенос номенклатуры вместе с характеристиками из УТ 11.4 в БП 3.0 http://1clancer.ru/catalog/3830
2. Обработка обмена Управление торговлей 11.4 - Бухгалтерия предприятия 3.0 http://1clancer.ru/catalog/4177
3. Автоматический взаимозачет в УТ 11.4, КА 2.4, ERP 2.4 http://1clancer.ru/catalog/4220
4. Шаблоны внешних отчетов и обработок для обычных и управляемых форм http://1clancer.ru/catalog/4069
5. Отчет Номенклатура без цен http://1clancer.ru/catalog/4132
6. Накладная на отпуск материалов на сторону (М-15) для требовании-накладной в БП 3.0 http://1clancer.ru/catalog/3602
7. Универсальный корректировочный документ без сворачивания строк с разными ценами для ERP 2.4, КА 2.4, УТ 11.4 http://1clancer.ru/catalog/3873