1. Поговорите на эту тему с любым мастером сервисного центра. После того, как он выматерится, Вы узнаете,
что у Штрихов "больное" место - это кабели. Точнее их качество. Первым делом при ошибке "нет связи" меняется кабель.
Как правило - это решает проблему. Как мне объясняли - там какая-то беда с качеством контактной группы (Китай ?).
2. Архитектура Штриха изначально (очень давно) строилась под медленный COM порт и особо не изменилась (в отличии от АТОЛ).
Поэтому желательно не перегружать буфер печати, т.е. не гнать в него данные потоком, пока есть ещё не распечатанные.
В общем-то это описано в документации, просто обычно это место пропускают и упрощают код …
Реализовать сказанное выше можно по разному, например вставляем после КАЖДОЙ команды печати вызов:
Код: Выделить всё
ShtrihM_WaitPrint PROCEDURE (Object_) ! Declare Procedure
Loc:RetValue BYTE(False)
CODE
Loop
Case Int(Object_{'WaitForPrinting'})
Of 0
Break
Of -34
If Message(' В ККМ закончилась кассовая лента !| Вставьте новый ролик с лентой.|| Продолжить печать ?','У нас проблема !',Icon:Question,Button:Yes+Button:No,Button:Yes) <> 2
Display
Loc:RetValue = True ! Выход с ошибкой
Break
else
Object_{'ContinuePrint'}
end
Of -1
Object_{'GetShortECRStatus'}
else
If Int(Object_{'ResultCode'})
Message(' Ошибка: ' & Clip(Left(Object_{'ResultCodeDescription'})),'Сообщение',Icon:Exclamation,'&1. Закрыть')
Loc:RetValue = True ! Выход с ошибкой
end
Break
end
end
Return(Loc:RetValue)