Печать на ККТ текстового документа из УТ 10.3

Оборудование - ККМ

Показан способ печати нефискальных, произвольного текстового содержания документов на кассах-онлайн на примере 1С:Управление торговлей 10.3.

Иногда кассиру, оператору требуется напечатать для клиента какой-либо текстовый документ, например, предварительный заказ. Удобно это делать на контрольно-кассовой технике, которая уже установлена на рабочем месте. При работе с фискальными регистраторами (ФР) обычно это не вызывает сложностей. Рассмотрим вариант печати нефискального документа на ККТ для УТ 10.3.

На самом деле в конфигурации УТ 10.3 на уровне общих модулей уже все необходимое есть, остается это правильно собрать и исполнить, но при этом в обработках обслуживания торгового оборудования для ККТ с передачей данных, по крайней мере для Штрих-м и Атол, нет необходимых функций.  Итак, из конфигурации нам понадобиться следующие ключевые процедуры/функции:

  • ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.ВыполнитьКоманду - универсальная процедура для подачи команды на ККТ, в частности нам понадобится для печати команда PrintTextDocument;
  • МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека - для формирования строк для печати на ленте;
  • Остальное можно уже делать по аналогии с печатью чека на ККТ из документ ЧекККМ процедуры модуля документа ПровестиИРаспечататьЧек.

Для единообразия дополним существующую обработку обслуживания ККТ функцией печати текстового документа:

Функция НапечататьТекстовыйДокумент(Объект, ПараметрыЧека, ШиринаСтроки = 32) Экспорт
	
	ПолучитьПараметрыККТ(Объект);
	
	мПараметрыПодключения.Вставить("ПараметрыРегистрации", Объект.ВыходныеПараметры);
	мПараметрыПодключения.Вставить("ШиринаСтроки", ШиринаСтроки);
	
	мВходныеПараметры.Очистить();
	мВходныеПараметры.Добавить(ПараметрыЧека);

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

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

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

Получаем примерно такой псевдокод для печати из конфигурации с нашей обновленной обработкой обслуживания:

ПозицииЧека = Новый Массив;

Для Каждого СтрокаДляПечати Из СтрокиКПечати Цикл

    // Формируем строку для печати в нужной структуре 
    СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека(СтрокаДляПечати);
    СтрокаЧека.Выравнивание = "Лево"; // Выравнивание на ленте, возможные значения: "Лево", "Право", "Центр"
    ПозицииЧека.Добавить(СтрокаЧека);

КонецЦикла;

ДанныеДляПечати = Новый Массив;
ДанныеДляПечати.Добавить(ПозицииЧека);

// вызываем нашу добавленную функцию в обработку обслуживания
ОбработкаОбслуживания.НапечататьТекстовыйДокумент(ОбъектДрайвера, ДанныеДляПечати, ?(КассаККМ.ШиринаЛенты = 0, 32, КассаККМ.ШиринаЛенты)); // КассаККМ - ссылка на справочник КассыККМ, к которому подключен ККТ, соедржащий реквизит для ручного задания ширины ленты.

 

Тестировалось на Управление торговлей 10.3.47.3. Учитывая, что общие модули - часть БПО, то такой же механизм подойдет для печати и на УТ 11 в части всевдокода и общих модулей. ККТ использовался Штрих-LIGHT-01Ф.

Во вложение доработанная обработка обслуживания для Штрих-м (Атол по аналогии можно сделать) и внешняя печатная форма к документу Заказ покупателя, которая печатает заказ на ККТ.

Скачать файлы

Наименование Файл Версия Размер
Печать на ККТ текстового документа из УТ 10.3:
.zip 283,84Kb
25.05.18
1
.zip 283,84Kb 1 Скачать

См. также

В этой теме еще нет сообщений.
Оставьте свое сообщение