ContractorPlus — наша безкоштовна заміна Пактум.Контрагент для BAS
Безкоштовно для клієнтів на обслуговуванні в ІТ-Формат.
Прямого посилання на завантаження немає. Зверніться до нас — встановимо розширення віддалено за 5 хвилин. Параметри підключення вже зашиті в розширення, ви нічого не налаштовуєте.
Це свідоме обмеження: сервер один на всіх клієнтів і поки що без публічної авторизації, тому розповсюдження .cfe-розширення ми контролюємо.
Кому це підходить
- Ви на обслуговуванні в ІТ-Формат.
- Ваша конфігурація — BAS на керованих формах із вбудованою підсистемою Пактум.Контрагент. Перевірена цільова — BAS Бухгалтерія Корп; інші конфігурації з тим самим Пактумом (наприклад, BAS SmallBusiness/УНФ) теоретично сумісні з нашим сервером, але .cfe-розширення поки збираємо тільки під Бухгалтерію Корп.
- Ви не використовуєте платну підписку Пактум.Контрагент і не плануєте — наше розширення замінює платний канал, паралельне використання сенсу не має: запит або йде на pactumsys.com, або на наш сервер, залежно від того, який модуль активний.
- З сервера 1С є доступ до інтернету — запити йдуть на наш сервер у офісі ІТ-Формат через звичайний HTTP/HTTPS.
- Ви розумієте обмеження публічних реєстрів — адресу, телефон і email у картці доведеться вводити вручну (див. розділ «Що НЕ заповнюється і чому»).
Проблема: за що, власне, гроші
Дані Пактум.Контрагенту бере з державних відкритих реєстрів — Єдиного держреєстру юросіб (data.gov.ua), реєстру платників ПДВ і єдиного податку (cabinet.tax.gov.ua). Ці реєстри безкоштовні, доступні без авторизації — їх можна завантажувати дампами і парсити.
Платним у класичному Пактумі є агрегатор: чужий сервер, який тягне ці реєстри до себе, і дає до них зручний JSON-API, прив'язаний до вашого PIN-коду й депозиту запитів. За інфраструктуру і зручність — справедлива плата. Ми зробили свій агрегатор для своїх клієнтів і його обслуговуємо — тому для них це частина сервісу, без окремої підписки.
Що ми побудували
REST-сервіс із локальною копією державних реєстрів — на нашому сервері в офісі ІТ-Формат — плюс тонке розширення для 1С на стороні клієнта.
Ключові частини:
- Сервер на нашій стороні — Python 3.11 + FastAPI як служба Windows (через NSSM). Слухає порт, доступний з мережі клієнта, віддає JSON у форматі, з яким уже вміє працювати клієнтська сторона Пактуму.
- База даних у нас — MS SQL Server 2019+ з таблицями ЄДР, ПДВ, ЄП, КАТОТТГ, КВЕД та журналом ETL. Це наша інфраструктура, ви до неї відношення не маєте.
- ETL у тому ж процесі — APScheduler за cron-розкладом завантажує свіжі дампи з державних джерел, розпаковує і кладе в БД. Ваш робочий день це не зачіпає.
- Розширення .cfe на стороні клієнта — мінімум коду в 1С: адаптери функцій підсистеми Пактум через директиву
&Замість. Адреса нашого сервера зашита в розширення, ніяких окремих форм налаштувань ми не додаємо. Уся UI/UX (кнопка «Заповнити по ЄДРПОУ», журнал, стандартна форма налаштувань Пактуму) — лишається оригінальною.
Drop-in замість платного API — ключове рішення
Ми принципово не пишемо власну підсистему з власною кнопкою «Заповнити з реєстрів», власним журналом і своєю формою порівняння. Уся ця інфраструктура вже існує у Пактумі, вона зручна, користувачі її знають. Сенс було б плодити паралельну реалізацію.
Замість того наше розширення — це адаптація вже існуючої підсистеми. Технічно це розширення конфігурації типу «Адаптация» з директивами &Замість на функції модулів Пактум_Сервер, Пактум_ФоновыеЗадания і Пактум_Клиент. Усе, що ці функції роблять — лишається. Змінюється одна річ: HTTP-запит іде не на pactumsys.com, а на наш сервер. Решта парсингу JSON, заповнення реквізитів контрагента, регістри статусу — як було, без жодних змін.
Завдяки цьому користувачам не треба нічому переучуватись, а нам не треба підтримувати свою UI-частину в 1С — її роль виконує оригінальний Пактум.
Як це виглядає в 1С
Зовні — нічого нового. На формі контрагента — та сама стандартна кнопка Пактуму:
Жодних окремих форм налаштувань ми не додаємо — взаємодія йде через стандартну форму налаштувань Пактуму, яка вже є у вашій конфігурації. Після встановлення розширення один раз треба зробити три кліки:
- Відкрити стандартну форму налаштувань Пактуму в 1С.
- Ввести в поле «PIN-код» будь-яке значення (наприклад,
1234) — наш сервер його не перевіряє. - Натиснути «Перевірити з'єднання» — наш сервер відповість успіхом, у формі з'явиться повідомлення про активну підписку з «нескінченним» депозитом до 01.01.2099.

Після цього користувачі працюють як завжди:
- Користувач вводить ЄДРПОУ.
- Натискає кнопку «Заповнити по ЄДРПОУ».
- За < 1 секунди реквізити заповнюються.
Що саме заповнюється в картці контрагента
За одне натискання кнопки «Заповнити по ЄДРПОУ» наш сервер віддає 1С набір реквізитів, з яким уже вміє працювати клієнтська сторона Пактуму:
| Поле картки | Звідки беремо |
|---|---|
| Найменування (коротке) | ЄДР |
| Повне найменування | ЄДР |
| ЄДРПОУ (для юросіб) / ІПН (для ФОП) | ваш запит, ми перевіряємо контрольну суму |
| Тип контрагента — юрособа / ФОП | визначаємо за довжиною коду (8 цифр / 10 цифр) |
| Керівник — прізвище, ім'я, по батькові окремими полями (для юросіб) | ЄДР |
| Дата державної реєстрації | ЄДР |
| Платник ПДВ — статус, ІПН платника ПДВ (12 цифр), дата реєстрації, дата анулювання | реєстр ПДВ ДПС |
| Платник єдиного податку — статус, група (1, 2, 3, 4), ставка (3% з ПДВ / 5% без), дата початку, дата завершення | реєстр єдиного податку ДПС |
| Система оподаткування — «Податок на прибуток», «Єдиний податок» або «Неплатник» | обчислюємо за двома реєстрами вище |
Дати — у форматі ДД.ММ.РРРР. Назви, керівника й податкові реквізити Пактум-клієнт сам розкладе у відповідні реквізити довідника Контрагенти.
Що НЕ заповнюється і чому
Розкладемо на дві категорії: чого немає в публічних джерелах і що ми свідомо не реалізуємо.
Після початку повномасштабного вторгнення Кабінет Міністрів обмежив публічний доступ до низки державних реєстрів (постанова КМУ №263 від 12.03.2022 та наступні). У поточному стані відкритого експорту ЄДР відсутні саме ті поля, які платний Пактум брав:
- Юридична адреса — у відкритому експорті ЄДР наразі недоступна. Заповнення цього поля в картці пропускаємо — вводьте вручну.
- Телефон — у відкритих реєстрах ніколи систематично не публікувався. Платний Пактум добирає його з комерційних B2B-каталогів — ми такі джерела не використовуємо.
- Email — те саме, що й телефон.
Якщо/коли публічний доступ до адресної частини ЄДР відновлять у попередньому обсязі — підключимо одним оновленням сервера, без змін у вашій 1С. Інфраструктура (довідник КАТОТТГ, парсер адреси) у нас уже готова — лишається тільки джерело.
Платний Пактум додатково перевіряв санкційні списки РНБО, історію закупівель Prozorro і реєстр неприбуткових. Ми ці перевірки не реалізуємо: для типового бухгалтерського обліку вони не використовуються, а для поглибленої перевірки контрагентів перед укладенням великих договорів є окремі спеціалізовані сервіси.
Звідки беруться дані
Усі джерела — офіційні відкриті реєстри. Завантаження — за нічним розкладом, без впливу на роботу користувачів удень.
| Реєстр | Джерело | Розклад |
|---|---|---|
| ЄДР юросіб і ФОП (без адреси) | data.gov.ua | щодня 02:00 |
| Реєстр платників ПДВ | cabinet.tax.gov.ua | щодня 03:00 |
| Реєстр єдиного податку | cabinet.tax.gov.ua | щодня 03:30 |
| КАТОТТГ (резерв на майбутнє) | data.gov.ua | 1 січня |
| КВЕД | data.gov.ua | 1 січня |
Стек коротко
Без екзотики — все, що звично працює на Windows-сервері з MS SQL:
- Python 3.11+ · FastAPI · Uvicorn · SQLAlchemy 2.x · pyodbc · Alembic · lxml · APScheduler · structlog
- MS SQL Server 2019+ · NSSM (служба Windows) · Windows Server 2019/2022
- Без Docker, Redis, .NET, зовнішніх API-провайдерів
Чому це не публічне завантаження
Поточна реалізація сервера — без публічної авторизації: ми поки не перевіряємо, хто його викликає. Це нормально, поки розширення стоїть лише у клієнтів, з якими ми працюємо особисто, і список IP контролюємо самі. Але якщо .cfe-розширення з зашитою адресою сервера потрапить до сторонніх — будь-хто зможе через нього збирати дані з ЄДР, навантажуючи нашу інфраструктуру.
Друга стадія розробки передбачає JWT-авторизацію через it-format.com.ua з whitelist клієнтів. До того моменту політика «без прямого посилання на завантаження» — не маркетинговий прийом, а технічно обґрунтоване обмеження.
Поточний стан розробки
Чесний статус, без маркетингу:
- ✅ Архітектура і повний JSON-контракт API (1:1 з Пактумом) — зафіксовано
- ✅ Скелет сервера: FastAPI, конфіг, БД-моделі, Alembic-міграції, кеш, валідатори, парсер адреси, scheduler, auth-stub — є
- ✅ ETL-модулі для всіх 5 джерел (ЄДР, ПДВ, ЄП, КАТОТТГ, КВЕД) — закодовано
- ✅ Pactum-сумісний mapper (SQL → JSON у форматі Пактуму) — закодовано
- ✅ REST-ендпоінти з нестандартним
;-роздільником query — закодовано - 🚧 Розширення .cfe для BAS Бухгалтерія Корп — у збірці
- 🚧 End-to-end тести з реальною заповненою БД — попереду
- 📋 Stage 2 — JWT-авторизація і централізоване керування підключеннями через it-format.com.ua — у плані
Перший пілот плануємо на одного з наших клієнтів, який уже зараз платить за Пактум — після нього зафіксуємо реальні цифри (час відповіді, повнота даних, edge-cases ЄДР) і відкриємо запис на встановлення для інших.
Як отримати
Зверніться до нас — встановимо розширення віддалено за 5 хвилин. Параметри підключення вже зашиті в розширення, ви нічого не налаштовуєте.
Канали зв'язку:
- Контактна форма: it-format.com.ua — Контакти
- Email: admin@it-format.com.ua
- Телефон: (068) 143-10-10
- Або просто напишіть вашому менеджеру ІТ-Формат.
