Оновлення потрібно для стабільної роботи застосунку та дотримання вимог податкової до роботи з фіскальними чеками. В нових версіях, не рахуючи нового функціоналу та актуалізації його для дотримання вимог законодавства, виправляються можливі некоректності в роботі та покращується стабільність роботи застосунку за будь яких умов.
Максимально допускається робота з версіями не старше 3-4 місяців з дати релізу якщо відсутні нові вимоги законодавства (у разі навності таких оновлення потрібно виконувати якнайшвидше).
Старі версії поступово виключаються з підтримки, відповідно у разі якщо ви довготривалий час не виконували оновлення подальша робота без оновлення буде заблокована.
Всі зміни зроблені у кожній з версії описані у Списку змін
Керувати оновленням можна будь-яким із зазначених способів:
Найбільш гнучкий спосіб керування оновленнями що дає:
Більш детально як підключити застосунки до панелі адміністрування та виконувати оновлення через неї можна ознайомитись тут:
Автооновлення можна налаштувати через вебінтерфейс або API методом. Після встановлення налаштування, ДМ буде протягом 15хв від вказаного часу пробувати виконати оновлення. Якщо файли нової версії наявні на сервері та доступи відкриті ДМ буде успішно оновлено.
http://localhost:3939/dm/vchasno-kasa/settings.htmlhttp://localhost:3939/dm/vchasno-kasa/dashboard.html
з правого боку зверху.
Якщо перемикач було включено, але не вказано час автооновлення, автооновлення не буде виконано!
Автооновлення можна встановити через загальні налаштуваня додатку.
Для встановлення автооновлення в заданий час достатньо відправити POST запит з настпуними даними(приклад):
/dm/vchasno-kasa/api/v1/settings
| Тег | Тип json даних | Зміст | Обов'язковий |
|---|---|---|---|
| autoupdate | boolean | Статус автооновлення: true - увімкнено, false - вимкнено |
+ |
| autoupdatetime | string | Час запуску автооновлення в форматі HH:MM | + |
curl --location --request POST 'http://localhost:3940/dm/vchasno-kasa/api/v1/settings' \
--header 'Content-Type: application/json' \
--data-raw '{
"autoupdate": true,
"autoupdatetime": "20:50"
}'
| Тег | Тип json даних | Зміст |
|---|---|---|
| res | number | Код результату: 0 - ОК, > 0 - код помилки |
| errortxt | string | Текст помилки у разі неуспішного оновлення налаштувань. |
{
"res": 0,
"errortxt": ""
}
Якщо буде передано
"autoupdate": trueта порожнє значення дляautoupdatetimeавтооновлення не відбудеться. Час потрібно встановити обов'язково!
На OS Android автооновлення додатку відбудеться автоматично з Play Market якщо у маркеті увімкнено налаштування оновлювати додатки автоматично як тільки буде випущена нова версія додатку Device Mananger.
Вмикається в розділі "Налаштування/Налаштування мережі/Автоматичне оновлення додатків" або можна увімкнути даний функціонал лише для додатку Device Manager.
Для цього потрібно через пошу знайти додаток Device Manager, перейти на сторінку додатку, натиснути на значок у вигляді трьох крапок та ввімкнути пункт "Автооновлення", підтвердити увімкнення.
Для Android даний функціонал недоступний. Оновлення можна виконати через Play Market або з
apkфайлу
Можливо налаштувати перевірку оновлень програми по API та показувати касиру спливаюче вікно що потрібно оновити програму.
Як перевірити оновлення та виконати його:
curl --location --request GET 'http://localhost:3939/dm/vchasno-kasa/api/v1/svc_need_update'
У відповідь отримуєте ключ need_update, наприклад
{
"need_update": 2
}
Значення:
1 - є оновлення для застосунку, доступне для завантаження та встановлення
2 - оновлення немає.
3 - сервісне значення, повертається лише у випадку автоматичного оновлення(не з інсталятора) з версії 5.193 на вищу. Означає що не оновленна служба автооновлення, але додаток оновлено. Оновлення служби виконається автоматично при наступному запуску додатку або в 03:00(для серверів). Після цього метод буде повертати значення 2.
Якщо є оновлення можна відобразити касиру попап з кнопкою для запуску оновлення або відкласти оновлення на пізніше.
Для запуску оновлення використовуємо POST метод:
curl --location --request POST 'http://localhost:3939/dm/api/v1/app-update' \
--header 'Content-Type: text/plain' \
--data-raw '{}'
У відповідь буде повернуто:
Успішне завантаження файлів та старт оновлення.
{
"ver": 6,
"source": "",
"device": "",
"tag": "",
"type": 0,
"task": 0,
"dt": "20230213054949743",
"res": 0,
"res_action": 0,
"errortxt": "Файли оновлення завантажено. Оновлення буде виконано протягом хвилини.",
"aq_errortxt": "",
"warnings": []
}
Оновлень немає.
{
"ver": 6,
"resp_ver": 4,
"source": "",
"device": "",
"tag": "",
"task_status": 3,
"type": -1,
"task": -1,
"dt": "20260305171118059",
"res": 2006,
"res_action": 1,
"errortxt": "Наразі, використовується остання версія програми",
"aq_errortxt": "",
"warnings": []
}
Після успішної відповіді на метод, оновлення буде ще тривати до 1хв та по завершенню буде перезапущено застосунок для його застосування.
Даний спосіб аналогічний своїй роботі автооновленню лише запускається окремо.
Для оновлення через вебінтерфейс переходимо на сторінку списку пристроїв http://localhost:3939/dm/vchasno-kasa/dashboard.html
Якщо поточна версія не є актуальною буде вказано "доступна нова версія".
Натискаємо на кнопку "Перейти до оновлення".

Буде відкрито спливаюче вікно де вказано інформацію перед запуском автооновлення.

Можна переглянути які зміни були в новій версії натиснувши "Переглянути список змін"
Для запуску оновлення натискаємо Оновити версію
Після натиснення потрібно дочекатись завантаження файлів оновлення. Залежно від швидкості інтернету це займе від 5 до 30 секунд.
Якщо файли оновлення було завантажено успішно буде відображено наступний текст:

Після вище проведених дій потрібно зачекати приблизно від 15 секунд до 1 хвилини, залежно від пристрою для того щоб служба оновлення завершила роботу та виконала перезапуск ДМ.
Для перевірки що версію оновлено успішно достатньо лише оновити сторінку.

Оновлення завершено.
Оновлення з інсталяційного файлу виконується стандартно, оберіть нижче потрібну платформу для перегляду детальнішої інформації.
Оновлення рекомендовано виконувати коли не проводяться чеки по касам та зміни по всім ПРРО в додатку закриті.
Категорично забороняється виконувати оновлення під час фіскалізації чеків в online чи offline режимі. Це може призвести до поломки бази даних або некоректності даних.
msiexec /a {шлях до файлу встановлення}На linux у випадку використання старої версії бажано видалити додаток та встановити повторно. Конфігураційний файл та база даних при цьому не видаляться, відповідно всі ваші дані по касам, чекам та налаштуванням будуть збережені.
Якщо оновлення буде відбуватись через термінал, його потрібно відкрити на повний екран, інакше із за проблеми в роботі dpkg додаток не інсталюється повністю що призведе до подальшої некоректності в роботі.
dpkgsudo dpkg -r edmsudo dpkg -i {шлях до файлу}Selecting previously unselected package edm.
(Reading database ... 206540 files and directories currently installed.)
Preparing to unpack DeviceManager_5.184.0.0_x64.deb ...
Installing EVO Device Manager...
EDM service config file was not found
EDMUpd service config file was not found
Unpacking edm (5.184.0.0) ...
Setting up edm (5.184.0.0) ...
Add EDMservice...
Created symlink /etc/systemd/system/multi-user.target.wants/edm.service → /etc/systemd/system/edm.service.
● edm.service - EDM service
Loaded: loaded (/etc/systemd/system/edm.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-02-13 10:37:40 -03; 12ms ago
Main PID: 32047 (EDMSrv)
Tasks: 1 (limit: 4584)
Memory: 1.0M
CPU: 6ms
CGroup: /system.slice/edm.service
└─32047 /usr/share/edm/EDMSrv
Feb 13 10:37:40 ubuntu systemd[1]: Started EDM service.
Created symlink /etc/systemd/system/multi-user.target.wants/edmupd.service → /etc/systemd/system/edmupd.service.
● edmupd.service - EDM service updater
Loaded: loaded (/etc/systemd/system/edmupd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-02-13 10:37:40 -03; 16ms ago
Main PID: 32084 (EDMUpd)
Tasks: 1 (limit: 4584)
Memory: 1.1M
CPU: 10ms
CGroup: /system.slice/edmupd.service
└─32084 /usr/share/edm/EDMUpd
Feb 13 10:37:40 ubuntu systemd[1]: Started EDM service updater.
Feb 13 10:37:40 ubuntu EDMUpd[32084]: EDMUpdater Service STARTED...
Якщо після встановлення при перевірці статусу служби у вас виникають помилки які описані нижче їх можна проігнорувати, так як на роботу ДМ вони не впливають.
Нова версія бібліотеки підписання після старту ДМ шукає в системі .so файли для роботи з захищеними ключами на usb накопичувачах, так як їх немає помилка потрапляє в лог.
ДМ такі ключі не використовує, тому це ніяк і не впливає на роботу.
Mar 16 04:08:53 ubuntu OSIntermediate[3917]: dlopen failed to load libusb-0.1.so.4: libusb-0.1.so.4: cannot open shared object file: No such file or directory
Mar 16 04:08:53 ubuntu OSIntermediate[3917]: dlopen failed to load libusb.so: libusb.so: cannot open shared object file: No such file or directory
Щоб помилка зникла достатньо поставити libusb
sudo apt-get install libusb-0.1-4
Для оновлення на OS Android потрібно перейти в Play Market на сторінку додатку.
Та натиснути "Оновити" та дочекатись встановлення нової версії.
Після встановлення натискаєте "Відкрити" та можете продовжувати видавати чеки.
Якщо на пристрої немає play market потрібно завантажити APK файл на сторінці завантаження
Після чого запустити APK файл, підтвердити оновлення та дочекатись завершення.
Оновлення з APK файлу поверх старої версії може не відбутись. В такому випадку потрібно видалити попередню версію і встановити нову окремо.