NetNative: ВК для работы с сетью

27.02.14

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

Прослушивание UDP-портов, посылка UDP-сообщений, возможность организации UDP-чата, некоторые сетевые команды.
Написана по технологии Native

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
Архив
.zip 608,68Kb ver:1.0.0.1
208
208 Скачать бесплатно

Настоящая ВК является немного урезанной версией ВК, работающей в нашем холдинге в базе 1С в связке со специальными службами, установленными на каждом из компьютеров холдинга (в первую очередь используется для подачи команд службам).

Написана по технологии Native, т.е. не требует регистрации в реестре и особых прав пользователя.

В архиве находится файл тестовой базы 1Cv8.1CD, собственно файл ВК NetNative.dll и пара внешних тестовых обработок.

Поключение ВК: 

ПодключитьВнешнююКомпоненту(ПолноеИмяФайлаВК,"NetNative",AddInType.Native);

Создание экземпляра класса:

Сеть =    Новый("AddIn.NetNative.V8Net"); // слева - любая глобальная переменная

МЕТОДЫ ВК:

UDP_Создать(НомерПорта), например: 

СлушаемПорт=Сеть.UDP_Создать(10000);

Ставит UDP-порт на прослушивание.

При получении входящего UDP-сообщения генерирует внешнее событие "UDP_READ",

данные - текст сообщения.

Возвращает номер порта на прослушивании.

Очень важные нюансы:

На одном компьютере невозможно подключить на прослушивание один и тот же порт из разных экземпляров одной и той же программы или разных программ. Поэтому был доработан модуль IdSocketHandle таким образом, чтобы не генерировалось исключение, а занимался следующий по порядку свободный порт. Т.е. при попытке занять уже занятый порт 10000, на прослушивание встанет ближайший по порядку свободный, например, 10001, который и вернет метод UDP_Создать.

Вышеизложенное несколько усложняет создание UDP-чата при использовании на терминале, или при запуске некольких копий 1С на отдельном компьютере. В тестовой базе применен туповато-лобовой вариант: создан справочник СетевыеПользователи, каждому пользователю назначен свой стартовый порт, с интервалом 10 от предыдущего.

Таким образом, для каждого пользователя существут возможность запуска до 10 копий 1С на одном компьютере.

При отсылке UDP-сообщения методом UDP_Сообщение (см. ниже), сообщение посылается на все 10 возможных портов.

Другие варианты обхода проблемы занятых портов: "разруливающая" база на 1С, или "разруливающая" программа с компонентом TIdUDPServer.

UDP_Сообщение (ТекстСообщения,НомерПорта,Компьютер)

ТекстСообщения Компьютер - строки, НомерПорта - число.

Компьютер - Имя или IP, необязательный, если пусто - широковещательное сообщение по всем компьютерам подсети.

Нюанс - при посылке широковещательного сообщения его получат только компьютеры той подсети, где расположен посылающий компьютер,

например, получат компьютеры подсети 192.168.100.ХХХ, и не получат компьютеры подсети 192.168.200.ХХХ.

Поэтому лучше указывать конкретный Компьютер.

IP2Name(IP) - возвращает имя компьютера по IP-адресу.

Name2IP(Имя) - возвращает IP-адрес по имени компьютера.

Пинг(Компьютер,ИнтервалОжидания) - возвращает Истина или Ложь.

Компьютер - имя или IP-адрес, строка

ИнтервалОжидания - число, мс, необязательный, по умолчанию 2500

СетевойПользователь() - возвращает сетевое (не 1С-кое) имя пользователя.

ШифроватьСтроку(Строка), ДешифроватьСтроку(Строка) - возвращает соответственно зашифрованную и расшифрованную строки. Значение одной и той же шифрованной строки всегда различно, дешифровка - однозначна.

Примечание: в моей базе используется для шифрования UDP- команд службам (на всякий случай)

Задержка(Интервал), мс. - ненагружающая задержка выполнения.

Таймер(Интервал), мс. - устанавливает таймер.

При срабатывании таймер генерирует событие "MAIN_TIMER_EVENT"   

Свойство

ИнтервалТаймера - считывает/устанавливает интервал таймера

MD5Файла(ПолноеИмяФайла) - вычисляет MD5 содержимого указанного файла.

Примечание: я использую для определения изменился ли список всех файлов exe на компьютере с установленной службой.

БоковаяПанель(Ширина)

Устанавливает левую панель на MDI-окно. Только для толстого клиента

Следующие методы только для установленной в толстом клиенте боковой панели:

ДобавитьСтрокуВПанель(Строка) - добавляет строку в панель.

ОчиститьПанель() - очищает весь текст в панели.

Прогресс(Позиция) - устанавливает позицию прогресс-бара в боковой панели.

СохранитьСодержимоеПанели(ИмяФайлаДляСохранения) - сохраняет содержимое панели в указанный файл


ВК сеть компонента

См. также

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

Внешняя компонента в виде библиотеки (.dll файл), позволяющая посылать команды и получать ответы по протоколу WebSocket из 1С. Компонента работает только на стороне "клиента".

4440 руб.

22.06.2020    18133    18    33    

22

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

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

2400 руб.

04.05.2018    46803    122    66    

66

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

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

3000 руб.

12.05.2020    28234    138    100    

90

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

Внешняя компонента, позволяющая посылать команды и получать ответы по GraphQL протоколу из 1С.Может быть использована при интеграции. В 1С работает на стороне "клиента".

4600 руб.

27.06.2023    3400    2    0    

4

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

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

1500 руб.

17.09.2018    36484    113    127    

114

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

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

26.01.2024    6793    starik-2005    32    

44

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

Пример взаимодействия 1С с Apach Kafka посредством внешней компоненты, разработанной на основе официальной библиотеки librdkafka (the Apache Kafka C/C++ client library).

22.11.2023    4379    87    ivan1703    26    

41
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. wunderland 202 24.02.14 12:01 Сейчас в теме
Просто и понятно - как для (тупых) меня :). В копилку...
2. Abadonna 3968 24.02.14 12:43 Сейчас в теме
(1) wunderland, спасибо, именно "просто и понятно" я и хотел ;)
3. CheBurator 2712 01.03.14 03:15 Сейчас в теме
4. wondermaker 21.03.14 04:04 Сейчас в теме
Хм. А применить сие дело к работе с именованными каналами (named pipes) можно?
На сервере работает или как многие другие только на клиенте?
5. Abadonna 3968 26.03.14 18:59 Сейчас в теме
(4) wondermaker,
На сервере работает
В выходные перевожу одного клиента на 1с-сервер - клиент, вот и проверю. Не на чем было проверять...
6. zarius 187 15.04.14 18:28 Сейчас в теме
Есть в планах сделать полноценного клиента для tcp-сервера из этой ВК?
Чтобы можно было подключаться с серверу по адресу:порту и слушать ответы от него (к примеру в двоичных данных).
7. fd13 28.01.16 13:11 Сейчас в теме
Присоединюсь к предыдущему вопросу: будет ли TCP-сервер?
8. swolf256 01.06.16 09:51 Сейчас в теме
(7) fd13, Автор, к сожалению, уже давно не топчет эту планету
10. chemezov 48 04.09.19 08:42 Сейчас в теме
Охренеть какая зачетная штука
11. andy32 07.10.21 11:03 Сейчас в теме
Не работает на x64 сервере ((
12. von_de 5 16.02.22 17:23 Сейчас в теме
Не работает, начиная с версии 8.3.16.
13. tolianrus 17.02.23 11:36 Сейчас в теме
Если кто в курсе где взять аналогичное работающее, напишите в личку... (надо отправлять сообщения по tcp/udp)
Оставьте свое сообщение