предистория:
для автоматизации пре-селинга понадобился сброс заказов из терминала PSION Workabout в 1С через мобилу, пришлось написать ВК
т.к. терминал - пришлось реализовывать простой протокол (не z-modem), попросили попробовать под урбд - вышло, вот теперь выкладываю
суть проста:
активикс.ехе с сом-интерфейсом
дерево классов:
CommDirect - корень
Sheduler-класс управления задачами
Tasks-коллекция задач
Task-задачи
UserData-класс управления пользователями
Users-коллекция пользователей
User-пользователь
Sessions-коллекция его коннектов
Connection-коннекты
свойства, методы описывать не буду: все видно в Project Explorerе VB, Excel, Access
основные и достаточные есть в ерт архива
для передачи событий в 1С реализован отдельный интерфейс в виде Messager.dll
у него есть метод .RaisePassEvent StatusType, StatusNumber, StatusDescrEN, StatusDescrRU
а он уже имеет IInitDone и портирует команду как событие в 1Совскую ОбработкаВнешнегоСобытия(StatusType.StatusNumber, StatusDescrEN, StatusDescrRU)
потому обьявление в 1С так:
подключитьвнешнююкомпоненту("AddIn.Messager"); запускаю Messager
мсж = CreateObject("AddIn.Messager"); - подключаюсь к сом-интерфейсу Messager
ком = CreateObject("WARC.CommDirect"); - подключаюсь к сом-интерфейсу WARC
ком.ExtMessager=мсж; говорю WARC, что его ExtMessager это мой мсж
для пользующихся 8-кой у Messager есть событие Объект_ChangeStatus()
для запуска проги нужно
regsvr32 MSCOMM32.OCX,
regsvr32 Messager.dll
запустить ерт, по инициализации в трее у WARC есть меню, там:
создать пользователей, ввести телефон, пароль, установить настройки порта,
положить че-нить в оутбоксы с двух сторон (папки прога сама сделает) и все
все это можно делать интерактивно, создав интерфейс в 1С
при вызове пользователь.Ring() WARC позвонит, получит, отправит, отключится
меню появилось только для отладки, думаю далее все это убрать, в частности окно терминала
терминал поддерживает команды
LOGON
LOGOFF
CALLBACK +если /NS то не передает файлы
GETFILE имя (из CURDIR, по умолчанию OutBox, можно сменить командой CURDIR)
FILE=имя принимает файл и записывает его в инбоксе с указанным именем
GETALLFILES получить все файлы из оутбокс
CD аналог
DIR показать файлы и каталоги
FILES показать файлы
DRIVES показать диски
SHELL выполнить прогу
CURDIR сменить текущый каталог
CDOUTBOX текущый каталог - оутбокс
CDLASTCNT текущий - каталог последней сессии
ADDTASK добавить задачу на удаленном компе, порядок такой же как в классе sheduler, разделять значения "|"
TASKS перечень задач
DATE посмотреть дату
DISABLED деактивировать (не будет принимать звонки)
END, EXIT
полная версия
лицензионное соглашение:
используйте кому где надо без ограничений as is,
т.е. как есть без какой бы то ни было ответствености разработчика
кому нужны изменения, протокол или исходники, связывайтесь, поговорим