Установить deviceenabled равным true как это сделать

Добавил пользователь Евгений Кузнецов
Обновлено: 18.09.2024

На чековой ленте теперь необходимо печатать QR со ссылкой на чек в системе ЕГАИС. Стандартная обработка работы с фискальными регистраторами АТОЛ в УТ 10.3 этого делать не умеет. Не умеет - научим, не захочет - заставим. В статье приведен весь исходный код.

В интернете, на тематических форумах (в том числе и на форуме Infostart) эта проблема обсуждалась, и программисты приводят свои наработки.

К приведенным кодам (по крайней мере, касающихся драйвера Атола) у меня одно нарекание : выложенного ЦЕЛИКОМ я не увидел не одного. В общем, алгоритм верный приведен, но дьявол кроется в деталях.

  1. последние драйвера Атола (в моем случае это были DTO_8_09_00_00_Full);
  2. фискальный регистратор FPrint 11 ПТК (скорее всего, подойдет и к другим моделям, лишь бы умели печатать QR-код);
  3. необходимость печатать QR на чеке с алкогольной продукцией;
  4. УТ 10.3.36 (37).

Начать лучше с тестовой обработки, которую мы запустим в УТ 10.3 (не в интерфейсе кассира, чтобы устройство FPrint не было занято).

Обработка на "обычных" формах, с кнопкой Выполнить, весь код на форме (ничего в модуле объекта нет).

Если картинка у нас получилась - можно внести ряд изменений в конфигурацию, чтобы печать QR происходила в каждом закрытом чеке с алкоголем.

. ВАЖНО

Если печати не произошло - возможно, ваша модель ФР печатает QR только "как картинку", для этого используется команда

Объект.PrintBitmapFromFile();

Кроме того,можете попробовать обновить драйвера АТОЛ до самых новых: они обещали "научить" драйвер распознавать, как передать QR на печать (то есть преобразовывать в bitmap самостоятельно)


В Общем модуле "ИнтеграцияЕГАИСКлиент" (в 10.3.36 он назывался "ИнтеграцияЕГАИСКлиентПереопределяемый") правим фунцию Функция ПечатьСлипЧека

В обработке ТОСервер добавляем:

Во внешней обработке ATOLFiscalPrinters_v2.epf добавляем

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

По поводу скорости обмена.
Логи не нашел, зато вот это нашел:

1 – 1200 бод;
2 – 2400 бод;
3 – 4800 бод;
4 – 9600 бод;
5 – 14400 бод;
6 – 38400 бод;
7 – 57600 бод;
8 – 115200 бод;
9 – 19200 бод

Не подскажите, почему после запуска тестовой обработки, не освобождается COM-порт?
Приходится перезапускать платформу.

(2) doba1,
могу лишь предположить.
В тестовой обработке объект отключается как-то так
Драйвер.DeviceEnabled = 0; //на последние строки драйвер атола ругался на
Драйвер.DeleteDevice(); //последовательность команд (но только в логах, юзер этого не видит)

(хотя, вообще-то, в "боевой" тоже).
Что-то Атолу не нравится, он об этом кричит в логи.
Честно - я его не понял (и не стал углубляться, так как тестовая пригодится ну 1 раз на 1 ПК).

Если вчитаться в логи - наверное, можно понять, что именно не так.

(4) bgp, версия драйвера, модель фр?
Единственное, ято мы можем поменять - скорость обмена с фр, вплоть до 115200
Хотя вроде скорость печати тоже где-то настраивалась; возможно, из теста драйвера.

Далее. Есть ряд моделей, как раз ПТК - у них скорость печати кубика занимает 1-2 секунды.
Если модель печатает как графику - это уже 6-10 секунд.

(4) bgp, в общем, покрутить настройки можно "напрячь" цто, но если у вас не птк - все равно будет медленней, чем птк

Модель FPrint 11 ПТК, подключен по ip, средствами драйвера 8.10. Чтобы обработка заработала по ip добавил параметр Драйвер.MachineName = "ip:port"
через тест драйвера печатает QR код быстро и ярко, через тестовую обработку соответственно медленно и тускло.
Ставил параметр Драйвер.BaudRate = 18, вроде в логах это соответствует скорости 115200, но не помогает.
Завтра буду пробовать на модели Fprint 5200K.

(7) bgp, воу! По ip не подключал - втыкал напрямую.
Узнаете что-то - напишите.

Скорость надо менять не в самой обработке, а на фискальнике. В обработке мы по идее просто выбираем то, на какой устройство работает (читай - на какой скорости обнаружилось в тесте драйвера).
Из теста драйвера ккм надо лезть в свойства, полагаю.

Еще можно глянуть документацию на fprint11 - на сайте атола есть

(7) bgp, кстати, еще можно попробовать вчитаться в атоловские логи теста драйера и сравнить их с тем, что появится после попытки печатать из 1с.
В чем-то будет разница

обработка на модели 5200К не выводит QR совсем, хотя отрабатывает без ошибок.
через тест драйвера QR на данной модели печатается около 3 сек.

Печатает 5200К, в первой попытке неверно порт в параметрах указал. Скорость печати из обработки через подключение по ip совпадает со скоростью печати через драйвер, т.е. 3,5 сек. И картинка нормальная.
Что делать с fprint11 неясно..
Драйвер АТОЛ версии 8.10.

(10) bgp, можете попробовать задать вопрос в Атол.
делается через партнеров, поставляющих вам торговое оборудование. В принципе и через фирму-франчайзи 1с, но не каждую.
Еще можно на атоловском форуме зарегистрироваться и попробовать выяснить там. Это может быть просто "косяком" ip-версии драйвера, или есть какая-то тонкость.

Заработал у меня fprint11. В обработку обслуживания добавил Ваш код, с некоторыми изменениями, т.к. у меня обработка обслуживания ТО изначально работает с модулем AddIn.FPrnM8, то мне не нужно заново создавать объект драйвера, использую уже созданный.
В итоге QR код добавляется в текущий чек без проблем, и быстро выходит и ярко печатается.

А тестовая обработка по прежнему печатает QR тускло и медленно. Возможно все дело в команде
Объект.Драйвер.TestMode = Ложь;, но проверить пока нет возможности.

в тестовой обработке ошибка значение Драйвер.AddDevice(); не является значением объектного типа
в релизе 10.3.37.2 Результат.РезультатПечатиЧека = МенеджерРаботыСОборудованием() .ПечатьТекста(ИдентификаторУстройства, МассивСтрокСлипЧека, ШиринаСтроки); вместо ПОлучитьСерверТО

после доработки по вашей статье, ничего не происходит. то-есть qr не печатается релиз ут 10.3.37.2 фискальник fprint 22 ПТК.

(17) lexme, 1)Печатается ли из тестовой обработки?
2) Версия драйвера, и что полезного в атоловских логах есть?
--
если что, сейчас на 37.2 и торгуем, только FPrint-11ПТК, а не 12

тестовая не запускается, ошибка значение Драйвер.AddDevice(); не является значением объектного типа ,в логах ничего полезного, драйвер 8.10.2

(19) lexme,
Не стоит ли несколько версий драйвера, и нормально ли зарегистрировались все библиотеки? Что-то похожее у меня было, когда сначала работали на одной версии драйвера, потом обновили, но винда где-то хранила часть старых файлов dll И теста драйвера, удалял рукамм, ставил заново.
Часть библиотек атол копирует куда-то близко к 1с, в appdata что ли.

В общем, попробуйте перерегистровать руками и подложить 1с-ке, куда ей хочется.
Старые лучше начисто удалить.
--
Попробуйте выполнить тест драйвера из интерфейса пользователя(но не кассира) в ут - так мы заодно увидим параметры в логах, да и должны убедиться в работе нормальной драйвера(версию напишет?). Лучше это делать после перезагрузки, чтобы объект ккм был точно свободен (и рядом не должна быть "свернута" другая ут-шка с подключенным ккм, конечно).
--
Подключено по com / usb?
--

1)Еще я бы сделал следующее. Dll , в которос лежит addin нас интересующий - вскрыл (где-то на инфостарте была инструкция, как прицепить его к проекту vba (в лист эксель короче) и посмотреть содержимое) - не поменялось ли им объекта.
2)попробовать на другой машине развернуть файловую копию ут, может даже прошлого релиза, туда же прицепить фискальник и поставить, например, одну из предыдущих версий драйвера.

POSы новые, даже муха не сидела ещё, старые версии драйверов и не устанавливались собственно, библиотеки перерегистрировал, в обработке ТОСервер в конец модуля добавлять функцию? или не имеет значения куда?(20)

>> в обработке ТОСервер в конец модуля добавлять функцию?
(21) lexme, не должно играть роли.

Но, в общем, очень странная ситуация.
----
Можете попробовать почитать описание драйвераККМ от Атола, где-то у них на сайте валяется.
Там, в конце файла pdf, есть пример подключения к 1С. Может быть, в последних версиях драйвера что-то изменилось, и нужна какая-то дополнительная команда?
----
Еще, если Вы вдруг ставили драйвер _только_ккм_ - попробуйте установить весь комплект, не снимая галочки. Для 1с-ки драйвера регистрируются какой-то отдельной "галочкой", насколько я помню.

Кто-нибудь может поделиться готовым cf-ником от розницы 1,0,9,16, я замучался уже, ничего не выходит.

подскажите где может быть ошибка

(24) Проверьте из теста драйвера доступность ФР . Ошибки в логе не связаны с QR а просто отсутствие связи на ФР подключенном по ethernet.
Обработка рассчитана на обычные кассы, а не онлайн , у них другая компонента. Так же в примере подключение идет по com порту,а у вас ошибки подключения по сети .

(24) Эльчин Гасанов все правильно сказал.
От себя могу добавить следующее:
1)если поставите последние драйверы Атол - там есть примеры использования, так что можете посмотреть, чем отличается вызов компоненты драйвера, если работаем по tcp/ip
2)действительно ли вам необходимо такое подключение? Как правило, оно оправдано, если хотите печатать на этом фр чеки с разных касс. Ну или чтобы онлайн фр выводить по ethernet, конечно, хотя есть (существует) вариант по usb, через виртуальные ком-порты
3)вроде Атол хотели обновить обработки обслуживания под онлайн-кассы? Может, они там уже впаяли и печать QR?

я бы и сам поковырял, но руководство приняло решение разбить учет на фронт и бэк-офис, так что ут теперь только для бэка, а на фронте специализированное кассовое по, не 1с.

Читайте также: