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

Процедура ОткрытьСмену()
    Если Вопрос("Вы действительно собираетесь открыть смену?","Да+Нет")="Да" Тогда
        глФР.Password=30;
        глФР.OpenSession();
        ОтветДрайвера();
    КонецЕсли;
КонецПроцедуры //ОткрытьСмену()
2 aryan
 
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));
    Сообщить("Ошибка параметра: "+Строка(ОшибкаПараметра));
3 aryan
 
20.04.18
18:50
ПКО создан на основании накладной, из табличной части которой берется вся информация.
Были случаи, когда пробивалась вторая позиция, общая сумма пробивалась как дана от покупателя, и расчитывалась сдача. По отдельности позиции пробиваются в чеке и даже те же самые позиции с другими ценами также нормально пробиваются. Кто-нибудь сталкивался с таким, куда копать вообще, от чего это зависит. Сумма/количество=количество*сумму без всяких разночтений.
4 Kigo_Kigo
 
20.04.18
19:37
Сначало, потом все остальное
глФР.StringForPrinting=ДокОснование.Номенклатура;
5 Kigo_Kigo
 
20.04.18
19:38
Вот так
//Продажа

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

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


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

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

скрины? сканы?
8 aryan
 
20.04.18
20:18
(7) http://www.picshare.ru/view/8765492/
http://www.picshare.ru/view/8765499/
Извините, чек немного размыт, его сфоткал сотрудник
9 aryan
 
20.04.18
20:19
(6) От перемены мест слагаемых сумма не меняется. :) Самое интересное: есть чеки из 5 позиций, которые пробиваются нормально. Не могу отследить закономерность этого сбоя.
10 aahc
 
20.04.18
20:26
не а что) налогов меньше) разница кассиру)
11 Kigo_Kigo
 
20.04.18
20:27
(9) Есть зависимость, в последних штрихах именно наименование товара должно быть первым, ты попробуй, а уж потом рассуждай
12 aahc
 
20.04.18
20:29
в шапке ! без пробела надо было сделать) а есть возможность другой аппарат подкинуть?
13 Kigo_Kigo
 
20.04.18
20:30
если нет, то надо шить кассу на последнюю прошивку, но порядок остается такой же как я вам написал
14 Kigo_Kigo
 
20.04.18
20:31
Вы сильно удивитесь, когда увидите в ОФД чеки без наименование, по той же причине
15 aryan
 
20.04.18
20:33
(12) Другого аппарата нет.
(9) Попробую наименование первым обязательно, думал что вроде на момент команды Sale() все поля заполнены, какая вроде разница в какой последовательности их заполнять.
(13) прошивка последняя
16 aryan
 
20.04.18
20:36
Я уже на лету программно сделал, чтобы кроме символов букв других не было, думал, что кассовый аппарат не воспринимает какие-то символы в наименовании товара - это не сработало.
17 Kigo_Kigo
 
20.04.18
21:31
подход штриха  сча такой, все что до цена и количество -это наименование товара, после - рекламный текст
18 aryan
 
20.04.18
21:55
(17) Как тогда объяснить, делаю продажу с приходником на свою организацию (пробный чек с маленькими ценами), с теми же позициями и количеством, указываю цену 1 рубль и чек выезжает с обеими теми же позициями как надо с тем же программным алгоритмом?
19 aryan
 
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
20 aryan
 
20.04.18
22:08
Может, какой параметр неправильно стоит в свойствах драйвера к  кассе. Неужели никто с такой проблемой не сталкивался?
21 MWWRuza
 
гуру
20.04.18
22:08
Я в дебри не вдавался, но может банально надо вместо:
глФР.StringForPrinting=ДокОснование.Номенклатура;
Использовать
глФР.StringForPrinting=СокрЛП(ДокОснование.Номенклатура);
???
в глФР.StringForPrinting Вы пихаете вместо строки ссылку на элемент справочника 1С...
22 aryan
 
20.04.18
22:12
(21) извращался даже вот так:
печнаим="Код "+СокрЛП(Строка(ДокОснование.Номенклатура.Код))+" ";
        колнаим=СтрДлина(печнаим);
        
        Для сча=1 по СтрДлина(ДокОснование.Номенклатура.ПолнНаименование) Цикл
            символика=Сред(ДокОснование.Номенклатура.ПолнНаименование,сча,1);
            Если (символика<>"=") и (символика<>"""") и (символика<>",") и (символика<>"/") и (символика<>".") и (символика<>"\") Тогда
                печнаим=печнаим+символика;
            Иначе
                печнаим=печнаим+" ";
            КонецЕсли;
            колнаим=колнаим+1;
            Если колнаим=40 Тогда
                Прервать;
            КонецЕсли;
        КонецЦикла;


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

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

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

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