1C club: форум, изтегляне, обучение, консултации за потребители, помощ за програмисти

Работа с Windows Sockets в 1C Enterprise.

sockets
Д-р Шулц 15 април 2014 г.

Име: Работа с Windows Sockets в 1C Enterprise.

Добавено: 02 март 2014 г.

Категория: Други

При интегриране на 1С: Предприятие с други системи може да има случаи, когато работата е възможна само чрез протоколи TCP \ IP или UDP. Платформата 1С не осигурява механизми за директно взаимодействие с тези протоколи, което е изключително неудобно, но въпреки това не е невъзможно.
Технологията Windows Sockets е проектирана да работи с тези протоколи в Windows среда.
Библиотеката Mswinsock.dll (Mswinsock.ocx) прилага тази технология.

Като преводач на данни от (към) 1C: Enterprise към TCP \ IP или UDP протоколи, можете да използвате компонента ActiveX, включен в библиотеката Mswinsock.dll.
Тази библиотека е част от пакета Visual Basic, който може да бъде инсталиран заедно с пакета MS Office. Е, или го намерете в интернет.
Пълното му използване в 1С: Предприятие среда е възможно само като ActiveX контрола на формуляра.

Във формуляра ще се появи икона с два компютъра, нещо подобно (всичко зависи от операционната система и версията и библиотеката, която използвате).

Не забравяйте да премахнете отметката от полето за видимост на компонента. Компонентът няма елементи на интерфейса, въпреки това 1C се опитва да го изобрази, което води до грозни резултати.

След добавяне на компонент към формуляр, всички свойства и събития, свързани с него, стават достъпни. Към формуляра се добавят най-често използваните свойства.

Останалите свойства и събития са достъпни чрез контекстния подсказка "IntelliSense" в модула за формуляри.

Налични събития.
Грешка - Събитието възниква, когато възникне грешка.
Процедура WinSocketError (Елемент, Номер, Описание, Scode, Източник, HelpFile,

TxtSessages = ";
WinSocket1.GetData (TxtMessages);
Отчет („Получен отговор“ + Symbols.PS + TxtSopportunities);

Параметърът bytesTotal се предава цифрова стойност на това колко байта са получени. Самите данни могат да бъдат получени с помощта на функцията GetData (). В параметъра на тази функция трябва да предадете променлива на низ, към която функцията ще върне получените данни.
Свързване - събитието се вдига, когато връзката със сървъра е успешна. Възниква само от страна на клиента.
Процедура WinSocketConnect (елемент)

Отчет („Връзка с„ + Element.RemoteHost + "успешно.");

Край на процедурата
Това събитие няма собствени параметри. Можете да работите само с параметрите на самия компонент.
ConnectionRequest - събитие на сървъра, което се случва, когато пристигне заявка за връзка.
Процедура за искане на WinSocketConnectionRequest (Item, requestID)

АКО НЕ WinSocket.State = 0 Тогава
WinSocket.Close ()
EndIf;

Отчет ("Bytes sent -" + bytesSent + "/ оставени байтове -" + bytesRemaining);

От снимката можете да видите, че извикването на процедурата се е случило само веднъж.

SendComplete - Събитие, което се повдига, когато изпращането на данни е завършено. Следващият код демонстрира функционирането на това събитие.
WinSocketSendComplete процедура (елемент)