Ваша проблема до боли знакома. Согласен, что, скорее всего, дело в настройках сканера. Многое зависит от модели. Мною испытано две: Metrologic MS6720 и Zebex Z-3080. Последний продаётся без настроечных таблиц, пришлось искать в сервис-центре.
Начать с того, что в РШК не нужно передавать контрольный разряд (речь идёт о EAN-13). У Metrologic это называется "Do not Transmit EAN-13 Check Digit" (рage D-4 of Programming Guid, Part 1), у Zebex -- "TRANSMIT EAN-13 CHECK DIGIT / No" (p. 29 of USER'S MANUAL for ZEBEX'S BARCODE SCANNERS).
Далее. В руководстве к РШК сказано, что следует отменить проверку на чётность. У Zebex'а это делается настройкой "PARITY / None" (p. 16). У Metrologic, как это ни парадоксально, проверка чётности не отменяется (p. E-1). Однако болезнь лечится запрещением символа прогона строки "Disable Line Feed" (p. E-11). Длина слова -- 7 или 8 бит -- для Metrologic'а оказалась некритичной. Производителем РШК рекомендуется 8, но сканер работает и при 7 по умолчанию.
В руководстве к РШК приводится типовые настройки сканера, но у разных сканеров они могут называться по-разному.
В случае, когда после первого чтения РШК впадает в клинч, складывается впечатление, будто считанная последовательность залезла хвостом в начало следующего поля, поэтому следующее чтение уже не соответствует формату. Попробуйте поотменять различные префиксы-суффиксы.
А кнопки сброса у РШК, действительно, нет. Когда Вы победите сканер, Вы снисходительно будете вспоминать, что она когда-то вообще была нужна. Однако разработчикам не мешало бы установить такую кнопку, хотя бы и скрытую, если есть опасение случайного нажатия. Потому что для пользователя стадия ввода в эксплуатацию, пусть и короткая по сравнению с самой эксплуатацией, весьма важна и насыщена.