Вариант UDP Чата для 1С

07.05.10

Разработка - Разработка внешних компонент

Внешняя компонента для обмена сообщениями в сети по udp-протоколу.
Также может быть использована в качестве log-сервера для сбора и обработки логов с оборудования(напр. cisco).

Скачать файлы

Наименование Файл Версия Размер
Udptor.dll
.dll 84,00Kb
134
.dll 84,00Kb 134 Скачать

Основные свойства компоненты:

isEnable - возвращает 1, если открыты сокеты и можно отправлять/принимать данные

Методы:

Enable(ПортНомер)  - открывает выбранный порт для входящих сообщений и устанавливает свойство isEnable=1

Sendto(Адрес,Порт,Сообщение)  - посылает данные на удаленный сокет

Disable - прекращает прием/отправку и закрывает порты

Ограничения:

1. Не поддерживается(пока) рестарт чата "на лету",  если использовали метод Disable, то Enable работать не будет до закрытия 1С.

2. Ограничение на длину сообщения - 512 символов

3. В "хвосте" каждого сообщения есть служебная информация вида:

500:port:27015 recvfrom->192.168.0.77::37420

500 - количество символов в пришедшем пакете (без учета "хвоста")

:port:27015 - на этом порту удаленный комп. ждет ответных сообщений

 recvfrom->192.168.0.77::37420 - адрес и порт, с которого пришли данные(на этот порт не надо ничего отправлять, он для информации)

Пример использования под 7.7:

// файлик лежит в КаталогеИБ

ЗагрузитьВнешнююКомпоненту("Udptor.dll"); 
Чат = СоздатьОбъект("Addin.Chat");

// Открываем порт для приема сообщений

 Чат.Enable("27015");

// Проверяем результат

Если Чат.isEnabled=0 Тогда

Сообщить("Ошибка при открытии порта!");

КонецЕсли;

// Отправка сообщений

Процедура ОтправитьСообщение(Адрес,Порт,Сообщение)

Если Чат.isEnabled = 0 Тогда

Сообщить("Сервер не запущен!");
Возврат;

КонецЕсли;

Чат.Sendto(Адрес,Порт,Сообщение);

КонецПроцедуры

// Например

ОтправитьСообщение("192.168.0.77","27015","Это тестовое сообщение");

// Обработку входящих сообщений производим в процедуре 

Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные) 

Если Источник = "UdptorChat" И Событие = "Server" Тогда

Сообщить(Данные);

ИначеЕсли Источник = "UdptorChat" И Событие = "Error" Тогда

Сообщить("Ошибка !"+Данные);

КонецЕсли;

КонецПроцедуры

 

Использование в 1С 8:

1. Копируем компоненту на локальный диск

2. Регистрируем командой regsvr32 "путь к компоненте"\udptor.dll

В процессе регистрации возможно появление ошибки " не найдена точка входа..." при этом компонента будет работать. С ошибкой еще не разобрался, появляется и на Win2k и на XP, но редко.

Запуск в 8-ке

Результат = "";
ИмяВК="AddIn.Udptor";
Попытка

ПодключитьВнешнююКомпоненту(ИмяВК);

Результат = 1;

Исключение

Сообщить("Не удалось загрузить внешнюю компоненту по причине: "+ОписаниеОшибки());

КонецПопытки;
Сообщить(Результат);
Чат = Новый ("AddIn.Chat");

// Далее работаем как в 7.7 ч.з. обработку событий

 

См. также

Медиадисплей. Рекламный информационный монитор для покупателя.

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Монитор покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Можно использовать в качестве графического меню-борда в кафе и видеовывески. Управление выводом на телевизор через hdmi-приставку на базе Windows или Android. В качестве устройства отображения можно использовать Android-планшеты, фоторамки с Android, монитор любого Windows-компьютера, доступного по сети. Настраивается ЛЮБОЙ ДИЗАЙН экрана!

16800 руб.

30.05.2017    52105    34    69    

43

Внешняя компонента для сканирования (замена TWAIN-компоненты БСП) (Native Win 32/64)

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

2400 руб.

12.05.2020    26244    131    99    

83

Внешняя компонента для подключения 1С к телефонии Asterisk

Разработка внешних компонент Телефония, SIP Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

2400 руб.

04.05.2018    44977    117    64    

60

Внешняя компонента печати PDF (Native Win 32/64)

Разработка внешних компонент Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

17.09.2018    35081    104    123    

111

Мастер создания внешних компонент 1С (технология COM) для DELPHI 6/7/8/2005/2006/2007/2008/2010/XE/XE2/XE3

Разработка внешних компонент Платформа 1С v8.3 Платные (руб)

Средство для сверхбыстрой разработки внешних компонент 1С:Предприятия 7.7 и 8 по технологии COM на всех версиях DELPHI, начиная с 6.

2000 руб.

28.03.2013    54000    35    14    

68

QR-код с логотипом компании (обычная и управляемая форма)

Разработка внешних компонент Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Как известно, стремление сделать свою рекламную продукцию запоминающейся и выделяющейся — верный путь к успеху. Сегодня, мы поговорим с вами о том, что можно сделать с обычным черно-белым QR-кодом, чтобы он стал более живым и привлекательным. Если вам не терпится попробовать сделать QR-код с логотипом компании, то эта обработка для вас!

2400 руб.

22.06.2016    30840    4    4    

8

Внешняя компонента 1С и С++. Продолжаем разговор.

Разработка внешних компонент Платформа 1С v8.3 Бесплатно (free)

А давайте запилим 8.3.26 до релиза, или оповещение с сервера...

19.02.2024    4039    starik-2005    28    

52

Внешние компоненты 1С и язык C++

Разработка внешних компонент Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Некоторые практические аспекты создания внешних компонент на языке С++ для платформы 1С 8.3++.

26.01.2024    4781    starik-2005    32    

39
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Nicholas 887 11.05.10 10:20 Сейчас в теме
Пока не понял зачем это нужно, но реализация понравилась.
2. SodaWater 35 11.05.10 21:52 Сейчас в теме
Мне пригодилось для решения след.задач:
1. Обмен сообщениями м\у польз. 1С, независимо от платформы 7.7 или 8 (теоретически должно работать и в терминале, если открыть на каждого юзера терм.сервера отдельный порт, проверю в ближ. время)

2. Как дополнение к 1. - обмен управляющими сообщениями типа "ЗакрытьПрограмму" и т.д.

3. Регистрация различных событий на центральном лог-сервере( syslog на bsd), вход/выход/изменение данных и т.д. При наших 350+ 1С юзерах в 25 распределенных базах очень неудобно отвечать на вопросы - "а кто исправил этот документ?"

4. Решение задач типа:
Покупатель спрашивает "В этом магазине нет нужного товара, а в каком он еще есть в наличии?", при этом не тянуть к себе все базы всех 25 филиалов.

5. Лог сервер на базе 1С 7.7(понятно, что это не лучшее решение), обрабатывает ежедневно 2млн. сообщений от других систем, включая коммутаторы и маршрутизаторы cisco.
Свой; +1 Ответить
3. comol 5051 30.05.10 15:04 Сейчас в теме
А исходники можешь прислать? Хочется чуть модифицировать. Модифицированное могу прислать, получится прямо GPL. Действительно нужная штука, но с 0 не осилил бы писать, не силён в особенностях ВК 1С.
4. Душелов 4013 30.05.10 16:18 Сейчас в теме
5. SodaWater 35 31.05.10 10:56 Сейчас в теме
Это вариант для нелюбителей дот.нет )
И мне нужно было приимать\отправлять независимо от открытых\закрытых форм.
6. Душелов 4013 31.05.10 12:25 Сейчас в теме
(5) Так использовать глобальные переменные с объектом и все :)
7. SodaWater 35 31.05.10 13:45 Сейчас в теме
Не догнал как использовать глобальные переменные с объектом. Если нужно принимать данные без открытия каких-либо форм. ((
Ну раз можно, значит - можно )
8. Serj1C 483 06.09.11 15:55 Сейчас в теме
1) Нет примера внешней обработки
2) Роняет 1С (8.2.13, win7) не методе Чат.Enable(СлушатьПорт);
9. Serj1C 483 06.09.11 15:58 Сейчас в теме
3) Роняет 1С при неоднократном повторном вызове Disable с ошибкой "Ошибка сетевого доступа к серверу, или приложение не вызвало WSAStartup, или ошибка произошла в WSAStartup"
10. SodaWater 35 26.09.11 11:58 Сейчас в теме
(9) Serj1C,
Ответил в личку, нужны уточнения.
11. CyberCerber 852 03.10.11 13:05 Сейчас в теме
А какими методами/событиями отлавливать получение сообщений?
12. Abadonna 3958 03.10.11 14:00 Сейчас в теме
(0)
теоретически должно работать и в терминале, если открыть на каждого юзера терм.сервера отдельный порт

Не советую. Проще поставить UDP-сервер, я так в Miracle сделал.
Сервер слушает на один порт, а потом пересылает на другие порты, которые открываются для каждого юзверя при старте в терминале из незанятых
13. SGordon1 03.10.11 15:48 Сейчас в теме
А Порты TCP Можно так слушать?
14. SodaWater 35 06.10.11 22:42 Сейчас в теме
Теоретически можно слушать и TCP, но не этой компонентой
15. SodaWater 35 06.10.11 22:45 Сейчас в теме
Abadonna пишет:
...а потом пересылает на другие порты, которые открываются для каждого юзверя при старте в терминале из незанятых

(0)

Если в итоге на каждого юзера выделять отдельный порт, то думаю сервер лишнее звено.
16. SodaWater 35 06.10.11 22:50 Сейчас в теме
Проект устарел, нет нормальных тестов под 7-ку(Win7), но сейчас есть куча времени(уволился) и добавлю новые функции по просьбам трудящихся )
17. SodaWater 35 06.10.11 22:54 Сейчас в теме
Вопрос, на которы й не смог найти ответ - как отправлять UDP пакеты с определенного порта? Может кто решал такие задачи. Откликнитесь.
18. berserg 11 14.11.11 17:18 Сейчас в теме
Что то она у меня не хочет работать на 64-разрядном сервере. Вызываю так:

Попытка
ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаUDPTor", "UDPTor", ТипВнешнейКомпоненты.Native);
Чат = Новый ("AddIn.Chat");
Исключение
Возврат;
КонецПопытки;

и после строчки Чат = Новый ("AddIn.Chat"); вываливается в исключение изменение типа внешней компоненты ничего не меняет. Не подскажите в чем дело?
19. SodaWater 35 14.11.11 22:22 Сейчас в теме
20. DrAku1a 1679 28.03.12 12:38 Сейчас в теме
(0), (3) да... исходнички бы... можно было бы в новом стиле NativeAPI написать...
21. Wladymyr 18.06.12 18:46 Сейчас в теме
спасибо автору, полезная вещь
22. umka2008 22 01.07.14 17:14 Сейчас в теме
А как бы узнать методы типа слушать порт? У тебя на картинке есть кнопки Старт/Стоп.
Что в них?
Оставьте свое сообщение