Имя: Пароль:
1C
1С v8
Не печатается QR-код при печати текста на ФР
0 dchumak
 
19.12.22
10:01
Добрый день, форумчане.

Конфигурация УТ 10.3 сильно доработанная.
Платформа 8.3.22.1709 (32 битная).

Пару месяцев назад делал печать QR-кода для СБП.

Для этого в ПечатьТекста() передавал строку следующего вида (в массиве)
ШтрихКод|QR|https://qr.nspk.ru/97c3358659a149e0a53f8e8b38.....c?type=02&bank=100000000111&sum=100&cur=RUB&crc=1ABE

Выводился QR-код на нефискальном чеке.

Вот код

МассивСтрокСлипЧека = Новый Массив;
МассивСтрокСлипЧека.Добавить("ШтрихКод|QR|" + СсылкаДляГенерацииКода);
...
ШиринаЧека = Неопределено;
РезультатФР = ПолучитьСерверТО().ПечатьТекста(ФР, МассивСтрокСлипЧека, ШиринаЧека);

Сегодня обратились - не работает. Просто печатается строка на чеке, а не QR.

В чем может быть причина? Кассу и драйвер не меняли.

Обновлялась только платформа.
1 lodger
 
19.12.22
11:24
а кто ж знает, что у вас творится внутри ПечатьТекста() ?
2 dchumak
 
19.12.22
12:00
(1)
Функция ПечатьТекста(Идентификатор, МассивСтрокСлипЧека, ШиринаЧека) Экспорт

    Обработка = Неопределено;
    Объект    = Неопределено;
    Результат = ПолучитьОбъектДрайвера(Идентификатор, Обработка, Объект);

    Если НЕ ЗначениеЗаполнено(Результат) Тогда
        Результат = Обработка.НапечататьСтроки(Объект, МассивСтрокСлипЧека, ШиринаЧека);
        мОписаниеОшибки = Объект.ОписаниеОшибки;
    Иначе
        мОписаниеОшибки = ПолучитьТекстОшибкиПодключенияТО("ФР");
    КонецЕсли;

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

КонецФункции
3 dchumak
 
19.12.22
12:06
в итоге формируется вот такой ХМЛ

<?xml version="1.0" encoding="UTF-8"?>
<Document>
    <Positions>
        <TextString Text="ШтрихКод|QR|https://qr.nspk.ru/97c3358659a149e0a53f8e8b38da395c?type=02&bank=100000000111&sum=100&cur=RUB&crc=1ABE"/>
    </Positions>
</Document>

И он на печать выводится просто строкой, а раньше выводился как QR-код.
4 lodger
 
19.12.22
12:16
(3) не знаю как это могло работать раньше, но ККМ ожидает: https://its.1c.ru/db/metod8dev#content:4829:hdoc:DocumentPackage

например

<Document>

    <Positions>

        <Barcode Type="QR" Text= Преобразовать твой код в 64("ШтрихКод|QR|https://qr.nspk.ru/97c3358659a149e0a53f8e8b38da395c?type=02&bank=100000000111&sum=100&cur=RUB&crc=1ABE")/>

    </Positions>

</Document>
5 lodger
 
19.12.22
12:23
извините, не Text, а ValueBase64
6 Галахад
 
гуру
19.12.22
12:26
Возможно обработку поменяли? Что за обработка?
   Обработка.НапечататьСтроки
7 dchumak
 
19.12.22
12:37
Коллеги, спасибо.
Проблема решилась.
Нужно было ставить | и перед строкой, т.е. |ШтрихКод|QR|ссылка.
Как раньше работало непонятно.