Подключение ККМ Пирит ФР01К

Наша организация всегда работала с ФР "Штрих", сейчас она решила перейти на ФР "Пирит ФР01К", хочу рассказать о проблемах с подключением этого ФР к 1с8 (по крайней мере о тех проблемах что возникли у меня), обработка стандартная с 1с ИТС "CrystalsPiritFR01K.epf", драйвер с сайта Кристалл "CrystalsPiritFR01K.dll";

1) Регистрируем dll «regsvr32 ПутьГдеОнаЛежитCrystalsPiritFR01K.dll»;
2) Добавляем обработку, и если она не хочет добавляться, конвертируем ее, просто открыв в конфигураторе и со всем согласившись.
3) Если она упорно не видит драйвер (п.1 выполнен), ищем в модуле объекта обработки следующую строку: Драйвер.НомероватьСтроки = НомероватьСтрокиЧека;
Заменяем ее на: Драйвер.НумероватьСтроки = НомероватьСтрокиЧека;
4) Стандартные шаблоны ЧекаККМ печатаются без проблем, но мы решили сделать свой красивый шаблон ЧекаККМ и тут началось…
Печатает только свой заголовок чека и лезут ошибки «Неверный пакет передачи» и «Расхождение ленты регистратора», оказалось (это как я думаю) что при печати строк он их не ставит в очередь, а тупо возвращает то что «Я занят», 1с принимает это за ошибку и печать останавливается, нечего лучше как поставить пауза между печатью строк текста я не нашел, возможно где то в настройках ФР надо поставить где то галку, но где я не знаю, а печать надо было запустить быстро.
В том же модуле объекта обработки ищем функции и изменяем их:

Функция ПечататьСтроку(Объект, Наименование, Количество, Цена,
Скидка, Отдел, НДС) Экспорт

Результат = мНетОшибки;
//Ткачев
Для АА = 1 По 1000 Цикл
А = АА%2;
КонецЦикла;
//***
...

Ищем еще одну функцию и так же изменяем ее:

Функция НапечататьСтроки(Объект, МассивСтрокСлипЧека, ШиринаЧека) Экспорт

Результат = мНетОшибки;

// Печать строки чека
Для Каждого Стр из МассивСтрокСлипЧека Цикл
//Ткачев
Для АА = 1 По 1000 Цикл
А = АА%2;
КонецЦикла;
//***
...

Теперь все печатает, все без ошибок.

Если у кого то были такие проблем было бы интересно выслушать их решение.

2 Comments

  1. CratosX

    А в настройках формы драйвера редактирования не пытались поправить время задержки?

    Reply
  2. Ткачев

    А причем тут время задержки ?

    Если подача данных циклом идет, я строку послал на печать, за ней сразу вторую, функция «Объект.Драйвер.НапечататьНеФискСтроку(Объект.ИДУстройства, Стр)» возвращает что принтер занят и соответственно валится в ошибку.

    // Печать строки чека

    Для Каждого Стр из МассивСтрокСлипЧека Цикл

    Если Не Объект.Драйвер.НапечататьНеФискСтроку(Объект.ИДУстройства, Стр) Тогда

    Результат = мОшибкаНеизвестно;

    Объект.Драйвер.ПолучитьОшибку(Объект.ОписаниеОшибки);

    Прервать;

    КонецЕсли;

    КонецЦикла;

    Reply

Leave a Comment

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