1. Що таке inline-режим ПРРО
Inline-режим – це спосіб роботи ПРРО, при якому:
- чек одразу друкується на касі під час продажу/повернення;
- одночасно формується XML-документ ПРРО і записується в чергу на відправку (локальна/центральна БД);
- окремий механізм періодично відправляє ці документи на сервер ДПС;
- після успішної відправки всі вже надруковані чеки стають видимими в податковій (кабінет платника, реєстр чеків).
Для касира це виглядає як «онлайн чек»: пробив – одразу отримав друкований чек, навіть якщо інтернет/ДПС у цей момент працює нестабільно.

2. Принцип роботи inline-режиму
2.1. Пробиття чека
- Касир оформлює продаж (товари, знижки, оплата тощо).
- Програма формує фіскальний документ ПРРО (XML).
- Чеку присвоюється локальний номер (локальна послідовність документів для цього ПРРО) і службові поля (хеші, посилання на попередній документ тощо).
2.2. Друк
Чек одразу друкується на принтері. Для покупця все відбувається миттєво, без очікування відповіді від сервера ПРРО/ДПС.
2.3. Черга на відправку
Документ із усіма реквізитами записується в спеціальну таблицю/чергу inline. Для кожного документа зберігається:
- локальний номер;
- службові поля ПРРО (хеші, прив’язка до попереднього документа тощо);
- статус (ще не відправлено / успішно / помилка / видалено).
2.4. Відправка на сервер ДПС
Фоновий процес або команда в програмі:
- бере документи зі статусом «не відправлено»;
- надсилає їх на сервер ПРРО (ДПС);
- при успіху змінює статус на «відправлено» та зберігає службову інформацію відповіді;
- при помилці переводить документ у «помилка» із текстом причини.
Якщо є тимчасові проблеми зі зв’язком, документи залишаються в черзі й будуть відправлені пізніше.
2.5. Результат для податкової
Після успішної відправки надруковані раніше чеки з’являються у ДПС так само, як якби вони були пробиті «звичайним онлайн-способом».
3. Критично важливо: один ПРРО – один ПК
Це головне правило inline-режиму:
Один номер ПРРО, що працює в inline-режимі, можна використовувати тільки на ОДНОМУ комп’ютері.
Чому це важливо:
- для кожного ПРРО ведеться локальна нумерація та ланцюжок документів (попередній документ/хеші);
- в inline-режимі ці номери й хеші рахуються локально на конкретному ПК;
- якщо один і той самий ПРРО запустити на двох ПК:
- локальні номери генеруються незалежно;
- послідовність «ламається»;
- хеш «попереднього документа» перестає відповідати реальному попередньому чеку;
- при відправці в ДПС виникають відмови/помилки.
Наслідок: можна «зламати» послідовність, і ПРРО перестане нормально реєструвати документи, доки послідовність не буде відновлена.
Правило експлуатації:
- ✅ Один ПРРО – одна каса / один ПК.
- Якщо треба 2 каси – реєструємо в ДПС 2 різні ПРРО і налаштовуємо окремо.
4. Робота в локальному режимі (без зв’язку з мережею)
Inline-режим підтримує роботу при нестабільному зв’язку:
- чеки друкуються одразу;
- документи накопичуються в локальній inline-черзі;
- коли з’являється зв’язок, виконується відправка накопичених документів.
У локальній базі дані по чеках, локальних номерах та стану зміни зберігаються на цьому ПК. Додатково можуть використовуватись резервні файли/сніпшоти стану (для відновлення послідовності після збоїв).
5. Де в програмі керувати inline-режимом
У вікні «Програмне РРО» у режимі inline доступні лише дії, які не розвалять послідовність документів:
- Статус
- Відкрити зміну
- Z-звіт
- Закрити зміну
- Черга документів
- Відправити всі документи
- Помилки
- Провести помилкові чеки
- Видалити очікуючі документи
- Видалити помилкові документи
Інші кнопки в inline-режимі можуть бути автоматично вимкнені (це зроблено навмисно).

6. Робота з чергою: перегляд і відправка
6.1. Перегляд «Черга документів»
Кнопка: «Черга документів»
Показує документи зі статусом «очікують відправки». Це перше місце, куди дивляться, коли «щось не пішло».
6.2. Ручна відправка всієї черги
Кнопка: «Відправити всі документи»
- Використовується, коли не хочете чекати фонового процесу або потрібно терміново «догнати» накопичене.
- Якщо черга порожня, програма повідомить: «Немає чеків для відправки.»
- Під час масової відправки може показуватись вікно очікування: «Відправляю чеки з черги…»
- При успішному завершенні: «Усі чеки ПРРО успішно відправлено.»
7. Помилки: перегляд, перепроведення, видалення
7.1. Перегляд помилок відправки
Кнопка: «Помилки»
Працює по періоду: обираєте дату/час «з» та «по», після чого відображається список документів зі статусом помилка і текстом причини.
7.2. «Провести помилкові чеки» (повторна спроба проведення)
Кнопка: «Провести помилкові чеки»
Це аварійна функція, яка робить спробу відновити і перепровести чеки, що не пройшли через помилки (часто через зламану послідовність/хеш-ланцюжок).
Як це працює технічно (простими словами, але чесно):
- ви обираєте період помилок;
- програма показує помилки за цей період;
- потім, за підтвердженням, вона:
- перевиставляє помилкові чеки «на зараз» (оновлює дату/час документа);
- перераховує локальні номери, контрольні поля/хеші, ланцюжок «попередній документ»;
- формує нову правильну послідовність для повторної відправки.
Важливі обмеження (функція навмисно блокується, якщо умови не виконані):
- Не можна виконати, якщо у черзі є документи «на відправку». Повідомлення:
«Не можна провести помилкові чеки, поки черга INLINE містить документи на відправку.» - Зміна має бути відкрита, а Z-звіт відсутній. Повідомлення:
«Не можна провести помилкові чеки: зміна має бути відкрита, а Z-звіт відсутній.» - Має бути достатній запас часу для «розкладання» чеків у хвилинах (програма перевіряє, щоб не «втиснути» багато чеків у занадто короткий проміжок). Якщо ні:
«Недостатньо часу між першим чеком і поточним моментом для повторного проведення.»
Що буде зі службовими документами (відкриття/закриття зміни тощо), якщо вони потрапили у вибраний період помилок:
- службові документи не перепроводяться як чеки;
- вони переводяться у статус «видалено/виключено з обробки», щоб не ламати повторне проведення чеків.
Жорстке попередження (бо потім люди вдають, що «не знали»):
- при перепроведені зміняться фіскальні/службові атрибути, контрольні значення і ланцюжок. Тобто це не «повторити запит», це перескладання документів для прийняття ДПС.
7.3. «Видалити помилкові документи» (очистка помилок)
Кнопка: «Видалити помилкові документи»
- Обираєте період.
- Програма показує помилки за період.
- Далі питає підтвердження:
«Видалити чергу документів, що були не проведені через помилки? Кількість документів: N» - Після підтвердження переводить ці документи у статус «видалено».
Наслідок простий: ці документи не будуть відправлені в ДПС. Використовуйте тільки якщо ви розумієте, чому ви їх виключаєте.
7.4. «Видалити очікуючі документи» (видалення черги, що чекає відправки)
Кнопка: «Видалити очікуючі документи»
- Перед видаленням програма оновлює список черги, щоб ви бачили актуальний стан.
- Питає підтвердження:
«Видалити чергу документів, що очикують проведення? Кількість документів: N» - Після підтвердження переводить документи зі статусу «очікують» у «видалено».
Це крайній варіант. Фактично ви викидаєте документи, які ще не були зареєстровані в ДПС.
8. Чого робити не можна в inline-режимі
Щоб не «поламати» локальні номери й ланцюжок документів:
- ❌ не запускати один і той самий ПРРО на кількох ПК;
- ❌ не видаляти довільно записи з inline-черги «руками» в БД;
- для цього є кнопки «Видалити очікуючі…» та «Видалити помилкові…»
- ❌ не проводити відкриття/закриття зміни або Z-звіт на інших ПК/пристроях для цього ж ПРРО;
- ❌ не ігнорувати помилки: надрукований чек, який не дійшов до ДПС, це вже не «дрібниця».