Имя: Пароль:
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 возвращает код ошибки или ноль,вот если не ноль,то команда не выполнена
хватит мучить ФР
пишите правильно код   ничего не пропадет
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан