Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

COM объекты, фоновые задания итд. Помогите подобрать оптимальное решение.

COM объекты, фоновые задания итд. Помогите подобрать оптимальное решение.
Я
   cube033
 
25.07.19 - 06:54
Самописная конфигурация. Платформа 8.3. Управляемые формы.
Много лет работает АРМ Весовщика автомобильных весов, суть которого проста: Программа получила данные весов, оператор заполнил несколько полей, нажал кнопку машина взвешана.
Реализовано это через обработчик ожидания (2 сек) и глобальную переменную, которая хранит COM объект весов. Каждая итерация состоит из опроса оборудования и логики.
Со временем это стало обрастать как логикой (контроль всего подряд, наряды итд) так и оборудованием: датчики позиционирования, идентификации, внешние табло итд
И вот я чувствую, что из-за обилии логики, работа с оборудованием задушена и идет медленнее, чем может. Хочу вынести её (работу с оборудованием) отдельно.
Первое решение, которое пришло в голову: фоновое задание и промежуточный регистр с результатами работы оборудования. Минус - негде хранить COM объекты и постоянно приходиться создавать/убивать экземпляры драйверов. Это работает, но не всегда хорошо, так как в самих драйверах работа завязана на таймерах и от момента создания до опроса - часто драйвер сам не успевает опросить оборудования - надо переписывать.
Как вариант можно запускать параллельный сеанс, который будет работать с оборудованием и в своем контексте хранить драйвера, но это дикий костыль.
Меня бы устроила просто многопоточность на клиенте, но толком не нашел примеров реализации.
Есть вроде вариант запускать с клиента (который хранит в контесте СОМ объекты) фоновые задания с передачей своих параметров, но там вроде передаются только сериализуемые объекты, если верить СП.
Может у кого-нибудь есть идеи как запареллелить работу логики и оборудования, сохраняя экземпляры драйверов между итерациями.
 
 
   cube033
 
1 - 25.07.19 - 07:55
Забыл еще вариант, от которого меня коробит. При старте программы запускать фоновое задание, которое создаст все необходимые экземпляры драйверов и уйдет в бесконечный цикл с входом в тело по таймеру и выходом из цикла по внешнему условию (типа проверка константы или значения записи регистра). И хранение объектов есть и параллельная работа. Еще из плюсов - частота итераций не ограничена одной секундой как в случае с регламентными заданиями. Из минусов - бесконечный цикл кажется мне безусловным злом.
   cube033
 
2 - 25.07.19 - 10:57
ап

Список тем форума
Рекламное место пустует  Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.