Печать произвольного текста на фискальном регистраторе (не чек)
Здравствуйте коллеги!
Необходимо распечатать произвольную информацию на фискальном регистраторе.
Помещаю строки в массив и отправляю на печать:
Все здорово, данные печатаются. Но перед моими данными печатается шапка(с названием организации, инн и прочее). Как я понимаю, это или драйвер или само устройство подкидывает.
Может кто знает как напечатать текст без "автоматической" шапки?
Необходимо распечатать произвольную информацию на фискальном регистраторе.
Помещаю строки в массив и отправляю на печать:
МенеджерОборудованияКлиент.НачатьВыполнениеКоманды(Оповещение, ИдентификаторУстройства, "PrintText", Массив);
Все здорово, данные печатаются. Но перед моими данными печатается шапка(с названием организации, инн и прочее). Как я понимаю, это или драйвер или само устройство подкидывает.
Может кто знает как напечатать текст без "автоматической" шапки?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для тех же Штрихов или Атолов (за другие точно не скажу) есть тест-драйвер, он устанавливается с драйверами, им можно менять настройки самого кассового аппарата. Вот им и можно попробовать убрать шапку. Но для наччала почитай как им пользоваться для твоей модели и версии драйверов. Потому как если мозги кассе свернуть это прямой путь к сервисникам с соответствующей оплатой работ по восстановлению
Попробуй Функция "НапечататьСтроки" . Делаю так все работает Штрих-М. (посмотри Обработку ТОСервис в конфигураторе)
Функция ПечатьТекста(Идентификатор, МассивСтрокСлипЧека, ШиринаЧека) Экспорт
Обработка = Неопределено;
Объект = Неопределено;
Результат = ПолучитьОбъектДрайвера(Идентификатор, Обработка, Объект);
Если НЕ ЗначениеЗаполнено(Результат) Тогда
Результат = Обработка.НапечататьСтроки(Объект, МассивСтрокСлипЧека, ШиринаЧека);
мОписаниеОшибки = Объект.ОписаниеОшибки;
Иначе
мОписаниеОшибки = ПолучитьТекстОшибкиПодключенияТО("ФР");
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ПолучитьОбъектДрайвера(Идентификатор, Обработка, Объект) Экспорт
Результат = мНетОшибки;
ТО = ПолучитьТО();
Оборудование = ТО.Найти(Идентификатор, "Идентификатор");
Если Оборудование = Неопределено Тогда
Результат = мОшибкаНеизвестно;
Иначе
Обработка = Оборудование.Обработка;
Объект = Оборудование.Объект;
КонецЕсли;
Возврат Результат;
КонецФункции
Данная функция осуществляет построчную печать произвольного нефискального чека. Применяется, например, для печати слип-чеков на ФР.
// Функция осуществляет построчную печать нефискального чека из переданного массива строк.
// (API v2.0)
//
// Параметры:
// Объект - <*>
// - Объект драйвера ФР.
//
// МассивСтрок - <Массив>
// - Массив строк для печати.
//
// Ширина - <Число>
// - Ширина чековой ленты.
//
// Возвращаемое значение:
// <ПеречислениеСсылка.ТООшибки*> - Результат выполнения операции.
//
Функция НапечататьСтроки(Объект, МассивСтрок, Ширина) Экспорт
Функция ПечатьТекста(Идентификатор, МассивСтрокСлипЧека, ШиринаЧека) Экспорт
Обработка = Неопределено;
Объект = Неопределено;
Результат = ПолучитьОбъектДрайвера(Идентификатор, Обработка, Объект);
Если НЕ ЗначениеЗаполнено(Результат) Тогда
Результат = Обработка.НапечататьСтроки(Объект, МассивСтрокСлипЧека, ШиринаЧека);
мОписаниеОшибки = Объект.ОписаниеОшибки;
Иначе
мОписаниеОшибки = ПолучитьТекстОшибкиПодключенияТО("ФР");
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ПолучитьОбъектДрайвера(Идентификатор, Обработка, Объект) Экспорт
Результат = мНетОшибки;
ТО = ПолучитьТО();
Оборудование = ТО.Найти(Идентификатор, "Идентификатор");
Если Оборудование = Неопределено Тогда
Результат = мОшибкаНеизвестно;
Иначе
Обработка = Оборудование.Обработка;
Объект = Оборудование.Объект;
КонецЕсли;
Возврат Результат;
КонецФункции
Данная функция осуществляет построчную печать произвольного нефискального чека. Применяется, например, для печати слип-чеков на ФР.
// Функция осуществляет построчную печать нефискального чека из переданного массива строк.
// (API v2.0)
//
// Параметры:
// Объект - <*>
// - Объект драйвера ФР.
//
// МассивСтрок - <Массив>
// - Массив строк для печати.
//
// Ширина - <Число>
// - Ширина чековой ленты.
//
// Возвращаемое значение:
// <ПеречислениеСсылка.ТООшибки*> - Результат выполнения операции.
//
Функция НапечататьСтроки(Объект, МассивСтрок, Ширина) Экспорт
(5) А какая у вас конфигурация и на чем печатаете (тип оборудования)?
У меня все на 8.3. Я пытаюсь сделать печать из УНФ 1.6, пробовал и из Розницы 2.2. Печатаю на оборудовании с типом "ККТ с передачей данных".
Обработку "ТОСервис" в конфигураторе не нашел, зато нашел на сайте 1С "Обработки обслуживания торгового оборудования". Как я понимаю они раньше использовались в предыдущих конфигурациях. Получается в новых конфигурациях вместо зоопарка обработок работа с драйвером происходит через общий модуль "ПодключаемоеОборудованиеУниверсальныйДрайверКлиент".
Посмотрел код из обработки обслуживания "ШтрихМККТсПередачейДанных". Там есть функция "НапечататьСтроки", которая на самом деле выглядит вот так:
Которая на самом деле вызывает туже функцию, что и мой код:
В обработке обслуживания "ШтрихМФискальныеРегистраторы", вызывается функция:
Но такой функции нет в драйверах для ККМ Онлайн.
У меня все на 8.3. Я пытаюсь сделать печать из УНФ 1.6, пробовал и из Розницы 2.2. Печатаю на оборудовании с типом "ККТ с передачей данных".
Обработку "ТОСервис" в конфигураторе не нашел, зато нашел на сайте 1С "Обработки обслуживания торгового оборудования". Как я понимаю они раньше использовались в предыдущих конфигурациях. Получается в новых конфигурациях вместо зоопарка обработок работа с драйвером происходит через общий модуль "ПодключаемоеОборудованиеУниверсальныйДрайверКлиент".
Посмотрел код из обработки обслуживания "ШтрихМККТсПередачейДанных". Там есть функция "НапечататьСтроки", которая на самом деле выглядит вот так:
Функция НапечататьСтроки(Объект, МассивСтрок, Ширина = 0) Экспорт
СтрокаДляПечати = "";
Для Каждого СтрокаТекста Из МассивСтрок Цикл
СтрокаДляПечати = СтрокаДляПечати + СтрокаТекста + Символы.ПС;
КонецЦикла;
мВходныеПараметры.Очистить();
мВходныеПараметры.Добавить(СтрокаДляПечати);
РезультатВыполнения = ПодключаемоеОборудованиеУниверсальныйДрайверКлиент.ВыполнитьКоманду("ПечатьТекста",
мВходныеПараметры, мВыходныеПараметры, Объект.Драйвер, мПараметрыУстройства, мПараметрыПодключения);
Если Не РезультатВыполнения Тогда
Результат = мОшибкаНеизвестно;
Объект.ОписаниеОшибки = мВыходныеПараметры[1];
Иначе
Результат = мНетОшибки;
Объект.Вставить("ВыходныеПараметры", мВыходныеПараметры);
КонецЕсли;
Возврат Результат;
КонецФункции
ПоказатьКоторая на самом деле вызывает туже функцию, что и мой код:
Результат = ОбъектДрайвера.НапечататьТекстовыйДокумент(ПараметрыПодключения.ИДУстройства, ТекстПечати);
В обработке обслуживания "ШтрихМФискальныеРегистраторы", вызывается функция:
Объект.Драйвер.НапечататьНефискСтроку(Объект.ИДУстройства, СтрокаТекста)
Но такой функции нет в драйверах для ККМ Онлайн.
Печатаю из "Управление торговлей", редакция 10.3 на ШТРИХ-М-01Ф и ККТ РР-02Ф (ккт с передачей данных).
Поищи может перед
где-то выполняется команда Эта команда и отвечает за печать шапки в чеке
Код из 8.3. Управление торговлей, редакция 11 не совсем корректный пример другого не нашел. Если закомментировать Открытие и Закрытие чека то слип чек должен выйте на ккм без шапки.
Поищи может перед
МенеджерОборудованияКлиент.НачатьВыполнениеКоманды(Оповещение, ИдентификаторУстройства, "PrintText", Массив);
где-то выполняется команда
Результат = ОткрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, Ложь, Ложь, ВыходныеПараметры);
Код из 8.3. Управление торговлей, редакция 11 не совсем корректный пример другого не нашел. Если закомментировать Открытие и Закрытие чека то слип чек должен выйте на ккм без шапки.
// Осуществляет печать слип чека.
//
Функция ПечатьТекста(ОбъектДрайвера, Параметры, ПараметрыПодключения, СтрокаТекста, ВыходныеПараметры) Экспорт
Результат = Истина;
// Открываем чек - вот эта команда печатает шапку на чек ее необходимо закомментировать
//Результат = ОткрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, Ложь, Ложь, ВыходныеПараметры);
// Печатаем строки чека
//Если Результат Тогда
Для НомерСтроки = 1 По СтрЧислоСтрок(СтрокаТекста) Цикл
ВыделеннаяСтрока = СтрПолучитьСтроку(СтрокаТекста, НомерСтроки);
Если (Найти(ВыделеннаяСтрока, Символ(Параметры.КодСимволаЧастичногоОтреза)) > 0)
Или (Найти(ВыделеннаяСтрока, "[отрезка]") > 0)
Или (Найти(ВыделеннаяСтрока, "[spoiler]") > 0) Тогда
ТаблицаОплат = Новый Массив();
Результат = ЗакрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТаблицаОплат, ВыходныеПараметры);
Результат = ОткрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, Ложь, Ложь, ВыходныеПараметры);
Иначе
Если НЕ НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,
ВыделеннаяСтрока, ВыходныеПараметры) Тогда
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
//КонецЕсли;
// Закрываем чек - ну и комментируем закрытие т.к. не открывали чек
//Если Результат Тогда
//ТаблицаОплат = Новый Массив();
// Результат = ЗакрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТаблицаОплат, ВыходныеПараметры);
//КонецЕсли;
Возврат Результат;
КонецФункции
Показать
(9)Здравствуйте. Скажите, а вы печатаете произвольный текст на ФР? Опишу свою задачу: хочу иметь обработку или внешнюю печатную форму, в которой будет окно, куда можно написать любой текст, и по нажатию кнопки "печать", будет осуществляться печать на ФР. Понятно что нефискальных строк.
Вы осуществили так же?
Вы осуществили так же?
Переделал печать на:
НачатьПечатьТекста
НачатьФискализациюЧекаНаФискальномУстройстве
НачатьПечатьТекста
В итоге у меня у меня печатается три бумажки: не фискальный документ, фискальный документ, не фискальный документ.
Во всех трех есть заголовки. Вопрос как их убрать и отключить отрез между ними.
Или подскажите пожалуйста можно ли реализовать в НачатьФискализациюЧекаНаФискальномУстройстве печать в подвале или шапке своего текста(заполняется динамически из 1С).
НачатьПечатьТекста
НачатьФискализациюЧекаНаФискальномУстройстве
НачатьПечатьТекста
В итоге у меня у меня печатается три бумажки: не фискальный документ, фискальный документ, не фискальный документ.
Во всех трех есть заголовки. Вопрос как их убрать и отключить отрез между ними.
Или подскажите пожалуйста можно ли реализовать в НачатьФискализациюЧекаНаФискальномУстройстве печать в подвале или шапке своего текста(заполняется динамически из 1С).
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот