Skip to content

Repository files navigation

SimplyAddinConnect

Нативна зовнішня компонента для 1С:Підприємство (Windows, C++17). Збирається в одну DLL (окремо x86 і x64), що реєструє кілька компонент, кожна доступна в 1С під власним іменем:

Ім'я в 1С Призначення
AddinUAPKIConnect ЕЦП/криптографія за українськими стандартами (ДСТУ 4145, ДСТУ 7564 «Купина») через UAPKI
ECRPrivatJSON драйвер платіжного термінала ПриватБанк (JSON поверх TCP/COM)
ECRPrivatBPO3004 той самий термінал через штатну підсистему 1С «Обладнання, що підключається», ревізія інтерфейсу 3004
ECRPrivatBPO4000 те саме, ревізія інтерфейсу 4000
LabelPrinter драйвер принтера етикеток (ZPL): растр, штрихкоди, XML-макети
SimplyAddinConnect демо/приклад реєстрації (також доступна як AddInNative, SimplyConnect)

Чому для одного термінала два БПО-фасади: ПолучитьРевизиюИнтерфейса() визначає, якою сигнатурою конфігурація кличе операції — на тій самій позиції там стоїть різне за змістом. Одне ім'я методу = одна арність, тож кожне сімейство сигнатур потребує власного фасаду. Деталі — docs/architecture/bpo-contract.md.

Компоненти стоять на спільному ядрі-мості до SDK 1С (src/core/AddInNative). Драйвери обладнання будуються на спільному фундаменті device-core (src/transport/) + платформі-каркасі (src/platform/); кожен драйвер додає лише свою протокол-специфіку.

Швидкий старт

git submodule update --init --recursive
powershell -ExecutionPolicy Bypass -File build_project.ps1 [-WithUAPKI] [-WithTests]

Результат — bin/Release/SimplyAddinConnectWin.zip (обидві DLL + manifest.xml), готовий до підключення в 1С як зовнішня нативна компонента. Вимоги: Visual Studio 2022 (C++ desktop), CMake ≥ 3.16.

Документація

Кому Де
1С-розробнику (користуюсь готовою компонентою) docs/integration-1c/ — методи компонент, приклади коду, тестування проти емуляторів
C++-розробнику (розвиваю компоненту) docs/architecture/ — архітектура по підсистемах (ядро, device-core, драйвери, UAPKI, збірка)
Coding-агенту AGENTS.md — збірка, конвенції коду, як додати компоненту, тести
Специфікації протоколів docs/ECR_Privat_JSON_Protokol.md; протокол UAPKI — extern/uapki/doc/UAPKI-PM-2.0.16.md

Ліцензія

Код цього репозиторію — MIT.

Два винятки, які під MIT не підпадають (детально — у THIRD-PARTY-NOTICES.md, розділ «Межі дії ліцензії»):

  • include/*.h — заголовки SDK зовнішніх компонент 1С:Підприємство. Власність фірми «1С», включені для складання; жодних прав на них не заявляється.
  • extern/* — сабмодулі зі своїми ліцензіями: spdlog (MIT), nlohmann/json (MIT), pugixml (MIT), UAPKI (BSD 2-Clause). Повні тексти — THIRD-PARTY-NOTICES.md.

UAPKI і spdlog лінкуються статично, тому THIRD-PARTY-NOTICES.md входить до архіву поставки разом із DLL — вимога зберігати текст ліцензії стосується бінарника, не лише репозиторію.

Тестові дані. tests/data/ містить опубліковані еталони ЦЗО (czo.gov.ua) і КНЕДП «Дія». Ключ tests/data/test-diia.p12 — офіційний тестовий ключ ДП «ДІЯ» (CN=ДП ДІЯ (Тестування)), прострочений 2024-04-05; його пароль навмисно публічний — testpassword. Продуктивних ключів у репозиторії немає й бути не може: локальний конфіг реальних КЕП (tests/data/local-keys.json) у .gitignore.

Репозиторій

github.com/VSydorenko/SimplyAddinConnect. Версія — VERSION.txt + version.h (перегенерується build_project.ps1 при кожній збірці; руками не редагується).

Відомий технічний борг — свідомо відкладене, з причиною й критерієм перевірки — у docs/tech-debt.md.

About

Native external component for 1C:Enterprise (Windows, C++17): Ukrainian digital signature via UAPKI (DSTU 4145/7564), PrivatBank payment terminal driver, ZPL label printer

Topics

Resources

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages