Страница 18 из 35

Класс для API АТОЛ «Драйвер ККТ версии 10»

Добавлено: 18 Январь 2019, 10:36
Игорь Столяров
Привет всем !

Класс работы с драйвером ККТ АТОЛ 10 на основе JSON заданий.
(форк класса ADMIN'а 2019 г.)

Класс рабочий, в комплекте примеры использования. Любые замечания и дополнения - приветствуются. :)
В FTP разделе форума создана папка: /_Books/Atol.KKT со всей сопутствующей документацией.

ВНИМАНИЕ !
Для работы с КМ (кодами маркировки) через JSON задания требуется прошивка ККТ 5.12 и выше (двухлетней давности).
На старых прошивках будет ошибка: Объекту 0x05C1E828 присвоен код ошибки 148 [Ошибка программирования реквизита 1023]

atol2.png

ATOL драйвер 10.x

Добавлено: 08 Июль 2020, 15:08
finsoftrz
Мне просто эту ссылку админ дал.
Сама история такая. У одного клиента не уходили чеки в офд. Он стукнулся в техподдержку сбиса. Оттуда кто-то удаленно подключился, переправил чеки (зашел в тест драйвера, включил флажок подключено), чеки ушли. Сказал, что у вас проблема в кассовом софте, он должен режим передачи чеков в офд включать. Поехал админ разбираться. Выяснил, что проблема возникает только при указанном устаревшем способе подключения. На одной из касс переключил на сетевой вариант, все заработало. А на второй кассе технически это сделать проблематично. Передал вопрос мне. Клиенту пока показал, как зайти в тест драйвера и поставить флажок подключения. Благо, что они ккм пользуются не часто.

ATOL драйвер 10.x

Добавлено: 08 Июль 2020, 15:10
finsoftrz
А по ссылке я не понял. В дто 10 вроде как таблиц нет. Это в дто 8 было.

ATOL драйвер 10.x

Добавлено: 08 Июль 2020, 17:56
finsoftrz
В общем, скорее всего, в данном режиме отправляет только при активном подключении. У нас кассовый сервер постоянное подключение не держит. Пришел чек, подключился, напечатал, отключился. Не успевает отправить в ОФД.

ATOL драйвер 10.x

Добавлено: 09 Июль 2020, 14:10
Игорь Столяров
finsoftrz писал(а): 08 Июль 2020, 17:56 Пришел чек, подключился, напечатал, отключился.
Это и есть "старая" модель работы с АТОЛ ДТО8. :( Для ДККТ10 не будет работать - надо менять.

1.jpg
1.jpg (87.37 КБ) 5299 просмотров

ATOL драйвер 10.x

Добавлено: 09 Июль 2020, 15:39
Игорь Столяров
finsoftrz писал(а): 09 Июль 2020, 14:49 если говорить дипломатическим языком
Грустные истории о АТОЛ ДККТ10 есть у всех, наверное.
У меня есть юзер - к серверу на Win2003 подключены два АТОЛ через COM порты ещё. С ДТО8 всё работает как часы лет 10 уже.
Стали переводить на ДККТ10 - выдаёт какие-то дикие коды ошибок и не печатает. Ничего. В том смысле, что совсем ничего. :(
Написали в тех. поддержку АТОЛ. А там быстро ответили на простой вопрос: мы ДККТ10 с Win2003 и другими Windows,
снятыми производителем с тех поддержки - не тестируем. Вроде - работает, а если что-то клинит - обновите Windows. :(

ATOL драйвер 10.x

Добавлено: 09 Июль 2020, 16:36
finsoftrz
Увязывать передачу данных в офд с подключением из верхнего ПО шедеврально. В целом, я понимаю ход мыслей. Они хотят постепенно перейти на работу через свой веб сервер, который будет выполнять необходимые функции. То есть, как такового в привычном смысле слова, драйвера и нет сейчас. Есть библиотека и приложения, которые через нее работают (настройка, тест драйвера, наши приложения, веб сервер).

Проблема с передачей данных в офд возникает, насколько я понял, только при одном из 4 возможных вариантов подключения. Видимо, при остальных чеки сразу передаются в офд, а при нем ставятся в очередь и затем отправляются в фоновом режиме, если какая-либо из программ подключилась.

ATOL драйвер 10.x

Добавлено: 09 Июль 2020, 17:29
Игорь Столяров
finsoftrz писал(а): 09 Июль 2020, 16:36 Они хотят постепенно перейти на работу через свой веб сервер, который будет выполнять необходимые функции.
На мой субъективный взгляд - нет. Здесь другое.

Программное ядро ФР состоит из двух частей: прошивки ФР и собственно драйвера.
Так вот АТОЛ хочет максимально (а в идеале полностью) переместить весь программный код в драйвер.
Это удешевит железо ФР и снимет ограничения на размер памяти и скорости процессора ФР.
Т.е. сам ФР должен стать по сути печатно-коммуникационным девайсом, полностью управляемый драйвером. :)

ФР тянут за собой проклятие прошлых десятилетий, когда компьютер "не тянул" формирование и печать чека и
эти операции выполнялись специализированным аппаратно-программным комплексом, т.е. ФР. Да и скорость
обмена по COM порту была неторопливая, от слова совсем … :)

Сейчас-то всё уже по другому. Посмотрите современный струйный принтер - в нём практические ничего нет
кроме порта обмена и собственно печатного механизма - всю обработку и управление печатью выполняет драйвер.

ATOL драйвер 10.x

Добавлено: 09 Июль 2020, 17:39
finsoftrz
Одно другому не противоречит. Сейчас в дто10 драйвер не является самодостаточной управляющей программой, как в дто8 или в штрихах. Значит, над ним должна быть надстройка. В идеале, их же веб сервер, чтобы лучше контролировать процесс, а не сразу верхнее прикладное ПО. А функции прошивки вполне могут постепенно перекочевать на уровень драйвера.

ATOL драйвер 10.x

Добавлено: 09 Июль 2020, 19:26
Игорь Столяров
finsoftrz писал(а): 09 Июль 2020, 17:39 А функции прошивки вполне могут постепенно перекочевать на уровень драйвера
Процесс пошёл ! (С) М.С. Горбачёв
Например системные таблицы ФР переехали уже из прошивки на сторону драйвера в ДККТ10.

Сервис - это мечта разработчика, а не пользователя. ;) Если предположить гипотетическую систему
с идеальным и бесперебойным интернетом, то не нужна ни прошивка, ни фискальный накопитель, ни драйвер. :)
Сервис может управлять ФР, а разработчик делать всё, что угодно с сервисом и собирать с юзеров подписку. ;)

ATOL драйвер 10.x

Добавлено: 10 Июль 2020, 11:30
Игорь Столяров
Я заранее извиняюсь, но всё-таки хочу спросить.
Есть некое MDI окно, в нём кнопка. По нажатию кнопки вызываем панель управления АТОЛ ДККТ10:

Код: Выделить всё

    If MyAtol.Init() = LIBFPTR_OK
       If MyAtol.OpenDialog() = LIBFPTR_ERROR then Message(MyAtol.ErrorDescription()).
    end
У кого-нибудь этот код работает ? Особенно если попытаться закрыть / открыть панель управления АТОЛ несколько раз ?

ATOL драйвер 10.x

Добавлено: 10 Июль 2020, 12:00
Admin
Init два раза вызываешь что ли?

ATOL драйвер 10.x

Добавлено: 10 Июль 2020, 14:14
Игорь Столяров
Admin писал(а): 10 Июль 2020, 12:00 Init два раза вызываешь что ли?
Конечно нет. :) Пардон, надо было пояснить - класс изменён ! У меня проверка загрузки и собственно загрузка библиотеки
перенесена в Atol.Init() для инициализации библиотеки из DLL по первому обращению, а не всегда при открытии окна. :)
Но сути это не меняет - т.е. если в оригинальном коде библиотеки:

Код: Выделить всё

    OPEN(Atol10_Demo_MDI_Window)               ! В начале процедуры
    IF SELF.Init() <> LIBFPTR_OK  then RETURN. ! создаем дескриптор библиотеки
     …   
     … 
     ! Нажатие кнопки в MDI окне
     IF SELF.FlagLoaded
        IF SELF.OpenDialog() = LIBFPTR_ERROR ! 1 = cancel, LIBFPTR_OK, LIBFPTR_ERROR
            MESSAGE(SELF.ErrorDescription(),SELF.ErrorCode())
            RETURN
        END
     END
Всё то же самое. :( По первому нажатию кнопки грузится секунд 20 как из глубин ада, а по второму всё переклинивает. :(

ATOL драйвер 10.x

Добавлено: 10 Июль 2020, 16:58
Admin
Только в понедельник на работе смогу посмотреть.

ATOL драйвер 10.x

Добавлено: 10 Июль 2020, 17:36
finsoftrz
А не mdi окно не пробовали?

ATOL драйвер 10.x

Добавлено: 10 Июль 2020, 19:48
Игорь Столяров
finsoftrz писал(а): 10 Июль 2020, 17:36 А не mdi окно не пробовали?
Конечно, так работает. Как минимум это есть в оригинальном примере Админа. ;)