Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
24.08.2020, 13:20
|
|||
---|---|---|---|
|
|||
Обработка внешнего события. |
|||
#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, 17:50
|
|||
---|---|---|---|
|
|||
Обработка внешнего события. |
|||
#18+
Valery_61, вопрос номер раз - а почему решили, что эту внешнюю компоненту для 1с можно вот так использовать вне 1с? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.08.2020, 09:07
|
|||
---|---|---|---|
|
|||
Обработка внешнего события. |
|||
#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 Всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&mobile=1&tid=1581526]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
373ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 275ms |
total: | 732ms |
0 / 0 |