Cordelia @ 12.10.21, 9:07
,
Доброго дня.
Може запізно і проблема вирішилася, але вставлю свої 17 копійок.
Я так розумію, що ви проводите ініціювання послідовного порту один раз?
Як показала багаторічна практика 54 апарати полюбляють, щоб їм постійно нагадували про те, до якого порту вони підключені. Окрім того, можливо, що КА не знає, куди записати файл.
Тому, я б вчинив наступним чином:
1. Повідомив би ЕККА, куди писати файл (точніше OLE-серверу):
1.1. Підключаю порт: "open_port;3;115200;"
1.2. Налаштовую каталог: "set_dir;D:\OLE\Exemple;"
1.3. Закриваю порт: "close_port;"
2. Виконав би звіт:
2.1. Відкриваю порт
2.2. Виконую звіт: "get_report;0;"
2.3. Закриваю порт;
По Вашому коду я бачу, що ви у обов’язковому порядку при ініціалізації порту проводите реєстрацію касира. Не знаю, наскільки це виправдано для кожного випадку зверенення до порту. Наприклад при внесенні товарної позиції до чека це не обов’язково. А от при оплаті - так.
Можливо цей звіт не вимагає реєстрації касира. Я сам не користуюся
get_report (немає необхідності).
І ще одне. Якщо КА перепрошитий на 5401F3, то йому потрібно поставити останній драйвер (там є зміни, які OLE-сервер попередніх версій не розуміє). Якщо не перепрошитий - ситуація дзеркально подібна, тож оновлювати драйвер не потрібно, або, якщо це відбулося - поставити попередню версію.