:: Visual Foxpro, Foxpro for DOS
Касса Регистратор Штрих-М-01Ф
Sejko
Автор

Сообщений: 147
Откуда: Moscow
Дата регистрации: 09.01.2005
Кто нибудь имеет опыт подключения или примеры на Штрих-М-01Ф
Надо подключить это чудо к программе на VFP.


------------------
sejko




Исправлено 2 раз(а). Последнее : Sejko, 08.02.17 21:43
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
Sejko
Автор

Сообщений: 147
Откуда: Moscow
Дата регистрации: 09.01.2005
Мне интересует , неужели никто не имеет опыт подключения кассы от Штрих-М
Можно помочь , можно и не бесплатно !


------------------
sejko
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
gorev

Сообщений: 105
Откуда: Чита
Дата регистрации: 29.11.2009
Ищем "драйвер штрих м 4.9 руководство программиста"
www.shtrih-m.ru

ecr = CREATEOBJECT("Addin.DrvFR")
ecr.portnumber = 1
* проверить состояние, открыть смену, открыть чек и ...
* закрытие чека наличными без ввода полученной от клиента суммы
ecr.summ1 = 1000.00
ecr.closecheck

и т.д.
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
Sejko
Автор

Сообщений: 147
Откуда: Moscow
Дата регистрации: 09.01.2005
А вы сами работали с этим регистратором !!
Я Его вижу вообще первый раз.

А можно какой нибудь пример поподробнее, образец продажи с чеком и скидкой, возврат товара
и X-отчет , Z отчет
мой ящик ''.phorum_html_encode('sejkoed@gmail.com').''


------------------
sejko




Исправлено 3 раз(а). Последнее : Sejko, 11.02.17 09:15
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
gorev

Сообщений: 105
Откуда: Чита
Дата регистрации: 29.11.2009
С этим нет, но подозреваю, что буква Ф в названии, значит тоже, что и у Атола - онлайн-кассы, но как и ожидалось у Атола - просто блок ЭКЛЗ заменили на блок работы с центром данных и всё. На практике, новый онлайн-касса заработала со старой программой без переделок - там только доработка нужна, чтобы передавать информацию о телефоне и/или мыле покупателя в ККМ.
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
gorev

Сообщений: 105
Откуда: Чита
Дата регистрации: 29.11.2009
Пример - ну вот Атоловский есть, у Штриха по сути тоже самое, просто методы чуть по другому называются. Да нюансы есть, типа - если программируете работу с несколькими аппаратами сразу - то для переключения в Атол достаточно порт переключить, а у Штриха надо ещё и логическое устройство - по крайней мере так было у меня, конец/обрыв бумаги они принципиально по разному отрабатывают, Атол аннулирует чек, а Штрих продолжает.

Тут надо сам аппарат иметь, чтобы сразу проверять на практике, тогда окажется, что там всё просто.

[attachment 27021 DTO8_test.js.zip]



Исправлено 3 раз(а). Последнее : gorev, 11.02.17 19:18
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
Sejko
Автор

Сообщений: 147
Откуда: Moscow
Дата регистрации: 09.01.2005
это синтаксис я так понимаию не Foxpro a java
а на фоксе есть или приблизительно разницы кроме методов нет


------------------
sejko
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
Sejko
Автор

Сообщений: 147
Откуда: Moscow
Дата регистрации: 09.01.2005
А можно попросить пример на Fox, чтобы передавать информацию о телефоне и/или мыле покупателя в ККМ


------------------
sejko
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
gorev

Сообщений: 105
Откуда: Чита
Дата регистрации: 29.11.2009
Из примера Атол:
// Запись контакта покупателя для отправки электронного чека
driver.AttrNumber = 1008;
driver.AttrValue = "+79091235566";
driver.WriteAttribute();


На фоксе:
* Запись контакта покупателя для отправки электронного чека
driver.AttrNumber = 1008
driver.AttrValue = "+79091235566"
driver.WriteAttribute()

Разница в синтаксисе комментария и ; убрать - можно просто копировать в фокс с этой коррекцией и всё работать будет.

Название методов диктуется драйвером Атол, я думаю они одинаково используются в любых языках, разница в синтаксисе незначительная и очевидная.



Исправлено 1 раз(а). Последнее : gorev, 12.02.17 14:48
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
gorev

Сообщений: 105
Откуда: Чита
Дата регистрации: 29.11.2009
Вот ниже тема: forum.foxclub.ru
Там по сути уже всё есть.
Ratings: 1 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
Sejko
Автор

Сообщений: 147
Откуда: Moscow
Дата регистрации: 09.01.2005
а как объснить пример закрытие чек

выполняться на определённых моделях ККМ, что указано в описании каждого метода.
Пример: Приведём пример распространённой ситуации формирования чека продажи и закрытия
чека.
Произведём продажу 1000 шт. спичечных коробков по цене 1 руб. 56 коп. за штуку в
секцию 1 (см. метод Sale на стр. 99). Необходимо заполнить свойство Password (пароль
оператора, выполняющего команду). Присвоим, например, этому свойству значение «30»
(по умолчанию пароль системного администратора). Свойству Quantity (количество
товара) присвоим значение «1000» (1000 коробков). Свойству Price присвоим значение
«1,56», т.е. цена одной единицы товара – 1 руб. 56 коп. Значение свойства Department
установим равным «1» (1-ая секция). Налоги: Tax1=1 (1-ая налоговая группа), Tax2=2 (2-
ая налоговая группа), Tax3=0 (нет налоговой группы) и Tax4=0 (нет налоговой группы).
Свойству StringForPrinting присваиваем строковое значение «Спичечный коробок».
Если значение свойства ResultCode по выполнению метода равно «0», операция продажи
была выполнена успешно, иначе смотри описание ошибки ResultCodeDescription. Метод
модифицирует свойство OperatorNumber, в котором возвращается порядковый номер
оператора, вызвавшего метод.
Для закрытия чека (см. метод CloseCheck на стр. 91 )также заполним необходимые
свойства: Password=30 (пароль системного администратора, должен совпадать с паролем
оператора, открывшего чек операцией продажи); Summ1=1500 (сумма наличных 1500
руб.); Summ2=100 (сумма типом оплаты 2 – 100 руб.); Summ3=200 (суммы типом оплаты
3 – 200 руб); Summ4=300 (сумма типом оплаты 4 – 300 руб); DiscountOnCheck=5 (скидка
на чек – 5 %); Tax1=1 (1-ая налоговая группа), Tax2=2 (2-ая налоговая группа), Tax3=0
(нет налоговой группы) и Tax4=0 (нет налоговой группы);
StringForPrinting=’=========================’ (в чеке будет двойная пунктирная
линия). Если значение свойства ResultCode по выполнению метода равно «0», операция
закрытия чека была выполнена успешно, иначе смотри описание ошибки
ResultCodeDescription. Метод модифицирует свойства OperatorNumber, в котором
возвращается порядковый номер оператора, вызвавшего метод, и Change, в котором
хранится сумма сдачи.
Листинг вызова этих двух методов приведён ниже:
Создание объекта драйвера
v:=CreateOleObject(‘AddIn.DrvFR’);
Продажа
v.Password:=30;
v.Quantity:=1000;
v.Price:=1.56;
v.Department:=1;
Драйвер ККТ версия 4.12
–51–
v.Tax1:=1;
v.Tax2:=2;
v.Tax3:=0;
v.Tax4:=0;
v.StringForPrinting:= 'Спичечный коробок';
v.Sale;


Закрытие чека
v.Password:=30;
v.Summ1:=1500;
v.Summ2:=100;
v.Summ3:=200;
v.Summ4:=300;
v.DiscountOnCheck:=5;
v.Tax1:=1;
v.Tax2:=2;
v.Tax3:=0;
v.Tax4:=0;
v.StringForPrinting:= '====================================';
v.CloseCheck;


------------------
sejko




Исправлено 1 раз(а). Последнее : Sejko, 14.02.17 00:46
Ratings: 0 negative/1 positive
Re: Касса Регистратор Штрих-М-01Ф
arshin

Сообщений: 44
Дата регистрации: 15.02.2011
Скажите пожалуйста на чем отлаживать код? Это должен какой то специальный фискальник подключен или программа эмулятор фискальника? Ведь мне нужно распечатать чек и посмотреть как и что на нем напечаталось.
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
matod

Сообщений: 3062
Откуда: Иркутск
Дата регистрации: 31.10.2001
Если у используемого объекта есть режим эмуляции или такой эмулятор предусмотрели разработчики, то, конечно, можно его использовать. Но что-то я сомневаюсь, чтобы о нас так позаботились . Поэтому, либо нужно найти само устройство или написать эмулятор самому - все лучше, чем ничего. Правда, самоделка вряд ли обеспечит проверку всех моментов. Но, по крайней мере формально код будет рабочий. Остальное все равно придется допиливать в рабочем порядке.

Конкретно с этим устройством не работал, делал программу под Viki Print. Для отладки брал само устройство с отключенным фискальным режимом на несколько дней. Если правильно организовать программу, сделать библиотеку-обертку для взаимодействия с устройством, то вживую мучать его долго не надо - отладить взаимодействие, потом поставить вместо него класс-заглушку для создания самой программы.
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
arshin

Сообщений: 44
Дата регистрации: 15.02.2011
gorev
Из примера Атол:
// Запись контакта покупателя для отправки электронного чека
driver.AttrNumber = 1008;
driver.AttrValue = "+79091235566";
driver.WriteAttribute();


На фоксе:
* Запись контакта покупателя для отправки электронного чека
driver.AttrNumber = 1008
driver.AttrValue = "+79091235566"
driver.WriteAttribute()

Разница в синтаксисе комментария и ; убрать - можно просто копировать в фокс с этой коррекцией и всё работать будет.

Название методов диктуется драйвером Атол, я думаю они одинаково используются в любых языках, разница в синтаксисе незначительная и очевидная.
А что за номер AttrNumber и какой нужен для отправки чека клиенту,



Исправлено 1 раз(а). Последнее : arshin, 27.02.17 13:22
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
Sejko
Автор

Сообщений: 147
Откуда: Moscow
Дата регистрации: 09.01.2005
Спасибо,
т.е. при подплючениие Оператору , ККМ сам пошлет по этим командам Чек , или надо както его выбрать .
Есть еще вопрос , а в чеке при старте следующего дня показывает , что есть сумма входящая , так должно быть или какие то команды для Инкассации


------------------
sejko
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
Sejko
Автор

Сообщений: 147
Откуда: Moscow
Дата регистрации: 09.01.2005
Вот что я нашел в просторах интернета

forum.shtrih-m.ru


Код:

private void button2_Click_1(object sender, EventArgs e)
{
//Открываем чек продажи
Driver.CheckType = 0;
Driver.OpenCheck();

//Отправка данных о покупателе
Driver.CustomerEmail = textBox1.Text; //В качестве параметра можно передавать или телефон (+7хххххххххх) или e-mail: ''.phorum_html_encode('test@test.com').''
Driver.FNSendCustomerEmail();

//Формируем продажу
Driver.Quantity = Convert.ToDouble(textBox3.Text);
Driver.Price = Convert.ToInt32(textBox2.Text);
Driver.Department = 1;
Driver.Tax1 = 0;
Driver.Tax2 = 0;
Driver.Tax3 = 0;
Driver.Tax4 = 0;
Driver.StringForPrinting = "Булка с маком";
Driver.Sale();

Driver.CheckSubTotal();

//Закрываем чек
Driver.Summ1 = Driver.Summ1;
Driver.Summ2 = 0;
Driver.Summ3 = 0;
Driver.Summ4 = 0;
Driver.Tax1 = 0;
Driver.Tax2 = 0;
Driver.Tax3 = 0;
Driver.Tax4 = 0;
Driver.StringForPrinting = "";
Driver.CloseCheck();
}




Если есть необходимость в печати развернутого наименования товарной позиции (например с указанием артикула, производителя и т.д.), длина которой (в символах) будет больше 64, то можно использовать новый алгоритм формирования чека:


Код:
private void button3_Click(object sender, EventArgs e)
{
//Открываем чек продажи
Driver.CheckType = 0;
Driver.OpenCheck();

//Отправка данных о покупателе
Driver.CustomerEmail = textBox1.Text; //В качестве параметра можно передавать или телефон (+7хххххххххх) или e-mail: ''.phorum_html_encode('test@test.com').''
Driver.FNSendCustomerEmail();

Driver.StringForPrinting = "Печать полного наименования товара"; //Произвольная строка, в которой будет печататься полное наименование товара
Driver.PrintString();

//Регистрируем товарную позицию с сокращенным наименованием товара (до 64 символов) и передаем ее на сервер ОФД без печати на данной товарной позиции на чеке.
Driver.CheckType = 0;
Driver.Quantity = Convert.ToDouble(textBox3.Text);
Driver.Price = Convert.ToInt32(textBox2.Text);
Driver.Department = 1;
Driver.Tax1 = 0;
Driver.DiscountValue = 0;
Driver.ChargeValue = 0;
Driver.BarCode = "123456789";
Driver.StringForPrinting = "//"+"Булка с маком"; //Наименование товара. Символ '//' в начале строки информирует ККТ о том, что данную позицию передаем, но не печатаем
Driver.DocumentName = "";
Driver.FNDiscountOperation();

Driver.CheckSubTotal();

//Закрываем чек
Driver.Summ1 = Driver.Summ1;
Driver.Summ2 = 0;
Driver.Summ3 = 0;
Driver.Summ4 = 0;
Driver.Tax1 = 0;
Driver.Tax2 = 0;
Driver.Tax3 = 0;
Driver.Tax4 = 0;
Driver.StringForPrinting = "";
Driver.CloseCheck();


------------------
sejko
Ratings: 0 negative/1 positive
Re: Касса Регистратор Штрих-М-01Ф
arshin

Сообщений: 44
Дата регистрации: 15.02.2011
Нужна помощь! очень срочно. Вот этот код правильно отрабатывает в командной строке фокса, в скомпилированном файле пишет ошибку нет соединения с устройством. Помогите куда копать?
Pdrv=CreateObject('AddIn.DrvFR')
IF Pdrv.Beep () < 0
MESSAGEBOX("Ошибка:" + Pdrv.ResultCodeDescription())
RELEASE Pdrv
ELSE
MESSAGEBOX('aa')
ENDIF
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
Sejko
Автор

Сообщений: 147
Откуда: Moscow
Дата регистрации: 09.01.2005
намекаю: commport забыл указать


------------------
sejko
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
Sejko
Автор

Сообщений: 147
Откуда: Moscow
Дата регистрации: 09.01.2005
после строки
Pdrv=CreateObject('AddIn.DrvFR')
надо
pdrv.ComNumber =1
pdrev.Password ="30" или какой там user


------------------
sejko




Исправлено 1 раз(а). Последнее : Sejko, 01.03.17 14:01
Ratings: 0 negative/0 positive
Re: Касса Регистратор Штрих-М-01Ф
arshin

Сообщений: 44
Дата регистрации: 15.02.2011
Тоже самое не помогло, скомпилированный код не определяет COM порт. Не скомпилированный работает. Может библиотеку какую подгрузить или еще что?



Исправлено 1 раз(а). Последнее : arshin, 01.03.17 14:44
Ratings: 0 negative/0 positive


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

On-line: 10 (Гостей: 10)

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