Device Manager(далі ДМ) зберігає всі дані по чекам, підключеним ПРРО, POS пристроям, та звіти за допомогою бази даних sqlite, всі компоненти та сама база даних створюється з встановленням додатку.
Звертаємо увагу що з початку 2025 року підтримка БД SQLite буде зупинена у зв'язку з низькою стабільністю роботи даної БД.
Стандартна база даних застосунку буде postgresql. MS SQL також буде працювати як альтенативний варіант. Швидкий та зручний варіант переходу з SQLite для уже працюючих кас в процесі розробки.
В ДМ додатково підтримується робота наступних субд:
Ключова різниця полягає в тому що sqlite це файлова база даних, відповідно при пошкодженні файлу, невідповідності вимог файлової системи ОС до вимог роботи з файлами sqlite, або при великому навантаженні на читання/запис файлів(тобто фіскалізація великої кількості чеків за одиницю часу та/або робота на кількох ПРРО одразу) можуть виникати різного роду некоректності в роботі.
Переваги зміни бази даних:
Недоліки зміни бази даних:
Мінімальна підтримувана версія postgres 9.5.xx. Всі версії нижче за 9.5 не підтримуються і будуть викликати помилки в роботі.
Перед початком переходу на Postgres потрібно створити нову "чисту" бд на сервері та встановити налаштування.
Таблиці в БД створювати не потрібно, потрібно створити лише саму БД, та користувача для цієї БД під яким ніхто не буде логінитись на сервері.
Найпростіше дані дії буде виконати через psql
psql
на пристрої.linux
це можна зробити командоюsudo -u postgres psql
На windows
Запустити psql.exe
з правами адміністратора.
CREATE ROLE dmadmin WITH LOGIN SUPERUSER PASSWORD 'pass';
Замість логіну dmadmin
та паролю pass
можна вказати дані на власний вибір.
CREATE DATABASE edm WITH OWNER = dmadmin ENCODING = 'UTF8' TABLESPACE = pg_default CONNECTION LIMIT = -1;
Аналогічно замість назви edm
та логіну власника БД dmadmin
можна вказати власні дані.
Увага! Наступна інформація важлива для ознайомлення якщо у вас використовується нестандартна версія Postgresql або версія із зміненими налаштуваннями за замовчуванням, наприклад версія Postgresql для 1С.
Для цього потрібно перевірити наступні налаштування:
SHOW standard_conforming_strings;
SHOW escape_string_warning;
Якщо обидва налаштування on
- далі можна перейти до наступного пункту налаштування.
Якщо обидва налаштування або хоча б одне із них для бази даних до якої буде підключатись ДМ - off
потрібно їх увімкнути перш ніж підлючати БД до ДМ.
для цього можна виконати:
ALTER DATABASE database_name SET standard_conforming_strings = 'on';
ALTER DATABASE database_name SET escape_string_warning = 'on';
в database_name
вказати назву бази даних до якої підключається ДМ.
Після зміни налаштувань рекомендовано перезавантажити Postgresql сервер.
Після вищепроведених дій можна підключати базу даних в ДМ.
Мінімально підтримувана версія MS SQL Server 2012. Всі версії нижче за MS SQL Server 2012 не підтримуються і будуть викликати помилки в роботі.
Важливо встановити всі налаштування описані нижче для коректної роботи та успішного запуску.
Перед початком переходу на MS SQL потрібно створити нову "чисту" бд на сервері та встановити налаштування.
Таблиці в БД створювати не потрібно, потрібно створити лише саму БД, та користувача для цієї БД під яким ніхто не буде логінитись на сервері.
Приклад налаштування за допомогою T-SQL. Можна виконати дані команди через sqlcmd
або через SQL Server Management Studio (SSMS).
В прикладі назва БД edm
, користувач dmadmin
.
sqlcmd
або SSMS.CREATE DATABASE [edm]
CREATE LOGIN dmadmin WITH PASSWORD = '11111';
CREATE USER dmadmin FOR LOGIN dmadmin;
GO
use edm
grant TAKE OWNERSHIP to dmadmin
grant CONTROL to dmadmin
GO
У випадку якщо дані налаштування не було встановлено можуть виникнути проблеми при запуску додатку або в роботі!
ALTER DATABASE edm
SET READ_COMMITTED_SNAPSHOT ON
GO
ALTER DATABASE edm
SET ALLOW_SNAPSHOT_ISOLATION ON
GO
ALTER DATABASE edm
COLLATE Cyrillic_General_CI_AS ;
GO
Важливо!
Для того щоб не було помилки входу на сервер під даними користувача на сервері має бути увімкнена можливість авторизації за допомогою SQL Server. Також має бути дозволено з'єднання по TCP.
Як увімкнути режим авторизації SQL Server покроково описано в інструкції
Увімкнути з'єднання по TCP можна через SQL Server Configuration Manager
Перенесення кас на нову базу даних рекомендуємо проводити, коли з касами ніхто не працює і всі зміни закриті.
Після створення БД на сервері переходимо до підключення бази даних.
Потрібно перейти до пункту "Налаштування" з головної сторінки зі списком ПРРО
У розділі "Налаштування бази даних" потрібно заповнити поля:
Оберіть тип БД
- Зі списку оберіть Postgresql
або MSSQL
.IP серверу де знаходиться БД або localhost
- IP серверу де знаходиться БД. localhost
якщо сервер на цьому ж пристрої де застосунок, або вказати IP адресу або назву серверу, тпу DESKTOP-SR8LFKK\USER).Порт серверу БД
- порт на якому працює сервер бази даних. Стандартний порт для MSSQL: 1433
, для Postgresql: 5432
)Назва БД
- назва бази даних яка була створена.Логін користувача для підключення до БД
- ім'я користувача створеного для ДМ.Пароль користувача для підключення до БД
- пароль користувача логін якого було ведено пунктом вище.Після заповнення всіх даних натискаєте "Підтвердити зміну налаштувань БД"
Приклад заповнення:
Якщо всі дані було введено коректно ви побачите наступне сповіщення внизу екрану
Якщо всі чи частину даних буде введено некоректно - в цьому ж вікні ви побачите помилку. В такому разі перевірте коректність введеня даних.
На цій же сторінці ви побачите всі дані поточного підключення до БД що сигналізує що зміну БД завершено. Можна перейти до перенесення даних
Додатково можна перенести всі дані по касам, чекам, створені принтера та термінали з SQLite бази яка у вас була до зміни.
Для цього у цей же вкладці "Налаштування" з головної сторінки зі списком ПРРО потрібно натиснути на "Перенесення даних до поточної БД з SQLite".
Після натиснення на кнопку - вам буде відкрито вікно де потрібно вазати параметри перенесення:
Шлях до файлу БД (можна залишити порожнім)
- Якщо у ви переносите дані з бд яка була на цьому ж пристрої - даний пункт залиште порожнім. Якщо це база даних з іншого пристрою - потрібно вказати повний шлях до файлу, наприклад: C:\ProgramData\VCHASNO\DeviceManager\main.s3db
або /usr/share/edm/main.s3db
якщо ДМ працює на Linux.Які дані потрібно перенести
- з випадаючого списку оберіть "Всі дані" або "Перенести лише створені ПРРО (без чеків), принтера та термінали". Звертаємо вашу увагу при виборі перенесення всіх даних залежно від кількості чеків час перенесення може зайняти навіть до 10 - 30хв при великій кількості чеків (30-50+ тисяч).Очистити всі дані в поточній БД перед початком перенесення
- якщо в поточній БД було створено якісь пристрої або ПРРО які були у вас раніше - рекомендуємо підтвердити видалення. у інших випадках - можна залишити порожнім.Далі натискаєте "Почати перенесення"
Під час перенесення даних ДМ повністю блокує виконання будь яких запитів поки її не буде завершено до кінця або зупинено.
Прогрес перенесення та статус відображається у новому вікні
В разі якщо міграцію було перервано, її можна запустити повторно, перенесені дані при цьому не будуть задубльовані.
Перенесення даних завершено можна працювати з касами.
При необхідності підключити хмарні БД рішення може виникнути проблема що в користувача що підключається до БД є права на запис в БД, але немає su прав і відповідно виникає проблема при роботі ДМ з такою базою.
Для обходу цього обмеження потрібно в конфігураційний файл EDMSrv.ini який знаходиться в папці з де встановлено застосунок (на linux знаходиться в директорії /usr/share/edm
) в розділ [Database]
додати 2 параметри:
DBVerInINI=1
DBVer=0
Після цього права суперадміна не будуть потрібні, головне щоб в користувача були права на запис та читання до вибраної бази даних.
В разі якщо по описаній вище інформації не вдалось змінити базу даних - ремоендуємо звернутись до техпідтримки або спробувати альтернативний спосіб - через конфігураційний файл
Для переналаштування ДМ на postgres або MS SQL потрібно.
EDMSrv
(windows) або edm
(linux).Database
[Database]
MaxConnections=0 (не обов'язковий параметр, за замовчуванням якщо його немає - значення буде 0. Відповідає за кількість одночасних активних підключень ДМ до бази даних. Якщо вказано >0 кількість з'єднань буде обмежено до цього значення. Якщо в БД виставлено обмеження на кількість одночасних підключень до БД і ДМ займе їх всі ніхто більше не зможе підключитись до БД.)
Type= тип БД (postgres або MSSQL)
Server= назва серверу (наприклад: localhost якщо сервер на цьому ж пристрої, або DESKTOP-SR8LFKK\USER або ip).
Port= порт серверу бази даних (наприклад: 5432)
DBName= назва бази даних яка була створена.
Login= ім'я користувача створеного для ДМ.
Pass= пароль користувача
ServiceName= назва сервісу бази даних в системі для очікування додатком повного запуску бази даних перед підключенням. Не обов'язково.
IgnoreConnError=1 (або 0). Параметр який вмикає(1, за замовчуванням якщо не визначено) або вимикає(0) ігнорування помилок при підключенні до бази даних. Якщо увімкнено - в такому разі ДМ при помилці підключення до БД запуститься, і буде 1 раз в 30 секунд робити повторні спроби підключитись до БД. Якщо 0 ДМ не запуститься у разі помилки підключення до бази даних. Рекомендовано залишили не заповненим або всатновити 1.
Приклад для Postgres:
Приклад для MS SQL:
Щоб відредагувати даний файл, текстовий редактор має бути запущений з правами адміністратора.
Якщо при відкритті буде помилка зі статусом -12, це нормально при створенні каси яка працювала раніше. Просто повторно натискаєте кнопку «Відкрити зміну» і додаток самостійно виправить помилку
Зміну БД завершено. Можна працювати з ПРРО