for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
   :: Помощь сайту :: 

Новая касса АТОЛ -30Ф
Maestro
Автор

Сообщений: 509
Откуда: г.Благовещенск А
Дата: 20.01.17 04:21:40ОтветитьЦитировать
Надо подключить это чудо к программе на VFP.
Должны же быть готовые DLL ки и описание работы с этим чудом?
Навскидку не нашел. Выкладывайте у кого что есть.
Раньше в программе работал фискальник от ZEBRA, но он был COM портовый и там была DLL с описанием.
А теперь вот эта..
Спасибо.
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
pasha_usue

Сообщений: 2849
Откуда: Е-бург
Дата: 20.01.17 06:40:08ОтветитьЦитировать
Ну, соответственно, АТОЛовский драйвер ККМ надо ставить. Он по COM-технологии. Описалово есть в поставке драйвера.
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
Аспид

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


------------------
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
Maestro
Автор

Сообщений: 509
Откуда: г.Благовещенск А
Дата: 20.01.17 08:37:45ОтветитьЦитировать
Читаю описание. В нем много написано, в этом и беда.
Написано нажмите то-то будет то. А если не будет?
В программе (драйвере) 18 закладок с кнопками, буквами и цифрами.
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
pasha_usue

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

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

Re: Новая касса АТОЛ -30Ф
pasha_usue

Сообщений: 2849
Откуда: Е-бург
Дата: 20.01.17 09:08:34ОтветитьЦитировать
И да. У меня 17 закладок в версии 6.20.1.0
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
spinz

Сообщений: 3495
Дата: 20.01.17 09:12:10ОтветитьЦитировать
pasha_usue
Одна неверная попытка ввода пароля налоговой инспекции блокирует эту железку нахрен.
Что-то совсем уж жестоко. Право на хотя бы одну опечатку все-таки должно быть
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
pasha_usue

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

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



Исправлено: pasha_usue, 20.01.17 09:27
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
spinz

Сообщений: 3495
Дата: 20.01.17 09:37:09ОтветитьЦитировать
А, я чота подумал, что неверный пароль - и железка окончательно и безвозвратно превращается в кирпич
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
Василий

Сообщений: 654
Откуда: Москва
Дата: 21.01.17 22:19:50ОтветитьЦитировать
Аспид
Этот АТОЛ -30Ф соответствует тому, что начнется с июля?
Да

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



Исправлено: Василий, 21.01.17 22:23
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
Maestro
Автор

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

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

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



Исправлено: Maestro, 23.01.17 02:33
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
Maestro
Автор

Сообщений: 509
Откуда: г.Благовещенск А
Дата: 23.01.17 02:42:38ОтветитьЦитировать
Начал изучать директории и обнаружил пример работы на VFP6 !
Ребятам из ATOL - респект!
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
descent52_tmp

Сообщений: 206
Откуда: Саров
Дата: 24.01.17 15:58:25ОтветитьЦитировать
Выкладывай пример, Маэстро!
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
Maestro
Автор

Сообщений: 509
Откуда: г.Благовещенск А
Дата: 26.01.17 05:35:08ОтветитьЦитировать
Примеры Атола на Фоксе - просто отдельные модули и создание класса. Класс создается. Модули работают.
По прежнему нет целостности картины.
Модули там не все и их надо запускать в каком-то порядке, чтобы получить результат.
Сама идея как писать модули и стучаться к кассе и получать от нее действия понятна.
Не понятно какие надо получать действия. Просто переименовать старые вызовы не полилось.
Новые другие, и нет многих и есть много лишних.
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
Maestro
Автор

Сообщений: 509
Откуда: г.Благовещенск А
Дата: 30.01.17 09:48:17ОтветитьЦитировать
Вот что нашел. Может надо кому. Завтра попробую воткнуть в фокс.
***********************
Это 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

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

Re: Новая касса АТОЛ -30Ф
Saratoga

Сообщений: 472
Дата: 02.02.17 09:37:07ОтветитьЦитировать
Тот же видимо пример но уже на 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

Сообщений: 472
Дата: 05.02.17 16:48:37ОтветитьЦитировать
Вот здесь можно скачать описание по работе с драйвером АТОЛ v.8
www.dropbox.com

Кто нибудь уже подготовил сопряжение своего ПО с ККМ по новому закону?
Предлагаю обсуждать в этой ветке
Ratings: 0 negative/0 positive

Re: Новая касса АТОЛ -30Ф
Igor Korolyov

Сообщений: 30406
Дата: 05.02.17 17:04:34ОтветитьЦитировать
Даже не вникая в детали - стиль кода это форменное г*но, т.к. ~20% команд это RETURN-ы

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


------------------
WBR, Igor
Ratings: 0 negative/1 positive

Re: Новая касса АТОЛ -30Ф
Василий

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


Вложения:
[DTO8_test.zip (3.3KB)]  



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

On-line: 39 Taran Qv_1  and Guests: 37


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