Робота з Windows Sockets у 1С Підприємство
Робота з Windows Sockets у 1С Підприємство.
Доктор Шульц 15 Apr 2014

Назва : Робота з Windows Sockets у 1С Підприємство.
Додано : 02 Mar 2014
Категорія : Інше
При інтеграції 1С:Підприємство з іншими системами можливі випадки, коли робота можлива лише за протоколами TCP\IP або UDP. Платформа 1С не надає механізмів для прямої взаємодії з цими протоколами, що вкрай не зручно, проте не неможливо. Для роботи з цими протоколами в середовищі Windows призначена технологія Windows Sockets. Реалізує цю технологію бібліотека Mswinsock.dll (Mswinsock.ocx).
Як транслятор в протоколи TCP\IP або UDP даних з (в) 1С:Підприємство можна використовувати ActiveX компоненту, що входить до складу бібліотеки Mswinsock.dll. Ця бібліотека входить до складу пакету Visual Basic, який можна встановити разом з пакетом програм MS Office. Ну або знайти в Інтернеті. Її повноцінне використання в середовищі 1С: Підприємство можливе тільки як ActiveX елемент на формі.
На формі з'явиться значок з двома комп'ютерами, приблизно такий (все залежить від операційної системи, що використовується вами, та версії бібліотеки).
Не забудьте компоненти зняти прапорець видимості. Компонент не має елементів інтерфейсу, проте 1С намагається його відмалювати, що призводить до негарних результатів.
Після додавання компоненти на форму стають доступними всі пов'язані з нею властивості та події. Найчастіше використовувані додаються на форму властивостей.
Інші властивості та події доступні через контекстну підказку "IntelliSense" у модулі форми.
Доступні події. Error- Подія виникає у разі виникнення будь-якої ошибки. Процедура WinSocketError(Елемент, Number, Description, Scode, Source, HelpFile,
ТкстПовідомлення = ""; WinSocket1.GetData(ТкстПовідомлення); Повідомити("Отримана відповідь" + Символи.ПС + ТкстПовідомлення);
У параметрі bytesTotal передається числове значення скільки байт було прийнято. Самі дані можна отримати функцією GetData(). У параметр цієї функції потрібно передати рядкову змінну, в яку функція поверне отримані дані. Connect - подія виникає при успішному підключенні до сервера. Виникає лише за клієнта. Процедура WinSocketConnect(Элемент)
Повідомити("Підключення до " + Елемент.RemoteHost + " успішно.");
КінецьПроцедури Ця подія не має власних параметрів.можна працювати тільки з параметрами самої компоненти. ConnectionRequest - серверна подія, що виникає при надходженні запиту на підключення. Процедура WinSocketConnectionRequest(Елемент, requestID)
Якщо НЕ WinSocket.State = 0 Тоді WinSocket.Close() КінецьЯкщо;
Повідомити("Байт відправлено - " + bytesSent + "/ байт залишилося - " + bytesRemaining);
З картинки видно, що виклик процедури відбувся лише один раз.
SendComplete - Подія, що виникає при завершенні надсилання даних. Наступний код демонструє функціонування цієї події. Процедура WinSocketSendComplete(Елемент)