Робота з принтером чеків posiflex pp 6000, 7000, 8000

Свого часу я зіткнувся з необхідністю використовувати дані моделі принтерів для друку.

Розглянемо для початку шляху які у нас є для роботи з цим обладнанням.

Якщо у вас типова конфігурація наприклад "1С Управління Торгівлею 10.3" йдемо в розділ "Сервіс -> Торговельне обладнання -> Підключення та настройка"
І бачимо що розділом "Принтер чеків" там і не пахне.

Робота з принтером чеків posiflex pp 6000, 7000, 8000

Очевидно що 1С передбачає роботу з принтерами чеків як зі звичайними принтерами та спеціальних обробок не потрібно.

Спосіб 1. Встановити Windows драйвер

- знайти і встановити Windows драйвер (в результаті на принтері можна буде друкувати з будь-якої програми будь то Word, Paint, Notepad або 1С)
- налаштувати макети, друковані форми, щоб влазило на стрічку.

плюси:
- друк картинок без проблем (не потрібно замислюватися як це зробити, сюди ж штрих коди)
- працює з будь-1С 7.7, 8.1, 8.2, 8.3 і т.д.
- легкий в установці і впровадженні

мінуси:
- Гальмує віндовскій драйвер, друк йде повільно (якщо не брешу завжди в графічному режимі)
- обмежені можливості принтера (не вийде видавати звуки, фігурно нарізати стрічку. там насправді дуже багатий API у принтера)

установка:
1) Якщо принтер підключений через USB емулятор COM порту, встановимо спочатку драйвер порту.
Для більшості "шнурків" (кабель USB-> COM) що мені траплялися підходив наступний драйвер "Prolific Driver PL2303", підтримує всі Windows системи (32 і 64 bit)

USB 1.1 / 2.0 / 3.0 Host Controller
- Device using PL-2303H / HX / X version chips
- Device using Prolific next-gen version chips (Codename EA / TA / TB)

Викладаю файл для скачки: Posiflex_Windows_Drivers.rar

Спосіб 2. Встановити рідні драйвера POSIFLEX

Колись мені вдалося завантажити на офіційному сайті рідні драйвера. Не буду викладати дистрибутив, викладу готові dll.

Рідні дрова:
OPOSPOSPrinter.ocx - Файл драйвера необхідно зареєструвати
flex.dll - Файл драйвера необхідно зареєструвати
demo.exe - утиліта для перевірки драйвера, яка йде в комплекті з драйверами POSIFLEX

Для звернення з 1С потрібно написати ще зовнішню компоненту, яка буде звертатися до цього драйверу і передавати йому ваші команди.

Свого часу я накидав на Delphi:
PP7000.dll - Зовнішня компонента для 1С, необхідно регестріровать Назва об'єкту: "Addin.PP7000"
PPDemo.exe - Утиліта що викликає вікно настройки PP7000.DLL. Програма подібно 1С звертається до зовнішньої компоненті PP7000.DLL. При запуску викликає функццію ShowProperties в якій можна встановити необхідні параметри обладнання і протестувати роботу пристрою.
PP7000.ert - Обробка для роботи із зовнішньою компонентою PP7000. Підключає принтер чеків, як фіскальний реєстратор. (1С 7.7.)

плюси:
- працює все швидко
- використовується рідний драйвер
- Відстежує статус повернення принтера (тобто функції повертають відповідь, може бути помилка яка трапилася)

мінуси:
- потрібно реєструвати дві рідних бібліотеки і ще одну зовнішню компоненту PP7000.dll
- Необхідно налаштовувати COM порт за допомогою рідних утиліт або PPDemo.exe або ручками в реєстрі
- Принтеру присвоюється ім'я наприклад "PP Demo" і в реєстрі прописується який COM-порт і baud rate використовується для нього. Так працює рідний драйвер, ви повідомляєте йому ім'я, а він з реєстру зчитує вже параметри відповідні параметри порту і швидкості. Користувачам потрібні права доступу до реєстру.

Викладу відразу все в одному архіві: рідні дрова, компонента 1С, мої вихідні на delphi = "Способ2.rar"

Спосіб 3. Звертатися до принтера через порт (ESC - послідовності)

Останній спосіб який мені найбільше подобається поєднує простоту установки і відмінну швидкість роботи не жертвуючи функціоналом. Будемо звертатися безпосередньо до порту, посилати спеціальні команди для вибору шрифту, відрізки чека, друкування тексту і.т.п.

Знайшов пару документів описують команди:
- PP6000 / PP7000 / PP7000-II Деталізація команд (Cjmmand1.doc)
- Technical Documentation Printer Control Codes for SAMSUNG SRP-270 in Epson Emulation mode compared with Posiflex PP-5600 (Printer Control Codes for SAMSUNG SRP-270 and PP5600.pdf)

Наскільки мені відомо 1С 8.х не вміє напряму працювати з RS-232 портом, тому пошукаємо будь-яку бібліотеку / компоненту для роботи з портом.

Я вибрав MSCOMM32.OCX:
- MSCOMM32.OCX - сама бібліотека
- MSCOMM32_License.reg - файл ліцензії (взагалі-то бібліотека платна начебто)
- regmscomm32.bat - зробив батнічек для реєстрації
- readme.txt - про всяк випадок якщо ви забули що робити :)

Викладу одному архіві: "MSCOMM32.rar"
Ще викладаю розширену документацію, там є ESC-коди і багато іншого. "Документация.rar"

Ну і найголовніше код, викладаю тут, щоб нічого не потрібно було викачувати, якщо є зайві $ качайте все підряд :-)