Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

shtrih-fiscal-python

Простой Python-модуль для работы с ККТ Штрих-М через драйвер AddIn.DrvFR (COM)

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

shtrih-python

Простой Python-модуль для работы с ККТ Штрих-М через драйвер AddIn.DrvFR (COM).

Позволяет печатать чеки, произвольный текст, QR-коды, а также управлять основными функциями ККТ из Python-скриптов.

Возможности

  • Печать чека с передачей ФИО кассира, системы налогообложения, списка товаров, ставок НДС, оплаты наличными/безналичными
  • Печать возвратного чека (is_return=True)
  • Печать произвольного текста
  • Печать QR-кода
  • Простая интеграция в любые Python-проекты

Требования

  • Windows
  • Установленный драйвер ККТ Штрих-М
  • Совпадение разрядности Python и драйвера (оба x86 или оба x64)
  • Python 3.7+
  • pywin32 (pip install pywin32)

Установка

  1. Установите драйвер ККТ Штрих-М с официального сайта производителя.
  2. Убедитесь, что разрядность Python и драйвера совпадает (оба x86 или оба x64).
  3. Установите pywin32:
    bash
    pip install pywin32
  4. Склонируйте этот репозиторий или скачайте файл shtrih_kkt.py в свой проект.

Пример использования

python
from shtrih_kkt import ShtrihKKT, ShtrihKKTError

if __name__ == "__main__":
    try:
        kkt = ShtrihKKT(com_port=1, baud_rate=5, password=30)
        kkt.print_text("Добро пожаловать!")
        kkt.print_qr("https://example.com")
        # Обычный чек
        kkt.print_check(
            cashier="Иванов Иван",
            tax_type=2,  # УСН доход
            items=[
                {"name": "Товар 1", "price": 10000, "qty": 2, "sum": 20000, "tax1": 1},
                {"name": "Товар 2", "price": 5000, "qty": 1, "sum": 5000, "tax1": 0},
            ]
        )
        # Возвратный чек
        kkt.print_check(
            cashier="Петров Петр",
            tax_type=2,
            items=[
                {"name": "Возврат товара", "price": 15000, "qty": 1, "sum": 15000, "tax1": 1},
            ],
            is_return=True
        )
    except ShtrihKKTError as e:
        print(f"Ошибка ККТ: {e}")
    except Exception as e:
        print(f"Другая ошибка: {e}")

Параметр is_return

  • В методе print_check есть параметр is_return (по умолчанию False).
  • Если is_return=True, будет напечатан чек возврата (CheckType=2).
  • Если is_return=False (или не указан), будет напечатан обычный чек продажи (CheckType=0).

Таблицы ставок НДС и систем налогообложения

Значение Tax1 Налоговая ставка
0 БЕЗ НДС
1 НДС 20%
2 НДС 10%
3 НДС 0%
4 БЕЗ НДС
5 НДС 20/120
6 НДС 10/110
7 НДС 5%
8 НДС 7%
9 НДС 5/105
10 НДС 7/107
Значение TaxType Описание системы налогообложения
1 Основная (ОСН)
2 УСН доход
4 УСН доход минус расход
8 ЕНВД
16 ЕСХН
32 Патент

Лицензия

MIT