Офлайн-серії номерів
Каса, що працює без зв'язку, мусить нумерувати чеки сама — і при цьому не зіткнутися з номерами сервера й інших кас. Розв'язок простий: кожному терміналу видають власний діапазон номерів, у якому більше ніхто не працює.
Де шукати: Модулі → Офлайн → Регістри → Офлайн-серії номерів
Розбір на прикладі

У журналі — код термінала і коментар; один запис на термінал. Тут один термінал — POS1.

Терміналу POS1 виділено діапазон 900001–909999 для реєстру OfflineSales. У полі «Останній використаний» — 900003: найбільший номер чека з цього діапазону, який каса вже передала на сервер. Його піднімає сервер, приймаючи чеки каси, і ніколи не зменшує; сама каса веде лічильник у себе (див. «Діапазон вичерпується»).
Один запис — один термінал. У таблиці — по рядку на кожен виділений діапазон; сама каса нумерує лише чеки, тож їй потрібні рядки з OfflineSales. Номери вона бере з першого рядка, де ще є вільні.
Чому номери не стикаються
Сервер, генеруючи черговий номер онлайн, перестрибує офлайн-діапазони. Тому 900001 не дістанеться документу, створеному в конторі, а каса, пропрацювавши тиждень без мережі, привезе номери, яких ніхто не зайняв.
Застереження: так працює нумерація «наступний за останнім». Якщо для реєстру налаштовано серії номерів, сервер видає номери за ними й офлайн-діапазонів не обходить. Тому, коли офлайн-обмін увімкнено, перетин серії з діапазоном каси не дає зберегти ні серію номерів, ні цей запис; діапазон для OfflineSales звіряється із серіями рахунків-фактур, бо рахунок успадковує номер чека. Без цієї перевірки рахунок, створений у конторі, зайняв би номер каси, і її чек із тим самим номером на рахунок уже не перетворився б (помилка конвертації в «Офлайн-продажах»).
Ще одна деталь: номер чека успадковує створений із нього рахунок. Тобто рахунок за чеком 900001 теж матиме номер 900001 — по ньому й шукайте.
Типові ситуації
Діапазон вичерпується. Витрату діапазону видно в полі «Останній використаний»: сервер піднімає його до номера останнього чека цієї каси, що вже надійшов (чеки, які каса ще не передала, там не враховано). Коли він наблизився до верхньої межі, додайте касі новий діапазон рядком нижче. Вичерпавши діапазон, каса перестає видавати номери, доки не отримає новий.
Касу перевстановили або зареєстрували заново. Нумерація продовжується, а не починається з початку діапазону: каса бере найбільше з трьох — що знає сервер (поле «Останній використаний»), що пам'ятає сама, і найбільший номер чека, який уже лежить у її базі. Тож номер чека, ще не переданого на сервер, вдруге не видається. Якщо діапазон звузили нижче номера, який каса вже видала, він вважається вичерпаним.
Заводимо другу касу. Дайте їй інший діапазон (наприклад, 910001–919999) — перетин двох терміналів дав би однакові номери чеків і конфлікт при конвертації. Тому діапазон, що перетинається з діапазоном іншої каси (або з іншим рядком цього ж запису), зберегти не вдасться: відмова назве діапазон, на який він налазить, а якщо той чужий — і його касу.
Каса не пробиває чек — повідомлення «У каси немає вільних номерів чеків». Перевірте, чи є для неї запис у цьому реєстрі: без діапазону терміналу нема з чого брати номер.
Куди дивитися далі
- Офлайн-термінали — кому виділено діапазони.
- Офлайн-продажі — чеки, які цими номерами пронумеровані.
- Серії номерів — та сама ідея для звичайних, «онлайнових» документів.