Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Кассовый аппарат Штрих online периодически не печатает некоторые позиции

v7: Кассовый аппарат Штрих online периодически не печатает некоторые позиции
Я
   aryan
 
20.04.18 - 17:49
Кассовый аппарат Штрих online периодически не печатает некоторые позиции. Ума не приложу из-за чего, но кассовый аппарат пару раз не печатал позиции в чеке. Первую не печатает, а вторую печатает. По какой причине такое может быть?
 
 
   aryan
 
1 - 20.04.18 - 18:35
Процедура ОтветДрайвера()
    Result = глФР.ResultCode;
    ОшибкаПараметра = глФР.ResultCodeDescription;
КонецПроцедуры//ОтветДрайвера()


Процедура ОткрытьСмену()
    Если Вопрос("Вы действительно собираетесь открыть смену?","Да+Нет")="Да" Тогда
        глФР.Password=30;
        глФР.OpenSession();
        ОтветДрайвера();
    КонецЕсли;
КонецПроцедуры//ОткрытьСмену()
   aryan
 
2 - 20.04.18 - 18:41
Открыли смену, далее по нажатии кнопки в ПКО выполняется следующий код:
//Продажа

ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()>0 Цикл
    глФР.Password=30;
    глФР.Quantity=ДокОснование.Количество;
    глФР.Tax1=1;    глФР.Price=Окр(ДокОснование.Сумма/ДокОснование.Количество, 2);
    глФР.StringForPrinting=ДокОснование.Номенклатура;
глФР.Sale();
КонецЦикла;
    
//    Закрытие чека

    глФР.Password=30;
    глФР.Summ1=ДокОснование.Итог("Сумма");
    глФР.Tax1=1;
    глФР.Summ2=0;
    глФР.Summ3=0;
    глФР.Summ4=0;
  глФР.StringForPrinting="================================";
    глФР.CloseCheck();
    ОтветДрайвера();
    Сообщить("Результат: "+Строка(Result));
    Сообщить("Ошибка параметра: "+Строка(ОшибкаПараметра));
   aryan
 
3 - 20.04.18 - 18:50
ПКО создан на основании накладной, из табличной части которой берется вся информация.
Были случаи, когда пробивалась вторая позиция, общая сумма пробивалась как дана от покупателя, и расчитывалась сдача. По отдельности позиции пробиваются в чеке и даже те же самые позиции с другими ценами также нормально пробиваются. Кто-нибудь сталкивался с таким, куда копать вообще, от чего это зависит. Сумма/количество=количество*сумму без всяких разночтений.
   Kigo_Kigo
 
4 - 20.04.18 - 19:37
Сначало, потом все остальное
глФР.StringForPrinting=ДокОснование.Номенклатура;
   Kigo_Kigo
 
5 - 20.04.18 - 19:38
Вот так
//Продажа


ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()>0 Цикл
    глФР.Password=30;
    глФР.StringForPrinting=ДокОснование.Номенклатура;
    глФР.Quantity=ДокОснование.Количество;
    глФР.Tax1=1;    глФР.Price=Окр(ДокОснование.Сумма/ДокОснование.Количество, 2);

глФР.Sale();
КонецЦикла;
   Kigo_Kigo
 
6 - 20.04.18 - 19:42
или даже Вот так
//Продажа



ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()>0 Цикл
    глФР.Password=30;
    глФР.StringForPrinting=ДокОснование.Номенклатура;
    глФР.Quantity=ДокОснование.Количество;
    глФР.Tax1=1;    глФР.Price=Окр(?(ДокОснование.Количество = 0,ДокОснованиеСумма,ДокОснование.Сумма/ДокОснование.Количество, 2);

глФР.Sale();
КонецЦикла;
   Woldemar177
 
7 - 20.04.18 - 19:53
/*Кассовый аппарат Штрих online периодически не печатает некоторые позиции. Ума не приложу из-за чего, но кассовый аппарат пару раз не печатал позиции в чеке. Первую не печатает, а вторую печатает. По какой причине такое может быть?*/

скрины? сканы?
   aryan
 
8 - 20.04.18 - 20:18
(7) http://www.picshare.ru/view/8765492/
http://www.picshare.ru/view/8765499/
Извините, чек немного размыт, его сфоткал сотрудник
   aryan
 
9 - 20.04.18 - 20:19
(6) От перемены мест слагаемых сумма не меняется. :) Самое интересное: есть чеки из 5 позиций, которые пробиваются нормально. Не могу отследить закономерность этого сбоя.
   aahc
 
10 - 20.04.18 - 20:26
не а что) налогов меньше) разница кассиру)
 
 Рекламное место пустует
   Kigo_Kigo
 
11 - 20.04.18 - 20:27
(9) Есть зависимость, в последних штрихах именно наименование товара должно быть первым, ты попробуй, а уж потом рассуждай
   aahc
 
12 - 20.04.18 - 20:29
в шапке ! без пробела надо было сделать) а есть возможность другой аппарат подкинуть?
   Kigo_Kigo
 
13 - 20.04.18 - 20:30
если нет, то надо шить кассу на последнюю прошивку, но порядок остается такой же как я вам написал
   Kigo_Kigo
 
14 - 20.04.18 - 20:31
Вы сильно удивитесь, когда увидите в ОФД чеки без наименование, по той же причине
   aryan
 
15 - 20.04.18 - 20:33
(12) Другого аппарата нет.
(9) Попробую наименование первым обязательно, думал что вроде на момент команды Sale() все поля заполнены, какая вроде разница в какой последовательности их заполнять.
(13) прошивка последняя
   aryan
 
16 - 20.04.18 - 20:36
Я уже на лету программно сделал, чтобы кроме символов букв других не было, думал, что кассовый аппарат не воспринимает какие-то символы в наименовании товара - это не сработало.
   Kigo_Kigo
 
17 - 20.04.18 - 21:31
подход штриха  сча такой, все что до цена и количество -это наименование товара, после - рекламный текст
   aryan
 
18 - 20.04.18 - 21:55
(17) Как тогда объяснить, делаю продажу с приходником на свою организацию (пробный чек с маленькими ценами), с теми же позициями и количеством, указываю цену 1 рубль и чек выезжает с обеими теми же позициями как надо с тем же программным алгоритмом?
   aryan
 
19 - 20.04.18 - 22:06
В руководстве программиста в драйвере к Штриху
Создание объекта драйвера
v:=CreateOleObject(‘AddIn.DrvFR’);
Продажа
v.Password:=30;
v.Quantity:=1000;
v.Price:=1.56;
v.Department:=1;
Руководство программиста
–52–
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;

Обратите внимание, где находится StringForPrinting
   aryan
 
20 - 20.04.18 - 22:08
Может, какой параметр неправильно стоит в свойствах драйвера к  кассе. Неужели никто с такой проблемой не сталкивался?
   MWWRuza
 
21 - 20.04.18 - 22:08
Я в дебри не вдавался, но может банально надо вместо:
глФР.StringForPrinting=ДокОснование.Номенклатура;
Использовать
глФР.StringForPrinting=СокрЛП(ДокОснование.Номенклатура);
???
в глФР.StringForPrinting Вы пихаете вместо строки ссылку на элемент справочника 1С...
   aryan
 
22 - 20.04.18 - 22:12
(21) извращался даже вот так:
печнаим="Код "+СокрЛП(Строка(ДокОснование.Номенклатура.Код))+" ";
        колнаим=СтрДлина(печнаим);
        
        Для сча=1 по СтрДлина(ДокОснование.Номенклатура.ПолнНаименование) Цикл
            символика=Сред(ДокОснование.Номенклатура.ПолнНаименование,сча,1);
            Если (символика<>"=") и (символика<>"""") и (символика<>",") и (символика<>"/") и (символика<>".") и (символика<>"\") Тогда
                печнаим=печнаим+символика;
            Иначе
                печнаим=печнаим+" ";
            КонецЕсли;
            колнаим=колнаим+1;
            Если колнаим=40 Тогда
                Прервать;
            КонецЕсли;
        КонецЦикла;


......
глФР.StringForPrinting=печнаим;
   piter3
 
23 - 20.04.18 - 22:32
1.0 ограничение?
   aryan
 
24 - 20.04.18 - 22:39
(23) Нет, 5 позиций с суммами более 1000 прекрасно пробиваются.
   aryan
 
25 - 20.04.18 - 22:42
из где-то 7 чеков, 2 дали сбой. В каждом из этих чеков было 2 товара и пробился именно второй, первый - касса как будто отбросила.
   piter3
 
26 - 20.04.18 - 22:43
(24) Не понял,а проблема в наименовании или в чем?
   piter3
 
27 - 20.04.18 - 22:43
(25) Логи смотри,что тут вангу искать
   aryan
 
28 - 20.04.18 - 23:03
(26) Проблема в том, что в чеке вместо двух позиций пробивается одна, как будто касса просто одну позицию выкидывает.
   aryan
 
29 - 20.04.18 - 23:07
(26) Например 2 позиции: одна Товар А 2 шт на сумму 1000,
Товар Б 3 шт на сумму 900 руб.
Касса пробивает Товар Б в размере 3 шт на сумму 900. Пишет: получено 1900, сдача: 1000. Первой позиции вообще на чеке не наблюдается.
   piter3
 
30 - 20.04.18 - 23:08
(29) нонсенс,давай,что бы было проще,все параметры.Я штрихи не,но будет коллегам проще
   piter3
 
31 - 20.04.18 - 23:14
версия прошивки,драйвера
   aryan
 
32 - 20.04.18 - 23:15
(30) Сам в шоке, не могу отловить ошибку, ладно бы все так печатались, а нет. Дело в том, что всего по этой кассе было пробито 7 чеков: 5 нормально, 2 с двумя позициями, из них на чеке только вторые позиции.  А какие параметры интересуют? пример в прикреплении в (8)
   aryan
 
33 - 20.04.18 - 23:18
Остается надежда - обращусь в ЦТО, чтобы они со Штрихом связались - может у кого такое было. Касса подключена по RNDIS на Windows 10, 1С подключена не в терминале,база файловая, сама база на сервере. Тис 7.7. Код написан - код весь скинул.
 
 
   piter3
 
34 - 20.04.18 - 23:18
(32) Логи дай посмотреть,что там передается от ожидаемого
   aryan
 
35 - 20.04.18 - 23:20
(34) В понедельник посмотрю, где логи хранятся в драйвере - скину.
   Kigo_Kigo
 
36 - 21.04.18 - 11:36
(19) Выкинь нафиг это руководство, я тоже по нему делал, только через неделю клиент позвонил сказал, у нас чеки в ОФД без наименований приходят, и добавь команды
на каждую позицию
ФР.FNOperation();
перед закрытием чека

ФР.FNCloseCheckEx();
   aryan
 
37 - 22.04.18 - 09:55
(36) вот так? Свойства надо какие новые добавлять?

ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()>0 Цикл
    глФР.Password=30;
    глФР.StringForPrinting=ДокОснование.Номенклатура;
    глФР.Quantity=ДокОснование.Количество;
    глФР.Tax1=1;    глФР.Price=Окр(?(ДокОснование.Количество = 0,ДокОснованиеСумма,ДокОснование.Сумма/ДокОснование.Количество, 2);
    
    глФР.FNOperation();//новая строка

    
    глФР.Sale();
КонецЦикла;

//    Закрытие чека


    глФР.Password=30;
    глФР.Summ1=ДокОснование.Итог("Сумма");
    глФР.Tax1=1;
    глФР.Summ2=0;
    глФР.Summ3=0;
    глФР.Summ4=0;
  глФР.StringForPrinting="================================";
    
    глФР.FNCloseCheckEx();//новая строка

    
    глФР.CloseCheck();
    ОтветДрайвера();
    Сообщить("Результат: "+Строка(Result));
    Сообщить("Ошибка параметра: "+Строка(ОшибкаПараметра));
   Woldemar177
 
38 - 22.04.18 - 09:58
штрих печатает то что вы говорите ему печатать.
   aryan
 
39 - 22.04.18 - 10:02
(38) Я ему говорю печатать 2 строки табличной части - он печатает одну, почему-то последнюю из двух. Программный код привел, что в нем не так?
   Woldemar177
 
40 - 22.04.18 - 10:04
(39) не знаю ;-)
в типовых я никогда с таким не сталкивался.
   aryan
 
41 - 22.04.18 - 10:04
(38) Иногда он печатает все, иногда -нет. Не пойму от чего это зависит. Код по идее либо работает - либо нет. Значит есть какое-то условие, которое не зависит от кода. Как выяснить, что за условие?
   Woldemar177
 
42 - 22.04.18 - 10:14
(41) печатать те позиции подряд которые не печатаются.

Зы как скучаю по кодингу и такому выносу мозга ;))))

Как скучно я живу. Ставлю кассу, сканируют штрих, из облака выбирают название по короче, загоняют в кабинет личный, потом в 1с ут 11.3. Потом продажи снимать будут.
   aryan
 
43 - 22.04.18 - 12:45
Может DrvFR.dll в режиме demo выкидывает какую-нибудь n-ю позицию в чеке?
   Сияющий в темноте
 
44 - 23.04.18 - 16:07
Команда Sale возвращает код ошибки или ноль,вот если не ноль,то команда не выполнена
хватит мучить ФР
пишите правильно код   ничего не пропадет


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует