|
Обработка внешнего события.
|
|||
---|---|---|---|
#18+
Всем доброго дня. Кто может подсказать в таком вопросе. Есть устройство "прайс чекер". С 1с это работает так, загружаем внешнюю компоненту и обрабатываем поступившие внешние события. При начале работы создаем объект: Процедура ЗагрузитьВнешнююКомпонентуПрайсЧекер() Экспорт Попытка ЗагрузитьВнешнююКомпоненту("PriceDrv.dll"); Исключение Сообщить("Внешняя компонента PriceDrv.dll не найдена"); Возврат; КонецПопытки; глПрайсЧекер = Новый ("Addin.PriceChecker"); Сообщить("Внешняя компонента PriceChecker загружена"); глПрайсЧекер.ОткрытьСервер(); КонецПроцедуры В момент когда кто то сканирует штрихкод: Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные); // Посылка ответа Товар = "Како либо товар найденный по штрихкоду"; Цена = " Цена - " + Формат(100,"ЧДЦ=2")+" руб."; глПрайсЧекер.IDКлиента = Событие; Если глПрайсЧекер.GetSenderParams() = 0 Тогда глПрайсЧекер.Строка1 = Товар; глПрайсЧекер.Строка2 = Цена; Иначе Сообщить("GetSenderParams: " + глПрайсЧекер.ResultCode + ", " + глПрайсЧекер.ResultCodeDescription); КонецЕсли; КонецПроцедуры На Фоксе goPriceCheck = CreateObject("Addin.PriceChecker") goPriceCheck.OpenServer() А вот как получить событие не представляю. Здесь файлы к устройству https://yadi.sk/d/SNPXo3I962hEDg ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2020, 13:20 |
|
Обработка внешнего события.
|
|||
---|---|---|---|
#18+
Valery_61, вопрос номер раз - а почему решили, что эту внешнюю компоненту для 1с можно вот так использовать вне 1с? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.08.2020, 17:50 |
|
Обработка внешнего события.
|
|||
---|---|---|---|
#18+
Вопрос решен все работает. Примерно так В главном модуле oEvents = CreateObject('myclass') EVENTHANDLER(goPriceCheck,oEvents) Создал класс для обработки событий DEFINE CLASS myclass AS session OLEPUBLIC IMPLEMENTS IPriceCheckerEvents IN "c:\Program Files (x86)\Штрих-М\Драйверы\Драйвер PriceChecker\PRICEDRV.DLL" PROCEDURE IPriceCheckerEvents_DataEvent(Data AS STRING, SenderID AS Number) AS VOID goPriceCheck.SenderID = SenderID IF goPriceCheck.GetSenderParams() = 0 THEN *Далее понятно что товар и цену ищем в базе goPriceCheck.Line1 = "Товар" goPriceCheck.Line2 = "Цена" goPriceCheck.SendAnswer() ENDIF ENDPROC PROCEDURE IPriceCheckerEvents_LogEvent(Data AS STRING) AS VOID * add user code here ENDPROC ENDDEFINE Всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2020, 09:07 |
|
|
start [/forum/topic.php?fid=41&fpage=4&tid=1581526]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 273ms |
total: | 425ms |
0 / 0 |