(2) Bacemo, У меня в сети магазинов стоят 8 ФР-К и все без проблем работает. Ставите драйвер ФР 4.10 отсюда, настраиваете подключение в драйвере, затем настраиваете в ФР в 1С
Используйте псевдографику как самый простой вариант.
Дело в том что вот уже как более 2 лет компания "Штрих-М" в поставке драйвера на ФР поставляет
два драйвера "DrvFR" - он же родной и полный драйвер и "DrvFR1C" - жутко кастрированный (убито порядка 70% функционала) специально написанный под "нативовские стандарты" компании 1С.
Лучший конечно вариант использовать библиотеку DrvFR.DLL но тогда необходимо полностью переписывать обработку
для работы с фискальным регистратором в 1С. Или добавить "костыли" в момент когда вам нужно распечатать "другой" текст (например жирный) вы "гасите" драйвер "DrvFR1C" инициируете драйвер "DrvFR" выполняете необходимый Вам функционал. После этого "гасите" драйвер "DrvFR" и снова инициируете драйвер "DrvFR1C" продолжаете печать и закрытие чека.
П.С. Самое смешное во всех ккм-ах (по крайней мере в нашей стране - адаптированных) - это "надумка" драйверов, усложняющих работу с необходимым устройством. Давно уже разработаны ESC и POS стандарты и комманды -зачем огород городить.
Делали бы проще: Просто русифицировали аппараты (для корректного отображения русских букв).
Сделали бы единый драйвер "Чтение/Запись из/в com-порт"(не все умеют инициировать запись/чтение из/в com-порт)
и все! Все ESC команды это подача ASCI кодов((!)обычных символов).
Нужно чек сварганить: "открываешь" COM-порт и шлешь туда необходимые тебе команды.Вот и вся хитрость
(ИМХО так проще)
на всякий случай уточню, что DrvFR1c в версии 4.9 и выше есть возможность вызова железячных методов DrvFR через одну специальную функцию, так что у Штрих-М с этим все шоколадно.
(15) ikekoval, УправлениеУстройством (ИДУстройства, ВхДанные, ВыхДанные)
Передает низкоуровневую команду устройству
Параметры:
DeviceID: WideString [IN]
ИДУстройства [ВХ]
Идентификатор устройства
TxData: WideString [IN]
ВхДанные [ВХ]
Последовательность байт команды, передаваемой в ФР. (см. описание протокола).
Например, для команды «гудок» последовательность будет такая (в шестнадцатеричном
виде): «13 1E 00 00 00». То есть, последовательность начинается с кода команды (в
данном случае «13»), за ним следуют параметры команды (в данном случае – пароль
оператора: «1E 00 00 00»).
RxData: Integer [OUT]
ВыхДанные [ВЫХ]
Последовательность байт ответа ФР.
Возвращаемое значение:
Метод возвращает True в случае успешного выполнения операции, в случае ошибки –
False
Коды команд можно найти в руководстве программиста в разделе: Приложение 1 Коды команд протокола и
использующие их методы драйвера
(17) pablo_escobar, Всё описано в документации. Берем команду "УправлениеУстройством" описанную выше и вызываем команды использующие в качестве параметра тип штрих-кода QR. По ключевым словам вы найдёте команды в руководстве программисту по DrvFR.dll
(20) pablo_escobar, Штрих-ФР-К в разделе с прошивками последние версии от 2005 года. Возможно Вы имеете ввиду обновление драйвера ККМ? Если речь о нём то не вижу проблемы обновить его... Завтра попробую сам и отпишу о результатах.
(21) ikekoval, Нет, драйвер последний, ШТРИХ-ФР-К дорабатывается(меняется железка в нем), потом перепрошивают его и он начинает поддерживать нужные команды и печатать QR. Но это все в сервис центре делать. Вот подробнее
В моём случае версия драйвера ниже той, что работает с командой УправлениеУстройством... Мне требуется печатать отчёт по секциям и он есть в DrvFR (команда СнятьОтчётПоОтделам). Вызывать его желаю при печати X и Z отчёта. Переписывать обработку в корне нет желания. Что бы вызывать эту команду сейчас требуется выполнить
ПрогИД = "AddIn.DrvFR";
Если ПодключитьВнешнююКомпоненту(ПрогИД) Тогда
Отключить(Объект);
ИскомыйДрайвер = Новый (ПрогИД);
ИскомыйДрайвер.Пароль = Пароль;
ИскомыйДрайвер.СнятьОтчётПоОтделам();
Подключить(Объект);
КонецЕсли;
Показать
Где
Процедура Отключить(Объект) Экспорт
// Закрыть соединение
Если Не Объект.Драйвер.Отключить(Объект.ИДУстройства) Тогда
Объект.Драйвер.ПолучитьОшибку(Объект.ОписаниеОшибки);
КонецЕсли;
КонецПроцедуры
Функция Подключить(Объект) Экспорт
Результат = мНетОшибки;
СерийныйНомерККМ = Неопределено;
МассивЗначений = Новый Массив;
МассивЗначений.Добавить(Объект.Параметры.Порт);
МассивЗначений.Добавить(Объект.Параметры.Скорость);
МассивЗначений.Добавить(Объект.Параметры.ПарольПользователя);
МассивЗначений.Добавить(Объект.Параметры.ПарольАдминистратора);
МассивЗначений.Добавить(Объект.Параметры.Таймаут);
МассивЗначений.Добавить(СерийныйНомерККМ);
МассивЗначений.Добавить(мНДС[0]);
МассивЗначений.Добавить(мНДС[1]);
МассивЗначений.Добавить(мНДС[2]);
МассивЗначений.Добавить(мНДС[3]);
МассивЗначений.Добавить(Ложь);
МассивЗначений.Добавить(Объект.Параметры.ЖурналОперацийДрайвера);
МассивЗначений.Добавить(Объект.Параметры.НаименованиеОплаты1);
МассивЗначений.Добавить(Объект.Параметры.НаименованиеОплаты2);
МассивЗначений.Добавить(Объект.Параметры.ПечататьЛоготип);
МассивЗначений.Добавить(Объект.Параметры.РазмерЛоготипа);
МассивЗначений.Добавить(Объект.Параметры.ТипПодключения);
МассивЗначений.Добавить(Объект.Параметры.ИмяКомпьютера);
МассивЗначений.Добавить(Объект.Параметры.IPАдрес);
МассивЗначений.Добавить(Объект.Параметры.TCPПорт);
Если Не Объект.Драйвер.Подключить(МассивЗначений, Объект.ИДУстройства) Тогда
КодОшибки = Объект.Драйвер.ПолучитьОшибку(Объект.ОписаниеОшибки);
Результат = мОшибкаНеизвестно;
Иначе
Если Объект.Параметры.ОтменятьЧекПриПодключении Тогда
Объект.Драйвер.ОтменитьЧек(Объект.ИДУстройства);
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
Показать
Подключить (МассивЗначений, ИДУстройства)
Подключает фискальный регистратор. Создается новое устройство с заданными
параметрами и возвращается его идентификатор
На данный момент смущает тот факт, что в объект (Объект драйвера торгового оборудования) всякий раз при печати отчёта будет генерироваться новый ИДУстройства, который в свою очередь используется во всех фискальных процедурах драйвера...
Что делаю не так? Вчера при установке этой модификации в обработку на кассе распечатался отчёт, но при первом же чеке автоматом получили отмену чека на ФР (без печати) и сообщение об ошибке в 1с (расхождение ленты и памяти из-за конфликта ИД). Вернул старую обработку и всё заработало. Замена обработки сопровождалась перезапуском 1с.