Небольшая доработка УТ 10.3 для печати X-отчета для онлайн ККТ (ШТРИХ-М-01-Ф, ШТРИХ-М-02-Ф)

Актуально для релиза: 10.3.41.1.
Доработка УТ 10.3 для печати X-отчета для онлайн ККТ (ШТРИХ-М-01-Ф, ШТРИХ-М-02-Ф) + немного доработанная обработка обслуживания ShtrihMkkt.epf для подключения онлайн ККТ к УТ 10.3.

УТ 10.3 у нас сильно измененная и давно не обновлялась, пришлось перетаскивать изменения для ККТ из нового релиза.

Как выяснилось, печать Х-отчета в программе почему-то не реализована.

Для печати Х-отчета доработал функцию "ВыполнитьКоманду" из общего модуля "ПодключаемоеОборудованиеУниверсальныйДрайверКлиент"

Функция ВыполнитьКоманду(Команда, ВходныеПараметры = Неопределено, ВыходныеПараметры = Неопределено,
ОбъектДрайвера, Параметры, ПараметрыПодключения) Экспорт

Результат = Истина;

ВыходныеПараметры = Новый Массив();

// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩИЕ ДЛЯ ВСЕХ ТИПОВ ДРАЙВЕРОВ

// Тестирование устройства
Если Команда = "ТестУстройства" ИЛИ Команда = "CheckHealth" Тогда
Результат = ТестУстройства(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры);

ИначеЕсли Команда = "ВыполнитьДополнительноеДействие" ИЛИ Команда = "DoAdditionalAction" Тогда
ИмяДействия = ВходныеПараметры[0];
Результат = ВыполнитьДополнительноеДействие(ОбъектДрайвера, Параметры, ПараметрыПодключения, ИмяДействия, ВыходныеПараметры);

// Получение версии драйвера
ИначеЕсли Команда = "ПолучитьВерсиюДрайвера" ИЛИ Команда = "GetVersion" Тогда
Результат = ПолучитьВерсиюДрайвера(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры);

// Получение описание драйвера.
ИначеЕсли Команда = "ПолучитьОписаниеДрайвера" ИЛИ Команда = "GetDescription" Тогда
Результат = ПолучитьОписаниеДрайвера(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры);

// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩИЕ ДЛЯ РАБОТЫ С ФИСКАЛЬНЫМИ УСТРОЙСТВАМИ

// Открытие денежного ящика
ИначеЕсли Команда = "OpenCashDrawer" ИЛИ Команда = "ОткрытьДенежныйЯщик" Тогда
Результат = ОткрытьДенежныйЯщик(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры);

// Получение ширины строки в символах
ИначеЕсли Команда = "GetLineLength" ИЛИ Команда = "ПолучитьШиринуСтроки" Тогда
Результат = ПолучитьШиринуСтроки(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры);

// Открыть смену
ИначеЕсли Команда = "OpenShift" ИЛИ Команда = "ОткрытьСмену" Тогда
Результат = ОткрытьСмену(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры);

// Закрыть кассовую смену
ИначеЕсли Команда = "CloseShift" ИЛИ Команда = "ЗакрытьСмену" Тогда
Результат = ЗакрытьСмену(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры);

// Отчет о текущем состоянии расчетов
ИначеЕсли Команда = "ReportCurrentStatusOfSettlements" ИЛИ Команда = "ОтчетОТекущемСостоянииРасчетов" Тогда
Результат = ОтчетОТекущемСостоянииРасчетов(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры);

// Печать чека внесения/выемки.
ИначеЕсли Команда = "Encash" ИЛИ Команда = "Инкассация" Тогда
ТипИнкассации = ВходныеПараметры[0];
Сумма         = ВходныеПараметры[1];
Результат = Инкассация(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТипИнкассации, Сумма, ВходныеПараметры, ВыходныеПараметры);

// Фискализация чека.
ИначеЕсли Команда = "CheckFiscalization" ИЛИ Команда = "ФискализацияЧека" Тогда
Результат = ФискализацияЧека(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры);

// Печать слип чека
ИначеЕсли Команда = "PrintText" ИЛИ Команда = "ПечатьТекста"  Тогда
СтрокаТекста = ВходныеПараметры[0];
Результат = ПечатьТекста(ОбъектДрайвера, Параметры, ПараметрыПодключения, СтрокаТекста, ВыходныеПараметры);

// Получить текущее состояние
ИначеЕсли Команда = "GetCurrentStatus" ИЛИ Команда = "ПолучитьТекущееСостояние" Тогда
Результат = ПолучитьТекущееСостояние(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры);

// Получить параметры ККТ
ИначеЕсли Команда = "GetDataKKT" ИЛИ Команда = "ПолучитьПараметрыККТ" Тогда
Результат = ПолучитьПараметрыККТ(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВыходныеПараметры);

// Отчет о текущем состоянии расчетов
ИначеЕсли Команда = "OperationFN" ИЛИ Команда = "ОперацияФН" Тогда
Результат = ОперацияФискальногоНакопителя(ОбъектДрайвера, Параметры, ПараметрыПодключения, ВходныеПараметры, ВходныеПараметры, ВыходныеПараметры);

//***Начало изменений
ИначеЕсли Команда = "PrintXReport" ИЛИ Команда = "НапечататьОтчетБезГашения" Тогда
Результат = ОтчетБезГашения(ОбъектДрайвера, ПараметрыПодключения, ВыходныеПараметры);
//***Конец изменений

КонецЕсли;

Возврат Результат;

КонецФункции

Также в этот модуль добавил функцию "ОтчетБезГашения"

Функция ОтчетБезГашения(ОбъектДрайвера, ПараметрыПодключения, ВыходныеПараметры)

Результат = Истина;

Попытка
Результат = ОбъектДрайвера.НапечататьОтчетБезГашения(ПараметрыПодключения.ИДУстройства);
Исключение
Результат = Ложь;
ВыходныеПараметры.Очистить();
ВыходныеПараметры.Добавить(999);
ВыходныеПараметры.Добавить(НСтр("ru='Ошибка вызова метода <ОбъектДрайвера.НапечататьОтчетБезГашения>.'") + Символы.ПС + ОписаниеОшибки());
Возврат Результат;
КонецПопытки;

Возврат Результат;

КонецФункции

Для того, чтобы ККТ подключилась к УТ 10.3, пришлось немного подправить функцию "Подключить()" в обработке обслуживания.

1 Comment

  1. myromskui

    Я тоже бодался с этой проблемой! в последней версии драйвера все исправлено

    дата релиза 3 мая 2017 года версия ШтрихМ 4.13.572 — доступна для скачивания с офсайта shtrih-mюru

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *