Нативна зовнішня компонента для 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.