ОбработкаОжидания - как обмануть 1С #235313


#0 by Stackmann
Приветствую. Есть такая проблемка. Есть автомобильные весы, которые подключены через СОМ-порт к компьютеру. Есть ОЛЕ-сервер, с помощью которого я снимаю показания в 1С из документа, который регистрирует вес в базе. Мне нужно записать документ, как только произойдет падение веса. Слежение падения веса делаю через Форма.ОбработкаОжидания("ОтследитьПадениеВеса",1) А вот когда собираюсь записать документ(через Записать), то 1С ругается, что нельзя записывать из формулы. Как его можно обмануть? Или как это можно реализовать по другому? Заранее благодарен.
#1 by SteelScorpion
чур памидорами не кидаться :)
#2 by SteelScorpion
Если надо что-то делать оператору в документе, то вынести цикл ожидания падения веса на кнопочку, запустить цикл на определенное количество итераций (определенное, естественно, путем эмпирическим), после чего если в процессе дождались сигнала от ОЛЕ - выполнить запись. Если не дождались - действие по вкусу, приводящее к возврату управления в документ.
#3 by Ork
Есть ли возможность у Оли сгенерировать событие? Зачем ОбработкаОжидания? А если весы сработают не тогда когда эсина в режиме ожидания? Замер не будет произведен? Короче - хотя бы примерно опиши возможности оле-сервера.
#4 by Ork
+ Задача в напоминает подбор товара в документ с помощью СОМ-овского сканера штрих-кода. Реализована в любой типовой конфигурации. Реализивана через ОбработкаВнешнегоСобытия
#5 by SteelScorpion
На крайний можно попробовать поднимать флаг при обработке события и закрывать форму, а в ПриЗакрытии проверять флаг и записывать принудительно.
#6 by SteelScorpion
(+5) Не потеряйте из внимания замечание в о неактивности 1С. Даже учитывая 1 секунду задержки стоит иметь это ввиду.
#7 by Stackmann
Кнопка не пойдет. В том то и дело, что это должно делаться само, независимо от оператора (оператор может и не нажать, а записать документ надо обязательно).
#8 by SteelScorpion
Если не нужно участие оператора вообще, то пусть открывает док и тот ждет в цикле. Ну а если все же в неизменном виде задачу решать, то должно спасти
#9 by Stackmann
Нет, ОЛЕ-сервер не может сгенерировать событие. Ситуация такая: заезжает автомобиль на весы, затем оператор нажимает кнопку и 1С считывает показания весов и заносит в реквизит открытого документа, затем как только машина съехала с весов данные должны записаться в базу, потому как может следом заехать другой автомобиль и она опять нажмет кнопку занесения веса,а ведь данные по машине занесены по предыдущей машине. Убрать доступность кнопки занесения веса сразу после первого нажатия я не могу - оператор может ошибиться и взвесить вместе в водителем на платформе, а надо без. Вот я и даю ей шанс на исправление ошибки, но только до падения веса до нуля.
#10 by Stackmann
Возможности ОЛЕ-сервера: Проверять Готовность весов: результат все ОК или код ошибки Возвращать показание весов Проверять стабильность показаний: результат 1 или 0 И все. :(
#11 by Stackmann
Так не сработает - выдаст ту же ошибку.
#12 by romix
Может быть это поможет: (ВК с исходным кодом там приложена).
#13 by Stackmann
Спасибо за ссылку. Решил проблему при помощи FormEx. Сам вызвал внешнее событие и в ОбработкаВнешнегоСобытия записал документ.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С