Доброго дня!
Згідно документації та стандартної обробки для 1С вдалось реалізувати роботу КА МІНІ-ФП54.01 по стандартним командам. Але є задача виводити на форму обробки дані по руху грошових коштів.
В КА Мария є команда GetCashInfoXML(), за допомогою якої раніше виводили необхідні дані:
НачОстаток = "rest";
СлужВнесение = "income";
СлужИзъятие = "outcome";
Получено = "sales";
Выдано = "return";
КонОстаток = "total";
КассовыйАппаратОбъект.T400me("get_report;0;"); // має зберігати Х1 звіт.
Cordelia @ Сегодня, 10:07
,
Добрий день, спробуйте утилітою TstT400Server виконати команду...
Cordelia @ Сегодня, 10:07
,
Я працюю з MINI-T400, але драйвер використовується той самий що і для фіскального реєстратора. Зараз якраз була Кампанія по перепрошивках Касових апаратів і реєстраторів під нові вимоги законодавства для друку штрихкодів акцизних марок.
Тому насамперед питаненя:
1. Ви перепрошивали свій реєстратор? і помилка виникла після перепрошивки?
2. Попередній драйвер видалили?
3. після цього новий драйвер зареєстрували (від імені адміністратора) (І згідно інструкціі повинен ще лежати в папці C:\olesrv)
volodya1122 @ Сегодня, 14:47
,
Я так розумію, що все працює, відбувається друк і т.д., тобто всі вказані вами дії вже зроблені, проблема при виконанні конкретної команди.
Gazulo, Це не до мене.
Все працює, друкує всі необхідні чеки і звіти, але саме ця команда не виконується.
Так, спочатку відкриваю порт:
Функция Инит() Экспорт
НомерПорта = ПолучитьКомПортКА();
КассовыйАппаратОбъект = Новый COMОбъект("ecrmini.t400");
КассовыйАппаратОбъект.T400me("open_port;"+НомерПорта+";115200");
КодОшибки=КассовыйАппаратОбъект.get_last_error;
Если КодОшибки = 0 Тогда
КассовыйАппаратОбъект.T400me("open_port;"+НомерПорта+";115200");
КассовыйАппаратОбъект.T400me("cashier_registration;1;0;");
КассовыйАппаратОбъект.T400me("set_error_log;0");
Иначе
Сообщить(" Ошибка открытия порта= "+КодОшибки+", "+КассовыйАппаратОбъект.get_error_info);
КонецЕсли;
Возврат КассовыйАппаратОбъект;
КонецФункции
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-сервер попередніх версій не розуміє). Якщо не перепрошитий - ситуація дзеркально подібна, тож оновлювати драйвер не потрібно, або, якщо це відбулося - поставити попередню версію.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua