Страница 18 из 35
Класс для API АТОЛ «Драйвер ККТ версии 10»
Добавлено: 18 Январь 2019, 10:36
Игорь Столяров
Привет всем !
Класс работы с драйвером ККТ АТОЛ 10 на основе JSON заданий.
(форк класса ADMIN'а 2019 г.)
Класс рабочий, в комплекте примеры использования. Любые замечания и дополнения - приветствуются.

В FTP разделе форума создана папка:
/_Books/Atol.KKT со всей сопутствующей документацией.
ВНИМАНИЕ !
Для работы с КМ (кодами маркировки) через JSON задания требуется прошивка ККТ 5.12 и выше (двухлетней давности).
На старых прошивках будет ошибка: Объекту 0x05C1E828 присвоен код ошибки 148 [Ошибка программирования реквизита 1023]
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 (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 окно не пробовали?
Конечно, так работает. Как минимум это есть в оригинальном примере Админа.
