17.
melis
97
15.08.20 14:11
Сейчас в теме
Доброго дня
Может кто-нибудь подскажет, что нужно нужно подправить в обработке для ТиС 7.7 для отбития чека на возврат в другой день за нал и безнал (по платиковой карте)?
Вроде все верно передаю, но чек не отбивается - выдает ошибку.
Может надо сначала внесение денег на эту сумму в ФР штрих онлайн сделать?
Или еще что-то - может кто-то подсказать?
Есть уже на 10 раз переписанная обработка работы с драйвером штрих онлайн.
Есть созданный программно в 1С77 объект на dll версии 4.14
и соединение к ней:
Объект.Password=Пароль;
Объект.Connect();
Объект.GetDeviceMetrics();
и т.д.
прямой чек и возврат в тот же день отбиваются нормально. Код примерно такой:
Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл //передача списка товаров с суммами в чек (в т.ч. для ОФД)
Объект.Password = Пароль; // Приход Расход
Объект.CheckType = ?(ПризнВозврата = 0,1,2); //ПризнВозврата = 0 - продажа, иначе возврат
Объект.StringForPrinting = СписокТоваров.ТовНаим;
Объект.Price = ЦенаСоСкд; //тщи 54ФЗ
Объект.Quantity = СписокТоваров.Количество;
Объект.Department = НомерСекции;
Если НДС = 18 Тогда
Объект.Tax1 = 1;
ИначеЕсли НДС = 10 Тогда
Объект.Tax1 = 2;
ИначеЕсли НДС = 20 Тогда
Объект.Tax1 = 1; //??? не предусмотрено
Иначе
Объект.Tax1 = 3;
КонецЕсли;
// если ЕНВД, то Объект.Tax1 = 4;
Объект.PaymentItemSign = PaymentItemSign;
Объект.FNOperation();
Объект.StringForPrinting = ?(PaymentTypeSign=4,"Полный расчет","Предоплата 100%");
Объект.PrintString();
Объект.StringForPrinting = ?(PaymentItemSign = 1,"Товар","Услуга");
Объект.PrintString();
КонецЦикла;
Если сокрлп(ИННкассира) <> "" Тогда
Объект.Password = Пароль;
Объект.TagNumber = 1203;
Объект.TagType = 7;
Объект.TagValueStr = сокрлп(ИННкассира);
Объект.FNSendTag();
КонецЕсли;
Объект.Password = Пароль;
Далее суммы заполняем общие по чеку:
Если Нал = 1 Тогда
Объект.Summ1 = СуммаЧека; //если наличными
Объект.Summ2 = 0; //если оплата пласт. картой
Объект.Summ3 = 0; //если оптала оп счету фз.лицом
ИначеЕсли БезНал = 1 Тогда
Объект.Summ1 = 0; //если наличными
Объект.Summ2 = СуммаЧека; //если оплата пласт. картой
Объект.Summ3 = 0; //если оптала оп счету фз.лицом
Иначе
Объект.Summ1 = 0; //если наличными
Объект.Summ2 = 0; //если оплата пласт. картой
Объект.Summ3 = СуммаЧека; //если оптала оп счету фз.лицом
КонецЕсли;
Если Объект.ResultCode <> 0 Тогда
ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
АннулированиеЧека(Объект, Пароль);
ОтключитьсяОтФР(Объект, Пароль, 0);
Возврат 0;
КонецЕсли;
Объект.FNCloseCheckEx();
Если Объект.ResultCode <> 0 Тогда
Попытка
Объект.Password = Пароль; //\\//\\+
Объект.Гудок();
Исключение
КонецПопытки;
ОписаниеРезультата = ПолучитьОписаниеРезультата(Объект);
АннулированиеЧека(Объект, Пароль);
ОтрезатьЧек(Объект, Пароль);
ОтключитьсяОтФР(Объект, Пароль, 0);
Возврат 0;
КонецЕсли;
Объект.Password = Пароль;
Объект.GetECRStatus();