При появлении ККТ Онлайн из большинства 1С убрали возможность снимать промежуточный отчет (X-отчет), оставив возможность только через драйвер ККТ.
Данный код позволяет добавить возможность снимать X-отчет в любой конфигурации с минимальной доработкой, все функции и процедуру типовые используемые при работе ККТ.
/////////////////////////////////////////////////////
&НаКлиенте Процедура МК_ОтчетБезГашения(Команда)
ОбработкаОбслуживания = Неопределено;
ОбъектДрайвера = Неопределено;
МассивККТ = ПолучитьСерверТО().ПолучитьСписокУстройств( ПредопределенноеЗначение("Перечисление.ВидыТорговогоОборудования.ККТ"), КассаККМШапка);
КоличествоККТ = МассивККТ.Количество();
Если КоличествоККТ = 0 Тогда
ТекстСообщения = НСтр("ru='Отсутствуют доступные фискальные устройства'");
ОбщегоНазначения.СообщитьИнформациюПользователю(ТекстСообщения);
ИначеЕсли КоличествоККТ = 1 Тогда
ККТ = МассивККТ[0];
Иначе
ПредставлениеУстройства = "";
ВидУстройства = "";
СписокККТ = Новый СписокЗначений;
Для Каждого Устройство Из МассивККТ Цикл
ПолучитьСерверТО().ПолучитьПредставлениеУстройства(Устройство, ВидУстройства, ПредставлениеУстройства);
СписокККТ.Добавить(Устройство, ПредставлениеУстройства);
КонецЦикла;
ККТ = СписокККТ.ВыбратьЭлемент("Необходимо выбрать фискальное устройство");
Если ККТ <> Неопределено Тогда
ККТ = ККТ.Значение;
КонецЕсли;
КонецЕсли;
Если ККТ = NULL ИЛИ ККТ = Неопределено Тогда
Возврат;
КонецЕсли;
ПолучитьСерверТО().ПолучитьОбъектДрайвера(ККТ, ОбработкаОбслуживания, ОбъектДрайвера);
Если ОбработкаОбслуживания = Неопределено Тогда
ОбщегоНазначения.СообщитьОбОшибке("Ошибка получения обработки обслуживания");
Иначе
РезультатВыполнения = ОбработкаОбслуживания.XОтчет(ОбъектДрайвера, "", "", "");
КонецЕсли;
КонецПроцедуры
/////////////////////////////////////////////////////