:: Visual Foxpro, Foxpro for DOS
Новая касса АТОЛ -30Ф
Maestro
Автор

Сообщений: 533
Откуда: г.Благовещенск А
Дата регистрации: 14.08.2002
Надо подключить это чудо к программе на VFP.
Должны же быть готовые DLL ки и описание работы с этим чудом?
Навскидку не нашел. Выкладывайте у кого что есть.
Раньше в программе работал фискальник от ZEBRA, но он был COM портовый и там была DLL с описанием.
А теперь вот эта..
Спасибо.
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
pasha_usue

Сообщений: 3650
Откуда: Е-бург
Дата регистрации: 06.10.2006
Ну, соответственно, АТОЛовский драйвер ККМ надо ставить. Он по COM-технологии. Описалово есть в поставке драйвера.
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
вопрос не по теме.
Этот АТОЛ -30Ф соответствует тому, что начнется с июля?
Тут вчера ошарашили))) Что касса должна будет он лайн, в инет передавать...
МАРАЗМ крепчает!


------------------
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Maestro
Автор

Сообщений: 533
Откуда: г.Благовещенск А
Дата регистрации: 14.08.2002
Читаю описание. В нем много написано, в этом и беда.
Написано нажмите то-то будет то. А если не будет?
В программе (драйвере) 18 закладок с кнопками, буквами и цифрами.
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
pasha_usue

Сообщений: 3650
Откуда: Е-бург
Дата регистрации: 06.10.2006
Maestro
Читаю описание. В нем много написано, в этом и беда.
Написано нажмите то-то будет то. А если не будет?
В программе (драйвере) 18 закладок с кнопками, буквами и цифрами.
Из всех этих закладок я использую две-три. Регистры, что б текущее состояние посмотреть. И ФП/ЭКЛЗ/ЭЖ, когда надо отчеты за предыдущие смены распечатать.

Режим "5 - Доступ к ФП" трогать нельзя. И вообще всё, что связано с ФП трогать нельзя. Одна неверная попытка ввода пароля налоговой инспекции блокирует эту железку нахрен.
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
pasha_usue

Сообщений: 3650
Откуда: Е-бург
Дата регистрации: 06.10.2006
И да. У меня 17 закладок в версии 6.20.1.0
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
pasha_usue
Одна неверная попытка ввода пароля налоговой инспекции блокирует эту железку нахрен.
Что-то совсем уж жестоко. Право на хотя бы одну опечатку все-таки должно быть
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
pasha_usue

Сообщений: 3650
Откуда: Е-бург
Дата регистрации: 06.10.2006
spinz
pasha_usue
Одна неверная попытка ввода пароля налоговой инспекции блокирует эту железку нахрен.
Что-то совсем уж жестоко. Право на хотя бы одну опечатку все-таки должно быть
Я не понял, почему так, но если железка переводится в режим фискальной памяти, она начинает ждать правильный пароль. И не реагирует больше ни на что. По питанию перезагружали, бесполезно. Конкретно проблема была с FPrint-55k. Обслуживающая организация по TeamViewer тупо пробила пароль налоговика и пожурила в телефонную трубку. Пароль я сохранил, но в память больше не лез.

А, и да. Попыток ввода пароля неограниченно. Так что право на опечатку есть (;Ж



Исправлено 1 раз(а). Последнее : pasha_usue, 20.01.17 10:27
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
А, я чота подумал, что неверный пароль - и железка окончательно и безвозвратно превращается в кирпич
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Василий

Сообщений: 682
Откуда: Москва
Дата регистрации: 19.10.2000
Аспид
Этот АТОЛ -30Ф соответствует тому, что начнется с июля?
Да

pasha_usue
У меня 17 закладок в версии 6.20.1.0
Версию бы поменять на 8.12



Исправлено 1 раз(а). Последнее : Василий, 21.01.17 23:23
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Maestro
Автор

Сообщений: 533
Откуда: г.Благовещенск А
Дата регистрации: 14.08.2002
Нашел старые модули, которые работали с Зеброй.
Там я создавал класс CREATEOBJECT('AddIn.DrvFr')
И далее шуровал уже с ним. Было описание всех его методов и свойств.
И, вроде бы, был образец на языке 1С, который я трансформировал под фокс. Сам бы я вряд ли придумал такой бред
И эта кухня проработала до сих пор не меняясь.

Может у кого есть что-то подобное или понимание куда копать.

В руководстве программиста написано, что нужна библиотека fptr.dll



Исправлено 1 раз(а). Последнее : Maestro, 23.01.17 03:33
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Maestro
Автор

Сообщений: 533
Откуда: г.Благовещенск А
Дата регистрации: 14.08.2002
Начал изучать директории и обнаружил пример работы на VFP6 !
Ребятам из ATOL - респект!
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
descent52_tmp

Сообщений: 214
Откуда: Саров
Дата регистрации: 20.11.2014
Выкладывай пример, Маэстро!
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Maestro
Автор

Сообщений: 533
Откуда: г.Благовещенск А
Дата регистрации: 14.08.2002
Примеры Атола на Фоксе - просто отдельные модули и создание класса. Класс создается. Модули работают.
По прежнему нет целостности картины.
Модули там не все и их надо запускать в каком-то порядке, чтобы получить результат.
Сама идея как писать модули и стучаться к кассе и получать от нее действия понятна.
Не понятно какие надо получать действия. Просто переименовать старые вызовы не полилось.
Новые другие, и нет многих и есть много лишних.
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Maestro
Автор

Сообщений: 533
Откуда: г.Благовещенск А
Дата регистрации: 14.08.2002
Вот что нашел. Может надо кому. Завтра попробую воткнуть в фокс.
***********************
Это 1С 7.7 печатает
Процедура Demo()
// занимаем порт
ECR.DeviceEnabled = 1;
Если ECR.ResultCode <> 0 тогда
Возврат;
КонецЕсли;

// получаем состояние ККМ
Если ECR.GetStatus() <> 0 тогда
Возврат;
КонецЕсли;

// проверяем на всякий случай ККМ на фискализированность
Если ECR.Fiscal = 1 тогда
Если Вопрос("ККМ фискализирована! Вы действительно хотите продолжить?", 4) = 7 тогда
Возврат;
КонецЕсли;
КонецЕсли;

// если есть открытый чек, то отменяем его
Если ECR.CheckState <> 0 тогда
Если ECR.CancelCheck() <> 0 тогда
Возврат;
КонецЕсли;
КонецЕсли;

// если смена открыта снимаем Z-отчет
Если ECR.SessionOpened = 1 тогда
// устанавливаем пароль системного администратора ККМ
ECR.Password = "30";
// входим в режим отчетов с гашением
ECR.Mode = 3;
Если ECR.SetMode() <> 0 тогда
Возврат;
КонецЕсли;
// снимаем отчет
ECR.ReportType = 1;
Если ECR.Report() <> 0 тогда
Возврат;
КонецЕсли;
КонецЕсли;

// входим в режим регистрации
// устанавливаем пароль кассира
ECR.Password = "1";
// входим в режим регистрации
ECR.Mode = 1;
Если ECR.SetMode() <> 0 тогда
Возврат;
КонецЕсли;

// продажа без сдачи
// регистрация продажи
ECR.Name = "Молоко";
ECR.Price = 10.45;
ECR.Quantity = 1;
ECR.Department = 2;
Если ECR.Registration() <> 0 тогда
Возврат;
КонецЕсли;
// скидка суммой на предыдущую позицию
ECR.Percents = 10;
ECR.Destination = 1;
Если ECR.PercentsDiscount() <> 0 тогда
Возврат;
КонецЕсли;
// регистрация продажи
ECR.Name = "Фанта";
ECR.Price = 25;
ECR.Quantity = 5;
ECR.Department = 1;
Если ECR.Registration() <> 0 тогда
Возврат;
КонецЕсли;
// скидка суммой на весь чек
ECR.Summ = 10.4;
ECR.Destination = 0;
Если ECR.SummDiscount() <> 0 тогда
Возврат;
КонецЕсли;
// закрытие чека наличными без ввода полученной от клиента суммы
ECR.TypeClose = 0;
Если ECR.CloseCheck() <> 0 тогда
Возврат;
КонецЕсли;

// продажа со сдачей
// регистрация продажи
ECR.Name = "Молоко";
ECR.Price = 10.45;
ECR.Quantity = 1;
ECR.Department = 2;
Если ECR.Registration() <> 0 тогда
Возврат;
КонецЕсли;
// регистрация продажи
ECR.Name = "Пепси-кола";
ECR.Price = 25;
ECR.Quantity = 5;
ECR.Department = 1;
Если ECR.Registration() <> 0 тогда
Возврат;
КонецЕсли;
// сторно предыдущей регистрации
Если ECR.Storno() <> 0 тогда
Возврат;
КонецЕсли;
// регистрация продажи
ECR.Name = "Фанта";
ECR.Price = 25;
ECR.Quantity = 5;
ECR.Department = 1;
Если ECR.Registration() <> 0 тогда
Возврат;
КонецЕсли;
// скидка суммой на весь чек
ECR.Summ = 50;
ECR.Destination = 0;
Если ECR.SummDiscount() <> 0 тогда
Возврат;
КонецЕсли;
// закрытие чека наличными с вводом полученной от клиента суммы
ECR.Summ = 100;
ECR.TypeClose = 0;
Если ECR.Delivery() <> 0 тогда
Возврат;
КонецЕсли;

// аннулирование
// регистрация аннулирования
ECR.Name = "Dirol";
ECR.Price = 7;
ECR.Quantity = 1;
Если ECR.Annulate() <> 0 тогда
Возврат;
КонецЕсли;
// регистрация аннулирования
ECR.Name = "Orbit";
ECR.Price = 8;
ECR.Quantity = 2;
Если ECR.Annulate() <> 0 тогда
Возврат;
КонецЕсли;
// закрытие чека
ECR.TypeClose = 0;
Если ECR.CloseCheck() <> 0 тогда
Возврат;
КонецЕсли;

// Возврат;
// регистрация Возврат;а
ECR.Name = "Молоко";
ECR.Price = 10.45;
ECR.Quantity = 1;
Если ECR.Return() <> 0 тогда
Возврат;
КонецЕсли;
// регистрация Возврат;а
ECR.Name = "Колбаса";
ECR.Price = 99.99;
ECR.Quantity = 1.235;
Если ECR.Return() <> 0 тогда
Возврат;
КонецЕсли;
// скидка суммой на весь чек
ECR.Summ = 50;
ECR.Destination = 0;
Если ECR.SummDiscount() <> 0 тогда
Возврат;
КонецЕсли;
// закрытие чека
ECR.TypeClose = 0;
Если ECR.CloseCheck() <> 0 тогда
Возврат;
КонецЕсли;

// внесение наличности
ECR.Summ = 400.5;
Если ECR.CashIncome() <> 0 тогда
Возврат;
КонецЕсли;

// выплата наличности
ECR.Summ = 121.34;
Если ECR.CashOutcome() <> 0 тогда
Возврат;
КонецЕсли;

// X - отчет
// устанавливаем пароль администратора ККМ
ECR.Password = "29";
// входим в режим отчетов без гашения
ECR.Mode = 2;
Если ECR.SetMode() <> 0 тогда
Возврат;
КонецЕсли;
// снимаем отчет
ECR.ReportType = 2;
Если ECR.Report() <> 0 тогда
Возврат;
КонецЕсли;

// Z - отчет
// устанавливаем пароль системного администратора ККМ
ECR.Password = "30";
// входим в режим отчетов с гашением
ECR.Mode = 3;
Если ECR.SetMode() <> 0 тогда
Возврат;
КонецЕсли;
// снимаем отчет
ECR.ReportType = 1;
Если ECR.Report() <> 0 тогда
Возврат;
КонецЕсли;

// выходим в режим выбора, чтобы кто-то под введенными паролями не сделал что нибуть нехорошее
Если ECR.ResetMode() <> 0 тогда
Возврат;
КонецЕсли;

// освобождаем порт
ECR.DeviceEnabled = 0;
Если ECR.ResultCode <> 0 тогда
Возврат;
КонецЕсли;

Предупреждение("Все операции успешно выполнены.");
КонецПроцедуры

Процедура НастройкаСвойств()
ECR.ShowProperties();
КонецПроцедуры



Процедура Старт()
Форма.кнСтарт.Доступность(0);
Форма.кнНастройкаСвойств.Доступность(0);

Demo();
Если ECR.ResultCode <> 0 тогда
Предупреждение("Ошибка ККМ: " + ECR.ResultDescription + "!");
КонецЕсли;

Форма.кнСтарт.Доступность(1);
Форма.кнНастройкаСвойств.Доступность(1);
КонецПроцедуры
Ratings: 0 negative/1 positive
Re: Новая касса АТОЛ -30Ф
Saratoga

Сообщений: 494
Дата регистрации: 02.02.2004
Там достаточно понятная и хорошо разжеванная инструкция. Но можно ли все это тестировать и отлаживать без самого ККМ? Допустим, я как разработчик хочу приобрести себе АТОЛ 30Ф или Атол 55Ф для написания к нему программного интерфейса - нужно ли иметь для этого ИП или ООО ?
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Saratoga

Сообщений: 494
Дата регистрации: 02.02.2004
Тот же видимо пример но уже на VFP

* создаем объект драйвера
PUBLIC ECR
ECR = CREATEOBJECT("AddIn.FprnM45")
* занимаем порт
ECR.DeviceEnabled = .T.
If ECR.ResultCode <> 0 Then
Return
EndIf
* получаем состояние ККМ
If ECR.GetStatus <> 0 Then
Return
EndIf
* проверяем на всякий случай ККМ на фискализированность
If ECR.Fiscal Then
If MessageBox("ККМ фискализирована! Вы действительно хотите продолжить?", 32 + 4) = 7 Then
Return
EndIf
EndIf
* если есть открытый чек, то отменяем его
If ECR.CheckState <> 0 Then
If ECR.CancelCheck <> 0 Then
Return
EndIf
EndIf
* если смена открыта снимаем Z-отчет
If ECR.SessionOpened Then
* устанавливаем пароль системного администратора ККМ
ECR.Password = "30"
* входим в режим отчетов с гашением
ECR.Mode = 3
If ECR.SetMode <> 0 Then
Return
EndIf
* снимаем отчет
ECR.ReportType = 1
If ECR.Report <> 0 Then
Return
EndIf
EndIf
* входим в режим регистрации
* устанавливаем пароль кассира
ECR.Password = "1"
* входим в режим регистрации
ECR.Mode = 1
If ECR.SetMode <> 0 Then
Return
EndIf
* продажа без сдачи
* регистрация продажи
ECR.Name = "Молоко"
ECR.Price = 10.45
ECR.Quantity = 1
ECR.Department = 2
If ECR.Registration <> 0 Then
Return
EndIf
* скидка суммой на предыдущую позицию
ECR.Percents = 10
ECR.Destination = 1
If ECR.PercentsDiscount <> 0 Then
Return
EndIf
* регистрация продажи
ECR.Name = "Фанта"
ECR.Price = 25
ECR.Quantity = 5
ECR.Department = 1
If ECR.Registration <> 0 Then
Return
EndIf
* скидка суммой на весь чек
ECR.Summ = 10.4
ECR.Destination = 0
If ECR.SummDiscount <> 0 Then
Return
EndIf
* закрытие чека наличными без ввода полученной от клиента суммы
ECR.TypeClose = 0
If ECR.CloseCheck <> 0 Then
Return
EndIf
* продажа со сдачей
* регистрация продажи
ECR.Name = "Молоко"
ECR.Price = 10.45
ECR.Quantity = 1
ECR.Department = 2
If ECR.Registration <> 0 Then
Return
EndIf
* регистрация продажи
ECR.Name = "Пепси-кола"
ECR.Price = 25
ECR.Quantity = 5
ECR.Department = 1
If ECR.Registration <> 0 Then
Return
EndIf
* сторно предыдущей регистрации
If ECR.Storno <> 0 Then
Return
EndIf
* регистрация продажи
ECR.Name = "Фанта"
ECR.Price = 25
ECR.Quantity = 5
ECR.Department = 1
If ECR.Registration <> 0 Then
Return
EndIf
* скидка суммой на весь чек
ECR.Summ = 50
ECR.Destination = 0
If ECR.SummDiscount <> 0 Then
Return
EndIf
* закрытие чека наличными с вводом полученной от клиента суммы
ECR.Summ = 100
ECR.TypeClose = 0
If ECR.Delivery <> 0 Then
Return
EndIf
* аннулирование
* регистрация аннулирования
ECR.Name = "Dirol"
ECR.Price = 7
ECR.Quantity = 1
If ECR.Annulate <> 0 Then
Return
EndIf
* регистрация аннулирования
ECR.Name = "Orbit"
ECR.Price = 8
ECR.Quantity = 2
If ECR.Annulate <> 0 Then
Return
EndIf
* закрытие чека
ECR.TypeClose = 0
If ECR.CloseCheck <> 0 Then
Return
EndIf
* возврат
* регистрация возврата
ECR.Name = "Молоко"
ECR.Price = 10.45
ECR.Quantity = 1
If ECR.Return <> 0 Then
Return
EndIf
* регистрация возврата
ECR.Name = "Колбаса"
ECR.Price = 99.99
ECR.Quantity = 1.235
If ECR.Return <> 0 Then
Return
EndIf
* скидка суммой на весь чек
ECR.Summ = 50
ECR.Destination = 0
If ECR.SummDiscount <> 0 Then
Return
EndIf
* закрытие чека
ECR.TypeClose = 0
If ECR.CloseCheck <> 0 Then
Return
EndIf
* внесение наличности
ECR.Summ = 400.5
If ECR.CashIncome <> 0 Then
Return
EndIf
* выплата наличности
ECR.Summ = 121.34
If ECR.CashOutcome <> 0 Then
Return
EndIf
* X - отчет
* устанавливаем пароль администратора ККМ
ECR.Password = "29"
* входим в режим отчетов без гашения
ECR.Mode = 2
If ECR.SetMode <> 0 Then
Return
EndIf
* снимаем отчет
ECR.ReportType = 2
If ECR.Report <> 0 Then
Return
EndIf
* Z - отчет
* устанавливаем пароль системного администратора ККМ
ECR.Password = "30"
* входим в режим отчетов с гашением
ECR.Mode = 3
If ECR.SetMode <> 0 Then
Return
EndIf
* снимаем отчет
ECR.ReportType = 1
If ECR.Report <> 0 Then
Return
EndIf
* выходим в режим выбора, чтобы кто-то под введенными паролями не сделал что нибуть нехорошее
If ECR.ResetMode <> 0 Then
Return
EndIf
* освобождаем порт
ECR.DeviceEnabled = .F.
If ECR.ResultCode <> 0 Then
Return
EndIf
Ratings: 0 negative/1 positive
Re: Новая касса АТОЛ -30Ф
Saratoga

Сообщений: 494
Дата регистрации: 02.02.2004
Вот здесь можно скачать описание по работе с драйвером АТОЛ v.8
www.dropbox.com

Кто нибудь уже подготовил сопряжение своего ПО с ККМ по новому закону?
Предлагаю обсуждать в этой ветке
Ratings: 0 negative/0 positive
Re: Новая касса АТОЛ -30Ф
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Даже не вникая в детали - стиль кода это форменное г*но, т.к. ~20% команд это RETURN-ы

И очень мне интересно, кто же "освободит порт" если до строки ECR.DeviceEnabled = .F. есть шанс дойти только если не произойдёт ни единой "ошибки" Или сей замечательный девайс отрубается от управляющего софта при возникновении ЛЮБОЙ нештатной ситуации


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: Новая касса АТОЛ -30Ф
Василий

Сообщений: 682
Откуда: Москва
Дата регистрации: 19.10.2000
Saratoga
Вот здесь можно скачать описание по работе с драйвером АТОЛ v.8
Не самая актуальная версия.
В конце февраля должна появится очередная версия 8 версии драйвера.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 28 vech  (Гостей: 27)

© 2000-2024 Fox Club 
Яндекс.Метрика