Имя: Пароль:
1C
1С v8
Фискальный регистратор Штрих- М ФР
,
0 antihacker
 
28.04.15
06:21
Всем добра и мира !
Подключил Штрих- М ФР к 1С8. Код полностью свой. Работает нормально. Чек открывается, закрывается, продажа, отрезает ленту, смена закрывается и открывается, отмена чека итд. Но почему то когда используешь команду Sale(), то выходит сообщение -"Идет печать предыдущей команды". Но при этом результат как при "нет ошибок". То есть чек печатается ровно , отрезается, закрывается. Все идельно как будто ничего нету. А вот сообщение Идет печать предыдущей команды" после чека все равно выходит. Кто сталкивался ?
1 ЧеловекДуши
 
28.04.15
07:25
(0) >>>  Код полностью свой. Работает нормально

У вас тут явная проблема с логикой :)
Иначе бы вы тут не писали. :)

Что за команда Сали, кто такая Сали?

....
ФР можно заставить работать через команду "DeviceControlHEX"
Инструкция в файле "DriverFR_ specification_1C.pdf" (гуг в помощь)
2 ЧеловекДуши
 
28.04.15
07:26
+(0) Думается ошибка в Руках писателя :)
3 antihacker
 
28.04.15
07:55
Сали ? ))) Сейл. Это продажа. Читал такое бывает когда во время выполнения команды прется вторая команда. Нужно добавить TimeOut=300. Пробовал. Не получается.
4 antihacker
 
28.04.15
08:10
//НомерТекущейСтроки=0;
    СуммаНаличными=0;    
    //----Добавляем товары-----
    Для каждого СтрокаТабЧастиТек из Товары Цикл
    
    ОбъектДрайверФР.TimeOut=300;        
    ОбъектДрайверФР.Password=1;        
    ОбъектДрайверФР.StringForPrinting=СокрЛП(СтрокаТабЧастиТек.Номенклатура.НаименованиеПолное);
    ОбъектДрайверФР.Quantity=СтрокаТабЧастиТек.Количество;
    ОбъектДрайверФР.Price=СтрокаТабЧастиТек.Цена;
    ОбъектДрайверФР.Sale();


    СуммаНаличными=СуммаНаличными+(СтрокаТабЧастиТек.Количество*СтрокаТабЧастиТек.Цена);
    
    КонецЦикла;
    ОбъектДрайверФР.StringForPrinting="--------------------------------------";

        ОбъектДрайверФР.Password=1;
       ОбъектДрайверФР.Summ1=СуммаНаличными;
    ОбъектДрайверФР.Summ2=0;
    ОбъектДрайверФР.Summ3=0;
    ОбъектДрайверФР.Summ4=0;


    ОбъектДрайверФР.CutType=1;
    ОбъектДрайверФР.CloseCheck();
    
    //---Если есть аппаратная ошибка--------
    Если ОтветДрайвера()<>"Ошибок нет" Тогда
    Возврат ОтветДрайвера();        
    КонецЕсли
    //--------------------------------------

Вот где то здесь.
5 ЧеловекДуши
 
28.04.15
09:20
(4) А теперь поподробнее про ту ВК, что вы используете?
У 1С куда проще и тривиальней пробитие чека :)
6 antihacker
 
28.04.15
12:30
ЧеловекДуши, извини. Что такое ВК ?
7 ЧеловекДуши
 
28.04.15
12:45
(6) Внешняя компонента для 1С, обычно в виде <Name>.Dll
В 8-ке, это либо Архивы Zip
Либо Макет с двоичными данными.

Но в основе всего все ровно библиотека <Name>.Dll

+(6) Просто У 1С по спецификации "DriverFR_ specification_1C.pdf", на каждый чих идет возврат результата обработки команды.
У вас я этого не заметил, вот и прошло в голову, что Писатель, что написал вам ВК чего либо не дописал, либо вы криво используете функционал :)


ftp://ftp.shtrih-m.ru/download/FR/Doc/DriverFR_%20specification_1C.pdf
8 antihacker
 
28.04.15
13:03
Там много чего не подходит.

Например в мануале подключить, отключить оборудование.

Open(), Close();

В коде

Connect(), Disconnet();

Отчет с гашением и без.

PrintXReport, PrintZReport.

В коде

PrintReportWithCleaning()?, PrintReportWithOutCleaning().

Что такое ?
9 ЧеловекДуши
 
28.04.15
13:37
(8) Там по ссылке много файликов PDF, почитай :)
10 antihacker
 
28.04.15
14:32
Прочитал. Не увидел ответа.
Независимо от того, куда вы едете — это в гору и против ветра!