Имя: Пароль:
1C
1С v8
Чек на возврат в другой день из 1С 77 и 8 для Штрих онлайн - не печатается
0 melis
 
15.08.20
14:24
Доброго дня всем.

Может кто-нибудь подскажет, что нужно нужно подправить в обработке для ТиС 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();
1 Недопустимый
 
15.08.20
14:32
нельзя дать деньги за возврат если их нет в кассе. чтобы совершить возврат на 100 денег (по плат карте.)нужно продать на 100+ денег сегодня ибо остаток не переходит со вчерашнего дня.
2 Ёпрст
 
15.08.20
19:49
или внести деньги в кассу и потом возврат