Перейти до змісту

Запуск програм

Під час запуску Склад, Каса і Сервіс мають з'ясувати три речі: до якої бази підключатися, під яким профілем робочого місця працювати і скільки подробиць писати в журнал. Відповіді беруться з трьох джерел - файлу settings.yaml, змінних середовища і параметрів командного рядка.

Налаштування Командний рядок Змінна середовища settings.yaml Типово
Сервер бази dbserver= - database.servers localhost
Аліас бази dbname= - database.name abacus
Користувач бази - ABACUS_DBUSER database.username sysdba
Пароль бази - ABACUS_DBPASS database.password masterkey
Профіль profile= ABACUS_PROFILE profile default
Рівень журналу loglevel= - log.level 3

Джерела перелічені в порядку спадання переваги: параметр командного рядка перекриває змінну середовища, змінна перекриває файл.

Файл settings.yaml

Файл лежить поруч з виконуваним файлом програми і створюється інсталятором з відповідей, які ви дали під час встановлення. Це єдиний файл конфігурації, який програми читають з диска: усе інше - меню, гріди, права, обладнання, робочі місця - зберігається в базі даних.

database:
  name: abacus
  servers:
    - 192.168.123.1
    - 172.27.20.100
  username: AtFrRwlWl7xf
  password: HyArGd5FS8go
log:
  level: 3
  maxsizekb: 10240
  keepfiles: 10
profile: kasa1
Ключ
Типово Опис
database.name abacus Аліас бази на сервері або повний шлях до її файлу
database.servers localhost Перелік серверів. Програма пробує їх згори вниз і працює з першим, що відповів. Так налаштовується безшовна робота через VPN і в локальній мережі.
database.username sysdba Ім'я користувача Firebird, у закодованому вигляді
database.password masterkey Пароль користувача Firebird, у закодованому вигляді
profile default Ім'я профілю робочого місця, за яким програма читає з бази налаштування складу, каси, монітора й обладнання
log.level 3 Скільки подробиць потрапляє в журнал
log.maxsizekb 10240 Розмір, після якого журнал відкладається в архів
log.keepfiles 10 Скільки файлів журналу лишати в каталозі

Блок log детально описано в розділі Журнали.

Ім'я користувача й пароль зберігаються закодованими, тому вписати їх сюди звичайним текстом не вийде - програма такого значення не зрозуміє і не підключиться. Готове закодоване значення пишуть інсталятор і Лаунчер (коли ви вводите з'єднання в дереві вузлів). Щоб запустити програму під іншим користувачем бази разово, скористайтеся змінними середовища - вони приймають звичайний текст.

Якщо файлу немає взагалі, програма підключається до localhost:abacus під sysdba і шукає налаштування робочого місця не за профілем, а за ІР-адресою комп'ютера - так працювали версії до 3.3. Якщо файл є, але в ньому немає ключа profile, використовується профіль default.

Профіль default службових токенів не має і отримати їх не може - ні редактор конфігурації, ні лаунчер його не пропонують. Тому на робочому місці, яке працює з абхардом, abasyn чи abrest, ключ profile треба заповнити іменем справжнього профілю, інакше програма не знайде жодного токена.

Конфігурацію попередніх версій, що лежала у файлі settings.ini, програма при першому запуску переписує в settings.yaml і видаляє старий файл. Так само автоматично переписується settings.yaml старого зразка, де сервер і аліас були одним рядком у ключі name. Переносити щось вручну не потрібно.

Параметри командного рядка

Параметри пишуться у вигляді ключ=значення через пробіл, без дефісів і без скісних рисок:

Sklad.exe dbserver=192.168.50.11 dbname=abacus profile=cashdesk1

Регістр має значення: Profile= не спрацює. Значення з пробілами беруться в лапки - profile="Каса 1". Незрозумілі параметри програма мовчки пропускає, тому помилку в імені параметра ви побачите не як повідомлення, а як програму, що запустилася зі старими налаштуваннями.

Параметр
Що робить
dbserver=<сервер> Задає сервер для доступу до бази даних. При такому запуску резервні сервери не використовуються
dbname=<аліас> Замінює аліас бази. Приймає і старий запис сервер:аліас; якщо в командному рядку є ще й dbserver=, він має перевагу над сервером усередині dbname=
profile=<ім'я> Профіль робочого місця, за яким програма читає налаштування з бази
showdbinfo=true Дописує в заголовок вікна ім'я, версію та білд бази, до якої програма підключилася. Зручно, коли на комп'ютері є і робоча, і тестова база
genconfig=true Наново створює в базі стандартну конфігурацію програми і завершує роботу. Потрібне, коли програма не запускається через пошкоджений конфіг - див. Налаштування
loglevel=<0-3> Рівень деталізації журналу на цей запуск. Зручно, коли підтримка просить loglevel=3 разово, без правки файла

showdbinfo і genconfig можна писати і без значення - самого імені параметра досить, щоб увімкнути його.

Змінні середовища

Змінні читаються один раз під час запуску, тому задавати їх треба до старту програми - у властивостях системи або у файлі .bat, з якого програму запускають. Одразу після читання програма стирає їх у себе, щоб вони не потрапили ні в дочірні процеси, ні в журнал.

Змінна
Що робить
ABACUS_DBUSER Ім'я користувача Firebird звичайним текстом. Перекриває database.username
ABACUS_DBPASS Пароль користувача Firebird звичайним текстом. Перекриває database.password
ABACUS_PROFILE Профіль робочого місця. Перекриває profile з файла, але поступається параметру profile=
ABACUS_TOKEN Токен працівника для входу в Склад без вікна реєстрації

ABACUS_TOKEN розуміє тільки Склад. Якщо токен дійсний, програма одразу відкривається під відповідним працівником і пише в рядку стану "Зареєстровано по токену"; якщо ні - показує звичайне вікно реєстрації. Токен береться з поля AbacusToken того з'єднання в launcher.yaml, з якого запускають програму.

Служби (abhard, abasyn, abrest) власних змінних не мають. Вони користуються системними - %PROGRAMDATA%, %LOCALAPPDATA%, %APPDATA% у Windows та $XDG_CONFIG_HOME і $HOME у Linux - щоб знайти свою конфігурацію; перелік каталогів наведено в розділі Службові програми.

Командний рядок службових програм

Служби запускаються не користувачем, а системою, тому їхні параметри потрібні переважно під час діагностики.

Параметр Що робить
--config <шлях> або -c <шлях> Вказати каталог конфігурації (лише в Linux)
--version або -v Вивести версію і завершити роботу
--run або -r Працювати у звичайному режимі, а не як служба (лише Linux)
--install або -i Зареєструвати службу в системі
--uninstall або -u Прибрати службу з системи
--help або -h Короткий перелік параметрів

Реєстрацію та вилучення служби роблять інсталятор і пакети, тому --install і --uninstall потрібні хіба що при ручному встановленні.

--config вказує каталог з конфігурацією. Якщо він порожній, програма виводить в консоль повідомлення й завершує роботу. Ані створення типової конфігурації, ані перенесення старого .ini при цьому не відбувається.

У Windows служби запускаються тільки як служби Windows: --run там не працює, а встановлені служби стартують без --config. Щоб служба в Windows узяла іншу конфігурацію, файл треба покласти замість штатного у C:\ProgramData\Abacus\Conf\ і перезапустити службу.