8.2. ВнешнееСобытие() и Сканер ШК с памятью. Передать данные одним потоком. #563016


#0 by Svetlahok
Добрый день! Есть сканер с памятью, при установке его на подставку с помощью обработки внешнего события данные обрабатываются в 1с. Можно ли передать во внешнее событие сохраненные в памяти сканера данные одним потоком? (сейчас для каждого штрихкода из памяти вызывается внешнее событие). Сканер proton ims 3180
#1 by romix
События и так идут одним потоком :-) В принципе их можно накапливать в таблице значений, и по кнопке или таймеру обрабатывать в цикле.
#2 by Svetlahok
у меня проблема в том, что не все запомннные в памяти шк в конечном итоге попадают в 1с (для тестирования на форме есть тз и в нее построчно добавляются шк). Пробовала скорость передачи данные уменьшать - не помогло.
#3 by Svetlahok
видимо шк очень быстро в 1с передаются и программа не успевает их все обработать
#4 by romix
А там еще должна быть настройка типа глубины буфера событий.
#5 by MikeFromAtol
ну так делай как в написано. Пусть данные сначала буферизируются а ты их потом разбирай. А вообще еще есть смысл посмотреть в сторону ТСД, на них гораздо удобнее работать в оффлайне с товарами
#6 by romix
Наверное правильнее будет через текстовый файл все передавать (в событии только имя файла).
#7 by Svetlahok
- настройка глубины буфера - это во внешней компоненте? (использую 1с -овскую) Про накапливать в ТЗ - мне подходит даже удобнее. Поясните, пожалуйста, в тз ведь данные сохранять тоже при обработке внешнего события? т.е. сработало событие - штрихкод в тз сохранила, след. внешнее событие - опять сохранила. Но у меня внешнее событие вызывается меньшее кол-во раз, чем шк в памяти сохранено
#8 by romix
В 1С почему-то сделали буфер событий ограниченной длины - могли бы сделать и неограниченным. Это может быть каким-то атавизмом от старых систем, там по хорошему надо его расширить до бесконечности. Мое предложение написать в службу поддержки Сергею Нуралиеву, я думаю в 8.2 они это исправят и сделают буфер бесконечным, чтобы события не терялись. Решения с буферизацией через массив или список/таблицу значений - это паллиатив, может кстати и не сработать, если 1С не успеет. Также на уровне самой ВК можно написать буферизацию через текстовый файл, например, чтобы туда оно сливало. Если Вы захотите через ICQ это дело тестировать то можно попробовать (мне не на чем тестировать).
#9 by romix
В методе или свойстве внешней компоненты может быть какой-нибудь EventBufferDepth=... ГлубинаБуфераСобытий= или одноименный метод наподобие ГлубинаБуфераСобытий(число) или УстановитьГлубинуБуфераСобытий(число) и т.п. Можно заценить описание компоненты или посмотреть на саму компоненту каким-нибудь текстовым редактором - среди мусора там видны имена методов.
#10 by big
каким драйвером обрабатываете события? В этом драйвере есть свойство а-ля "ПосылкаДанных" ?  Если есть, то это и будет командой для остановки выдачи данных из БУФЕРА ДРАЙВЕРА СКАНЕРА. Собссно в 1С в штатном режиме такой процесс и реализован, но как это сделано у вас - непонятно. з.ы. т.е. всегда при каждом приходе события от драйвера сканера дается команда СТОП для посылки след. данных до окончания обработки текущей посылки.
#11 by big
+ хотя... если это один поток... что-то я не то сказал.
#12 by Svetlahok
тестировать-то я, конечно, не против. Но сначала, попробую добиться нужного результата с пом. готовых компонент.
#13 by Svetlahok
про один поток, я имела ввиду, чтобы все сохраненные ШК вызывали одно ВнешнееСобытие и все одним массивом данных пердавалось в 1с
#14 by Svetlahok
попробовала использовать драйвер Атол 6.6.0.418. в 1с загружаются все шк, но это занимает очень много времени (130 шк примерно 25 минут)
#15 by big
используй версию драйвера до 6.5 включительно, а иначе он работает в демо-режиме (10 секунд на один штрихкод)
#16 by Svetlahok
да, я прочитала про это ограничение. у меня нетиповая конфигурация, взяла из ут 11 механизм работы с оборудованием. там внешняя компонента с драйвером хранится в виде макета двоичных данных. Найти внешнюю компоненту с драйвером 6.5 не удалось (сам драйвер то есть, но это не внешняя компонента), так что буду пробовать из ут 10 "перетащить" к себе механизм и адаптировать под управляемое приложение.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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