Skip to content

Стандарт YAML

Починаючи з версії 3.0 вся конфігурація тримається у форматі YAML. По стандарту документ YAML має починатися з трьох дефісів і закінчуватися трьома крапками. У всьому іншому це інтуїтивно зрозуміла ієрархічна структура. Немає змісту тут описувати весь стандарт, але проте невалідний YAML на тому чи іншому етапі програма відкине. Щоб перевірити формат конфіга, рекомендую використовувати або утиліту yamllint в лінуксі, або сайт https://yamllint.com.

Кодування YAML як у файлів так і в записів у базі даних - UTF-16. Це означає що без відповідних перетворень замість кирилиці користувач буде бачити спецсимволи. Якщо цікаво - спробуй вказати якийсь шлях що містить кирилицю у Лаунчері і потім глянути launcher.yaml. У "Редакторі конфігурації" в Складі кирилиця звісно відображається правильно.

Логічна ієрархія

Вся конфігурація тримається в таблиці S_BLOCKYAML. Кожна програма має свій стандартний конфіг (він має значення default у стовпчику BLOCK_NAME) що недоступний для редагування через склад.

Окрім стандартного, у кожної програми може бути ще два додаткових блоки конфігурації котрі перезаписують стандартні - company та user (бесіда все ще про стовпчик BLOCK_NAME). У них зберігаються відповідно спільні налаштування для всієї компанії і індивідуальні налаштування користувача. Для user вказується додатковий параметр, що зберігається у стовпчику BLOCK_PARAM. Для більшості програм це ІД користувача або unregistered для конфігурації програми до реєстрації (тобто, всі кнопки і всі менюшки заховані). Для каси у цьому стовпчику вказується ІР адреса клієнта, бо по-перше в касі користувачі працюють не реєструючись, а по-друге на різних комп'ютерах у кас як правило різні налаштування.

Конфіги company та user включають лише ті значення, що відрізнаються від default. Конфіг company можна створити лише вручну через Склад або ІБЕксперт; користувач його не може змінити. Конфіг user перезаписується при кожнму закриванні програми актуальними на той момент значеннями.

Генерування дефолтної конфігурації

Якщо з якихось причин у базі пошкоджено дефолтний конфіг якоїсь програми, його можна відновити двома способами. Якщо програма все ще запускається, тоді після запуску (і реєстрації якщо треба) треба натиснути комбінацію клавіш Ctrl+F2. Програма згенерує блоки default та user - unregistered і завершить роботу. Якщо програма навіть не запускається через пошкоджений конфіг (вилітає при запуску, видає помилки, тощо) - тоді її можна запустити з параметром genconfig=True (наприклад Sklad.exe genconfig=True). В такому випадку також буде наново згенерована конфігурація після чого програма завершить роботу.

Потенційно неочевидні моменти

Behaviour / screen / displayStartDate - задає примусову дату раніше якої програма не сунеться.

Конфігурація хоста

У конфігурації хоста наразі є лише три самоочевидні блоки - screen, location, та abhard.

Конфігурація ваги

У версії 3.0.1 залишено рудимент з часів 2.Х - робота з торговими вагами ведеться напряму з каси/баркому. За можливості воно буде перенесено в абхард, але наразі конфігурується наступним чином

Behaviour:
  cashdesk:
    scales:
      enabled: false
      port: COM1
      model: DigiDS
      baud: 4800
      bits: 7
      parity: Odd
      stopbit: 1
      hardflow: false
      softflow: false
Єдиний по-справжньому необхідний параметр - enabled. Якщо він увімкнений тоді всі інші параметри можуть не вказуватись; дефолтні значення вказані в прикладі конфігурації вище.

Для моделі можливі варіанти DigiDS, VTA16, Tiger15, ICSNT. Всі вони по-різному отримують команду на зчитування даних і по-різному віддають результат зважування.

Додаткові параметри конфігурування ком-порта мусять співпадати з рекомендованими розробником ваги, інакше зв'язок працювати не буде. Для параметра parity можливі значення - Odd, Even, None, Mark, Space; має значення лише перший символ (хоча в конфігу можна вказувати і повне слово).

Оскільки в Лінуксі каса запускається під Win, порт для неї також буде COM1. Щоб цей самий COM1 став доступним для програм всередині емулятора, потрібно зробити симлінк:

ln -s /dev/ttyS0 /home/user/.wine/dosdevices/COM1