Подключение касового апарата к 1с производится через обработку SystemGroup_ATLAS_v2. При оплате карточкой чек не пробивается на ФР пишет "ЧЕК АНУЛЬОВАНО".
Вот функция которая закрываэт чек. Параметры проверил, код вида оплаты в тоже.
Функция ЗакрытьЧек(Объект, СуммаНал, СуммаБезнал) Экспорт
Результат = мНетОшибки;
Если Объект.Драйвер.PrinterState = 9 Тогда
Объект.Драйвер.EndNonFiscal();
Если Объект.Драйвер.ResultCode <> 0 Тогда
Объект.ОписаниеОшибки = НСтр("ru='Кассовый аппарат ';uk='Касовий апарат '") + НСтр("ru=' ошибка оплаты ';uk=' помилка оплати '") + ОписаниеОшибки() + ".";
Результат = мОшибкаНеизвестно;
Возврат Результат; КонецЕсли; КонецЕсли;
Если СуммаБезнал <> 0 Тогда
Объект.Драйвер.PrintRecTotal(СуммаБезнал, СуммаБезнал, "1");
Если Объект.Драйвер.ResultCode <> 0 Тогда
Объект.ОписаниеОшибки = НСтр("ru='Кассовый аппарат ';uk='Касовий апарат '") + НСтр("ru=' ошибка оплаты ';uk=' помилка оплати '") + ОписаниеОшибки() + ".";
Результат = мОшибкаНеизвестно;
Возврат Результат; КонецЕсли; КонецЕсли;
Если СуммаНал <> 0 Или (СуммаНал = 0 И СуммаБезнал = 0)Тогда
Объект.Драйвер.PrintRecTotal(СуммаНал, СуммаНал, "0");
Если Объект.Драйвер.ResultCode <> 0 Тогда
Объект.ОписаниеОшибки = НСтр("ru='Кассовый аппарат ';uk='Касовий апарат '") + НСтр("ru=' ошибка оплаты ';uk=' помилка оплати '") + ОписаниеОшибки() + ".";
Результат = мОшибкаНеизвестно;
Возврат Результат; КонецЕсли; КонецЕсли;
Объект.Драйвер.EndFiscalReceipt(True);
Если Объект.Драйвер.ResultCode <> 0 Тогда
Объект.ОписаниеОшибки = НСтр("ru='Кассовый аппарат ';uk='Касовий апарат '") + НСтр("ru=' ошибка оплаты ';uk=' помилка оплати '") + ОписаниеОшибки() + ".";
Результат = мОшибкаНеизвестно;
Возврат Результат; КонецЕсли;
// Закрытие чека
Возврат Результат;
КонецФункции // ЗакрытьЧек()
! | http://pro1c.org.ua/index.php?act=announce&id=2: 6 |
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua