Користувальницькі налаштування

Налаштування сайту


posplus:pro:dovidnyky:tovary

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версійПопередня ревізія
Наступна ревізія
Попередня ревізія
posplus:pro:dovidnyky:tovary [2026/08/22 12:56] – [Фільтри] adminposplus:pro:dovidnyky:tovary [2026/09/13 19:16] (поточний) – зовнішнє редагування 127.0.0.1
Рядок 4: Рядок 4:
  
 =====Список===== =====Список=====
- +{{ :posplus:pro:dovidnyky:tovary-01-spysok.png?direct |Довідник товарів}}
-{{ :posplus:pro:dovidnyky:tovary-01-spysok.png?direct |}}+
  
 Ліворуч — дерево категорій, праворуч — таблиця товарів обраної категорії (з урахуванням усіх вкладених підкатегорій). Колонки таблиці: Ліворуч — дерево категорій, праворуч — таблиця товарів обраної категорії (з урахуванням усіх вкладених підкатегорій). Колонки таблиці:
  
 ^ Колонка ^ Примітка ^ ^ Колонка ^ Примітка ^
-| **Артикул** | унікальний код товару | +| **Товар** | назва товару, під нею дрібніше — артикул і код УКТЗЕД | 
-| **Назва товару** | найменування товару | +| **Залишок** | сумарний залишок на всіх складах, з одиницею виміру |
-| **Од.вим.** | скорочення одиниці виміру (укр) | +
-| **Залишок** | сумарний залишок на всіх складах |+
 | **Собівартість** | якщо в товару кілька різних собівартостей за складами/типами — замість числа показує «Дк/Цін» | | **Собівартість** | якщо в товару кілька різних собівартостей за складами/типами — замість числа показує «Дк/Цін» |
-| **Націнка %** | (Ціна реалізації − Собівартість) / Собівартість × 100 | +| **Ціна** | ціна реалізації; так само «Дк/Цін», якщо цін декілька | 
-| **Ціна реалізації** | так само «Дк/Цін», якщо цін декілька | +| **Націнка** | (Ціна − Собівартість) / Собівартість × 100, у відсотках | 
-| **ПДВ %** | ставка ПДВ (за відсутності прив'язки — 20% за замовчуванням) | +| **Податки** | ставка ПДВ (за відсутності прив'язки — 20% за замовчуванням) і позначка «акциз» для акцизного товару | 
-| **Акциз** | ✓ / ✗ | +| **Стан** | «в продажу», «нема залишку», «мінус», «без ціни» або «неактивний» | 
-| **УКЕТЗД** | код УКТЗЕД | + 
-| **Дата створення** | дата створення картки |+Над таблицею — перемикачі **Усі** / **Без ціни** / **Нема залишку** / **Акцизні** / **Неактивні** з кількістю товарів у кожному: вони відбирають рядки вже показаного списку.
  
 Примітка: на відміну від вкладки **Ціни** картки товару, колонка **Собівартість** у цьому списку показується всім, хто має доступ до довідника — тут немає маскування «—» за правом перегляду закупівельної ціни. Примітка: на відміну від вкладки **Ціни** картки товару, колонка **Собівартість** у цьому списку показується всім, хто має доступ до довідника — тут немає маскування «—» за правом перегляду закупівельної ціни.
  
-  * Поле **АВТО ПОШУК** — живий пошук по мірі набору тексту, шукає одночасно за **назвою**, **артикулом** і **штрихкодом**, незалежно від того, яка категорія обрана в дереві. Пріоритет сортування результатів: спершу точний збіг артикула, потім точний збіг штрихкоду, потім артикул, що починається з введеного тексту, і лише тоді — за назвою. +  * Поле **Пошук** (підказка «Назва, артикул або штрихкод») — живий пошук по мірі набору тексту, шукає одночасно за **назвою**, **артикулом** і **штрихкодом**, незалежно від того, яка категорія обрана в дереві. Пріоритет сортування результатів: спершу точний збіг артикула, потім точний збіг штрихкоду, потім артикул, що починається з введеного тексту, і лише тоді — за назвою. 
-  * Кнопка **Скасувати** біля поля пошуку — очищує пошук і повертає список до вибраної категорії дерева.+  * Хрестик у полі пошуку — очищує пошук і повертає список до вибраної категорії дерева. 
 +  * Кнопки дій стоять в одному ряду з пошуком; ті, що не вмістилися за шириною вікна, сховані під **Ще**.
   * Подвійний клік по рядку — відкриває картку товару на редагування. Якщо картка цього товару вже відкрита — вікно просто виводиться на передній план (повторно не створюється).   * Подвійний клік по рядку — відкриває картку товару на редагування. Якщо картка цього товару вже відкрита — вікно просто виводиться на передній план (повторно не створюється).
-  * **Новий товар** — відкриває порожню картку; попередньо обрана в дереві категорія одразу підставляється в картку.+  * **Новий товар** — відкриває порожню картку; попередньо обрана в дереві категорія одразу підставляється в картку. Щоб не набирати назву, бренд і країну вручну, почніть із кнопки **Підібрати за штрихкодом** у шапці картки (див. «Підбір за штрихкодом» нижче).
   * **Редагувати** — відкриває картку виділеного рядка.   * **Редагувати** — відкриває картку виділеного рядка.
   * **Видалити** — не видаляє фізично, а перемикає прапорець активності товару:   * **Видалити** — не видаляє фізично, а перемикає прапорець активності товару:
-    * якщо товар активний і залишок на всіх складах = 0 → після підтвердження товар деактивується («Товар деактивовано»);+    * якщо товар активний і залишок на всіх складах = 0 → після підтвердження товар деактивується («Товар "…" деактивовано.»);
     * якщо товар активний, а залишок ≠ 0 → дію блокує повідомлення «Неможливо видалити "…". Залишок: N. Для видалення залишок має бути 0.»;     * якщо товар активний, а залишок ≠ 0 → дію блокує повідомлення «Неможливо видалити "…". Залишок: N. Для видалення залишок має бути 0.»;
     * якщо товар уже неактивний — та сама кнопка пропонує «Відновити товар "…"?» і повертає активність.     * якщо товар уже неактивний — та сама кнопка пропонує «Відновити товар "…"?» і повертає активність.
-  * **Оновити** (F5) — перечитує список за поточним пошуком/категорією.+  * **Оновити** — перечитує список за поточним пошуком/категорією.
  
 =====Категорії===== =====Категорії=====
Рядок 39: Рядок 37:
 Категорії можна вкладати без обмеження рівнів; дерево повністю розгорнуте одразу після відкриття довідника. Псевдо-вузол **«Без категорії»** завжди перший у списку — саме сюди потрапляють товари без категорії; редагувати чи видаляти цей вузол не можна. Категорії можна вкладати без обмеження рівнів; дерево повністю розгорнуте одразу після відкриття довідника. Псевдо-вузол **«Без категорії»** завжди перший у списку — саме сюди потрапляють товари без категорії; редагувати чи видаляти цей вузол не можна.
  
-Три дії доступні як окремими кнопками toolbar-у (іконки над деревом), так і контекстним меню по правому кліку на дереві — обидва шляхи ведуть до тих самих обробників:+Біля кожної категорії видно кількість товарів у ній разом із підкатегоріями. Три дії з категоріями відкриває меню по правому кліку на категорії в дереві:
  
   * **Додати категорію** — відкриває форму нової категорії. Якщо в дереві перед цим був виділений реальний вузол, він одразу підставляється як батьківська категорія (тобто створюється підкатегорія); якщо виділення нема або виділено «Без категорії» — нова категорія створюється кореневою.   * **Додати категорію** — відкриває форму нової категорії. Якщо в дереві перед цим був виділений реальний вузол, він одразу підставляється як батьківська категорія (тобто створюється підкатегорія); якщо виділення нема або виділено «Без категорії» — нова категорія створюється кореневою.
-  * **Редагувати категорію** — відкриває ту саму форму для виділеного вузла (по «Без категорії» команда відповідає «Неможливо редагувати "Без категорії"»).+  * **Редагувати категорію** — відкриває ту саму форму для виділеного вузла (по «Без категорії» команда відповідає «Оберіть категорію для редагування.»).
   * **Видалити категорію**:   * **Видалити категорію**:
     * якщо в категорії є підкатегорії — видалення одразу блокується: «Спочатку видаліть підкатегорії цієї категорії.»;     * якщо в категорії є підкатегорії — видалення одразу блокується: «Спочатку видаліть підкатегорії цієї категорії.»;
Рядок 49: Рядок 47:
  
 **Форма категорії** (та сама для створення й редагування): **Форма категорії** (та сама для створення й редагування):
 +{{ :posplus:pro:dovidnyky:tovary-02-kategoriya-forma.png?direct |Форма категорії товару}}
  
-{{ :posplus:pro:dovidnyky:tovary-02-kategoriya-forma.png?direct |}} +  * **Назва категорії** — текстове поле; Enter у полі одразу натискає **Зберегти**.
- +
-  * **Назва** — текстове поле; Enter у полі одразу натискає **Зберегти**.+
   * **Батьківська категорія** — випадний список усіх інших категорій (сама категорія, що редагується, виключена зі списку, щоб не можна було зробити її ж власним предком); перший пункт — **«Нема»** (категорія стає кореневою). **Перенесення категорії в дереві виконується саме тут** — відкрити категорію на редагування і вибрати іншого предка.   * **Батьківська категорія** — випадний список усіх інших категорій (сама категорія, що редагується, виключена зі списку, щоб не можна було зробити її ж власним предком); перший пункт — **«Нема»** (категорія стає кореневою). **Перенесення категорії в дереві виконується саме тут** — відкрити категорію на редагування і вибрати іншого предка.
-  * Зображення категорії (100×100) — клік по картинці відкриває провідник вибору файлу; вибране зображення пропорційно масштабується і центрується на білому тлі, зберігається як JPEG (якість 85%). Поки зображення не задане, автоматично малюється сіра заглушка-кнопка з написом «Натисніть». Кнопка **Очистити зображення** прибирає поточну картинку.+  * **Зображення** категорії (100×100) — клік по квадрату відкриває провідник вибору файлу; вибране зображення пропорційно масштабується і центрується на білому тлі, зберігається як JPEG (якість 85%). Поки зображення не задане, у квадраті видно підказку «Натисніть, щоб обрати». Кругла кнопка **✕** у куті картинки прибирає поточну картинку.
   * **Зберегти** — створює нову або оновлює наявну категорію, після чого оновлює дерево в довіднику товарів і закриває форму. **Скасувати** закриває форму без збереження.   * **Зберегти** — створює нову або оновлює наявну категорію, після чого оновлює дерево в довіднику товарів і закриває форму. **Скасувати** закриває форму без збереження.
  
 =====Фільтри===== =====Фільтри=====
 +{{ :posplus:pro:dovidnyky:tovary-03-filtr.png?direct |Конструктор фільтра товарів}}
  
-{{ :posplus:pro:dovidnyky:tovary-03-filtr.png?direct |}} +Кнопка **Фільтр** відкриває вікно **Фільтр товарів** — конструктор умов. Кожна умова складається з поля, порівняння (напр. «містить», «більше», «між») і значення; **+ Додати умову** додає ще одну, а між умовами можна обрати **І** або **АБО**. Поля для умов:
- +
-Кнопка **Фільтр** відкриває конструктор умов із дев'ятьма полями:+
  
 ^ Поле ^ Тип ^ ^ Поле ^ Тип ^
Рядок 73: Рядок 69:
 | Ставка ПДВ | довідник | | Ставка ПДВ | довідник |
 | Постачальник | довідник | | Постачальник | довідник |
 +| Одиниця виміру | довідник |
 +| Тип товару | довідник |
  
-Після застосування статус-рядок показує кількість знайдених записів («Фільтр застосовано: знайдено N записів»). Кнопка **Скинути** повертає список до звичайного перегляду за деревом категорій (після підтвердження).+Поки ви заповнюєте умови, вікно одразу рахує, скільки товарів підпадає («Знайдено N»), а кнопка показує **Застосувати · N**. **Очистити все** прибирає всі умови, **Скасувати** закриває вікно без змін. Кнопка **Скинути фільтр** у довіднику повертає список до звичайного перегляду за деревом категорій (після підтвердження «Скинути поточний фільтр?»).
  
-=====Картка об'єкта=====+=====Картка товару=====
  
-Картка товару складається з **нерухомої лівої панелі** («Основне» — завжди видима, не перемикається) і **правої панелі з 7 вкладками**. Збереження — кнопка **Зберегти** (або Ctrl+S), скасування — **Скасувати** (або Esc). Перед збереженням перевіряються лише два поля: **Назва товару** не порожня і обрана **Одиниця виміру** — інакше збереження блокується з фокусом на проблемному полі.+Картка товару складається з **шапки** (фото, назва, позначки на кшталт «На касі» чи «Акциз», залишок і роздрібна ціна), **нерухомої лівої панелі** («Основне» — завжди видима, не перемикається) і **правої панелі з 7 вкладками**: **Штрихкоди**, **Ціни**, **ФОП**, **Характеристики**, **Комплект**, **Рух**, **Статистика**. Збереження — кнопка **Зберегти** (або Ctrl+S), скасування — **Скасувати** (або Esc). Перед збереженням перевіряються лише два поля: **Назва** не порожня і обрана **Одиниця виміру** — інакше збереження блокується з фокусом на проблемному полі.
  
-====Основне (ліва панель)====+====Підбір за штрихкодом====
  
-//СКРІНШОТ [tovary-04-osnovne.png]: картка товару, ліва панель «Основне» — п'ять секцій, що згортаються (Основні, Постачання й класифікація, Облік, Податки, Каса), і праворуч видно ряд вкладок картки.//+{{ :posplus:pro:dovidnyky:tovary-12-knopka-pidbir.png?direct |Шапка картки товару — фото, назва й ціни, праворуч угорі кнопка «Підібрати за штрихкодом»}}
  
-Це не вкладка, а окрема прокручувана панель зліва, завжди видима незалежно від того, яку з 7 вкладок обрано праворуч. Розбита на 5 секцій, кожна згортається/розгортається кліком по заголовку (шеврон):+Кнопка **Підібрати за штрихкодом** праворуч у шапці картки заповнює картку даними з каталогу споживчих товарів Listex (listex.info). У каталозі є більшість українських товарів, зокрема й непродовольчих, тож на прийманні нової накладної картки не доводиться набирати вручну. Для підбору потрібен інтернет. 
 + 
 +Кнопка є і в новій картці, і в уже збереженій. Якщо в товару вже є штрихкоди, пошук стартує одразу за тим, що виділений на вкладці **Штрихкоди**. Якщо штрихкодів ще немає (у новій картці їх немає завжди), поле пошуку порожнє: відскануйте код (сканер сам натисне Enter) або впишіть його й натисніть **Знайти**. 
 + 
 +{{ :posplus:pro:dovidnyky:tovary-13-pidbir-vikno.png?direct |Вікно «Підбір товару за штрихкодом» зі знайденим товаром}} 
 + 
 +Вікно **Підбір товару за штрихкодом** показує один із трьох результатів: 
 + 
 +  * **Товар знайдено.** Видно фото, назву, торгову марку, країну, виробника й усі штрихкоди товару в каталозі, а нижче — список **Що підставити в картку**. 
 +  * **«Товару немає в каталозі».** Приблизно половини українських товарів у каталозі ще немає. Це не помилка програми: картку заповнюєте вручну. 
 +  * **«Каталог не відповів».** Немає зв'язку з сайтом, або він не віддав сторінку товару. Спробуйте пізніше. 
 + 
 +Каталог шукає за текстом і може повернути схожий товар тієї ж марки. Тому програма приймає результат, лише коли відсканований код справді є серед штрихкодів знайденого товару, інакше вважає, що товару в каталозі немає. 
 + 
 +===Що можна підставити=== 
 + 
 +^ Рядок ^ Що підставляється ^ 
 +| **Назва** | назва товару з каталогу | 
 +| **Бренд** | торгова марка; вона має бути в довіднику брендів | 
 +| **Країна** | країна виробництва; вона має бути в довіднику країн | 
 +| **Одиниця** | «Штука» або «Кілограм» — за тим, чи ваговий товар у каталозі | 
 +| **В упаковці** | скільки штук в упаковці, якщо більше однієї | 
 +| **Придатність** | термін придатності в днях | 
 +| **Фото** | фото з каталогу, зменшене до 100×100 | 
 +| **УКТЗЕД** | код УКТЗЕД | 
 +| **Акцизний збір** | пропозиція позначити товар акцизним, з поясненням, звідки такий висновок | 
 + 
 +Кожен рядок має галочку. Порожні поля картки позначені одразу, а заповнені приходять зі знятою галочкою, і поруч видно «було → стане». Щоб замінити вже заповнене поле, поставте галочку самі. Чого в каталозі немає, того в списку й не буде; про фото й УКТЗЕД вікно пише окремо: «Фото в каталозі немає», «Коду УКТЗЕД у каталозі немає». 
 + 
 +Акцизним товар пропонується позначити, якщо так сказано в каталозі або код УКТЗЕД належить до підакцизних груп: пиво, вино, міцні напої, тютюн, пальне. Поруч видно, на чому висновок, наприклад: «каталог і код · пиво», «за каталогом; код цього не підтверджує» або «за кодом (пиво), а каталог каже НІ — звірте». Остаточне рішення за вами. Уже поставлену галочку акцизу підбір ніколи не знімає. 
 + 
 +Ціни, ставку ПДВ, ФОП і постачальника підбір не чіпає. 
 + 
 +===Після «Перенести»=== 
 + 
 +  * Позначені дані лягають у картку, але товар ще не збережено: натисніть **Зберегти**. 
 +  * Штрихкод, за яким шукали, додається товару: збереженому — одразу, новому — після першого збереження. Якщо такий штрихкод уже є в іншого товару, його не додають. 
 +  * Фото в новий товар не додасться: програма попросить спершу зберегти товар і натиснути підбір ще раз. У збереженого товару фото записується одразу. 
 +  * Якщо бренду, країни чи одиниці немає в довіднику, наприкінці з'явиться одне повідомлення «Не все вдалося підставити» зі списком того, чого бракує. Решту вже заповнено: створіть потрібний запис у довіднику або оберіть інший вручну. 
 + 
 +**Скасувати** або Esc закривають вікно без змін у картці. 
 + 
 +====Основне (ліва панель)==== 
 +{{ :posplus:pro:dovidnyky:tovary-04-osnovne.png?direct |Картка товару, ліва панель «Основні»}} 
 + 
 +Це не вкладка, а окрема прокручувана панель зліва, завжди видима незалежно від того, яку з 7 вкладок обрано праворуч. Розбита на 6 секцій. Клік по заголовку (шеврон) розгортає секцію, а інші при цьому згортаються — відкрита завжди одна, на старті «Основні»:
  
 **Основні** **Основні**
Рядок 90: Рядок 133:
   * **Артикул** — поле завжди неактивне (сіре, недоступне для ручного вводу); для нового товару показує «Генерується автоматично».   * **Артикул** — поле завжди неактивне (сіре, недоступне для ручного вводу); для нового товару показує «Генерується автоматично».
   * **Категорія** — довідник категорій (плюс кнопка швидкого додавання нової категорії поруч із полем).   * **Категорія** — довідник категорій (плюс кнопка швидкого додавання нової категорії поруч із полем).
-  * **Тип товару** і **Одиниця виміру** — в один рядок; біля одиниці виміру — кнопка швидкого додавання нової одиниці (відкриває компактну форму, описану в статті «Одиниці виміру», розділ «Швидкий додаток з картки товару»). Для нового товару типом за замовчуванням підставляється «Товар».+  * **Тип товару** і **Одиниця виміру**; біля одиниці виміру — кнопка швидкого додавання нової одиниці (відкриває компактну форму, описану в статті «Одиниці виміру», розділ «Швидкий додаток з картки товару»). Для нового товару типом за замовчуванням підставляється «Товар».
  
 **Постачання й класифікація** **Постачання й класифікація**
   * **Постачальник** — за замовчуванням для нового товару підставляється рядок «Без постачальника».   * **Постачальник** — за замовчуванням для нового товару підставляється рядок «Без постачальника».
-  * **ФОП / ТОВ** — продавець товару для фіскалізації; поруч кнопка **✕** відв'язує ФОП. Зміна цього поля одразу перезавантажує список **Ставка ПРРО (CheckBox)** нижче (у секції «Податки») і вмикає/вимикає його. +  * **Бренд** і **Країна**; для нового товару підставляються типові значення з довідників — «Без бренду» і «Вітчизняний виробник».
-  * **Бренд** і **Країна походження** — в один рядок; для нового товару підставляються типові значення з довідників — «Без бренду» і «Вітчизняний виробник».+
  
 **Облік** **Облік**
-  * **Код УКТЗЕД**. +  * **УКТЗЕД**. 
-  * **Мін. залишок** — при введенні з клавіатури: якщо обрана одиниця виміру не дробова (напр. «шт»), приймаються лише цілі числа; якщо дробова — дозволено до 3 знаків після коми/крапки (роздільник нормалізується автоматично).+  * **Мінімальний залишок** — при введенні з клавіатури: якщо обрана одиниця виміру не дробова (напр. «шт»), приймаються лише цілі числа; якщо дробова — дозволено до 3 знаків після коми/крапки (роздільник нормалізується автоматично). 
 + 
 +**Запаси й замовлення** 
 +  * **Термін придатності, днів**, **Кратність упаковки** і **Максимальний залишок**.
  
 **Податки** **Податки**
 +  * **ФОП / організація** — продавець товару для фіскалізації; поруч кнопка **✕** відв'язує ФОП. Зміна цього поля одразу перезавантажує список **Податкова група CheckBox** нижче і вмикає/вимикає його.
   * **Ставка ПДВ** — довідник ставок ПДВ. Для нового товару, якщо в налаштуваннях заданий дефолт — підставляється він, інакше — рядок «Без ПДВ».   * **Ставка ПДВ** — довідник ставок ПДВ. Для нового товару, якщо в налаштуваннях заданий дефолт — підставляється він, інакше — рядок «Без ПДВ».
-  * **Ставка ПРРО (CheckBox)** — список кодів оподаткування CheckBox, відфільтрований під обраний ФОП; активний лише коли ФОП/ТОВ обрано (інакше поле порожнє й неактивне). Перший пункт списку — «-- автопідбір по ПДВ --». Кнопка-«чарівна паличка» поруч (**Автопідбір ставки ПРРО за ставкою ПДВ**) підбирає код за поточною парою ПДВ+ФОП і показує повідомлення, якщо для цього ФОП такого маппінгу не налаштовано. +  * **Податкова група CheckBox** — список кодів оподаткування CheckBox, відфільтрований під обраний ФОП; активний лише коли ФОП обрано (інакше поле порожнє й неактивне). Перший пункт списку — «-- автопідбір по ПДВ --». Кнопка-«чарівна паличка» поруч (**Автопідбір ставки ПРРО за ставкою ПДВ**) підбирає код за поточною парою ПДВ+ФОП і показує повідомлення, якщо для цього ФОП такого маппінгу не налаштовано. 
-  * **Акцизний збір** і **Ввозити код акцизної марки** — прапорці.+  * **Акцизний збір** і **Вводити код акцизної марки** — прапорці.
  
 **Каса** **Каса**
Рядок 112: Рядок 158:
  
 ====Штрихкоди==== ====Штрихкоди====
 +{{ :posplus:pro:dovidnyky:tovary-05-shtryhkody.png?direct |Вікно «Штрихкод»}}
  
-//СКРІНШОТ [tovary-05-shtryhkody.png]: вкладка «Штрихкоди» — таблиця штрихкодів товару, і окреме вікно «Штрихкод» з кнопками «Згенерувати EAN13» / «Згенерувати PLU», прапорцем «Ваговий (PLU)» і підказкою «PLU (для програмування ваг): XXXXX».// +Таблиця наявних штрихкодів товару (колонки **Код товару** — службовий код товару, однаковий у всіх рядках, і **Штрихкод**). Кнопка **Видалити** після підтвердження видаляє виділений штрихкод остаточно. Виділений тут штрихкод бере кнопка **Підібрати за штрихкодом**, якщо натиснути її в шапці картки.
- +
-Таблиця наявних штрихкодів товару (колонки **Код товару** — числовий код товару, однаковий у всіх рядках, і **Штрихкод**). Кнопка **Видалити** після підтвердження видаляє виділений штрихкод остаточно.+
  
 Кнопка **Додати** відкриває окреме вікно **Штрихкод**: Кнопка **Додати** відкриває окреме вікно **Штрихкод**:
  
-  * Поле для штрихкоду можна заповнити вручну або згенерувати: +  * Поле **Код** можна заповнити вручну або згенерувати: 
-    * **Згенерувати EAN13** — випадковий код за префіксом (**Префікс:**) з коректною контрольною цифрою EAN-13. +    * **Згенерувати EAN13** — випадковий код за префіксом (**Префікс**) з коректною контрольною цифрою EAN-13. 
-    * прапорець **Ваговий (PLU)** перемикає кнопку в режим **Згенерувати PLU** — формат «2 цифри префікса + 5 цифр PLU + 00000 + контрольна цифра» (стандартний ваговий EAN-13); PLU підбирається як перший вільний 5-значний номер для цього префікса (макс. наявний + 1, до 99999). За замовчуванням для вагового режиму підставляється префікс «22». Після генерації під полем з'являється підказка **«PLU (для програмування ваг): XXXXX»** — саме ці 5 цифр треба ввести у вагу.+    * прапорець **Ваговий товар (PLU)** перемикає кнопку в режим **Згенерувати PLU** — формат «2 цифри префікса + 5 цифр PLU + 00000 + контрольна цифра» (стандартний ваговий EAN-13); PLU підбирається як перший вільний 5-значний номер для цього префікса (макс. наявний + 1, до 99999). За замовчуванням для вагового режиму підставляється префікс «22». Після генерації з'являється рядок **PLU для ваг** з 5 цифрами — саме їх треба ввести у вагу.
   * Кнопка **Додати** (внизу форми) перевіряє, що поле не порожнє, і що такого штрихкоду ще нема в жодного іншого товару в системі — за збігу вставка блокується повідомленням «Штрихкод "…" вже існує!». Новий штрихкод завжди створюється активним — це обов'язково, інакше він не потрапить на касу. Кнопка **Відміна** закриває вікно без змін.   * Кнопка **Додати** (внизу форми) перевіряє, що поле не порожнє, і що такого штрихкоду ще нема в жодного іншого товару в системі — за збігу вставка блокується повідомленням «Штрихкод "…" вже існує!». Новий штрихкод завжди створюється активним — це обов'язково, інакше він не потрапить на касу. Кнопка **Відміна** закриває вікно без змін.
  
Рядок 128: Рядок 173:
 Таблиця лише для перегляду (без кнопок редагування на самій вкладці) — по одному рядку на кожну комбінацію склад/характеристика товару: **Характеристика** («Нема характеристик», якщо в товару їх нема), **Ціна собівартості**, **Ціна реалізації**, **Склад**, **Дата ціни**. Колонка **Ціна собівартості** приховується («—») для користувачів без права перегляду закупівельної ціни; **Ціна реалізації** показується завжди. Самі ціни встановлюються не тут, а документами надходження/переоцінки. Таблиця лише для перегляду (без кнопок редагування на самій вкладці) — по одному рядку на кожну комбінацію склад/характеристика товару: **Характеристика** («Нема характеристик», якщо в товару їх нема), **Ціна собівартості**, **Ціна реалізації**, **Склад**, **Дата ціни**. Колонка **Ціна собівартості** приховується («—») для користувачів без права перегляду закупівельної ціни; **Ціна реалізації** показується завжди. Самі ціни встановлюються не тут, а документами надходження/переоцінки.
  
-====Зображення====+====Фото товару====
  
-Фото товару (до 100×100, пропорційно вписується). Кнопка **Завантажити** відкриває провідник для вибору зображення (jpg, jpeg, png, bmp, gif), обране зображення масштабується і зберігається в картці. Кнопка **Видалити** після підтвердження прибирає зображення. Обидві дії вимагають вже збереженого товару («Спочатку збережіть товар.» для нового).+Окремої вкладки для фото немає — воно в шапці картки (до 100×100, пропорційно вписується; без фото там напис «фото»). Клік лівою кнопкою по фото відкриває провідник для вибору зображення (jpg, jpeg, png, bmp, gif), обране зображення масштабується і одразу зберігається. Клік правою кнопкою після підтвердження прибирає зображення. Обидві дії вимагають вже збереженого товару («Спочатку збережіть товар.» для нового).
  
-====ФОП по складах====+====ФОП==== 
 +{{ :posplus:pro:dovidnyky:tovary-06-fop-po-skladah.png?direct |Вкладка «ФОП»}}
  
-//СКРІНШОТ [tovary-06-fop-po-skladah.png]: вкладка «ФОП по складах» — таблиця Магазин / склад / ФОП-продавець / Стан, з розкритим випадним списком вибору ФОП у колонці для одного зі складів.// +Дозволяє перевизначити продавця (ФОП/ТОВ) окремо для конкретного магазину/складу — замість спільного значення з секції «Податки». Таблиця: **Магазин / склад**, **ФОП-продавець** (редагована колонка-комбобокс), **Стан** (**«перевизначено»** або **«за замовчуванням»**).
- +
-Дозволяє перевизначити продавця (ФОП/ТОВ) окремо для конкретного магазину/складу — замість спільного значення з секції «Постачання й класифікація». Таблиця: **Магазин / склад**, **ФОП-продавець** (редагована колонка-комбобокс), **Стан** (**«перевизначено»** або **«за замовчуванням»**).+
  
 Клік у колонці ФОП розкриває список, що складається з: пункту **«— за замовчуванням (Назва ФОП) —»** (прибирає перевизначення для цього складу) і лише тих ФОП, які фактично **обслуговують цей склад** (мають на ньому касу з підключеним ПРРО). Зберігається разом зі збереженням картки товару. Клік у колонці ФОП розкриває список, що складається з: пункту **«— за замовчуванням (Назва ФОП) —»** (прибирає перевизначення для цього складу) і лише тих ФОП, які фактично **обслуговують цей склад** (мають на ньому касу з підключеним ПРРО). Зберігається разом зі збереженням картки товару.
Рядок 142: Рядок 186:
 ====Характеристики==== ====Характеристики====
  
-Динамічний список рядків з трьома полями — **Розмір**, **Колір**, **Додаткові (JSON)** (вільний JSON-об'єкт, перевіряється на коректність перед збереженням). Товар без жодної заповненої характеристики зберігається з одним порожнім рядком.+Динамічний список рядків з трьома полями — **Розмір**, **Колір**, **Додатково (JSON)** (вільний JSON-об'єкт, перевіряється на коректність перед збереженням). Товар без жодної заповненої характеристики зберігається з одним порожнім рядком.
  
   * **Додати** — новий порожній рядок.   * **Додати** — новий порожній рядок.
Рядок 149: Рядок 193:
   * **Зберегти** — доступно лише для вже створеного товару («Спочатку збережіть товар.» для нового); записує/оновлює характеристики товару.   * **Зберегти** — доступно лише для вже створеного товару («Спочатку збережіть товар.» для нового); записує/оновлює характеристики товару.
  
-====Складники комплекту==== +====Комплект==== 
- +{{ :posplus:pro:dovidnyky:tovary-07-komplekt.png?direct |}}
-//СКРІНШОТ [tovary-07-komplekt.png]: вкладка «Складники комплекту» (видима лише для товару типу «Комплект») — таблиця складових № / Назва складової / Од. / Кількість / Собівартість і підсумок «Собівартість набору (ост.): N».//+
  
 Ця вкладка **показується тільки для товару з типом «Комплект»** — для решти типів товару вона прихована, видимість перемикається одразу при зміні поля «Тип товару». Таблиця: **№**, **Назва складової**, **Од.**, **Кількість**, **Собівартість** (довідково — за останньою прихідною ціною складової × кількість; якщо приходів не було — «—»); знизу підсумок **«Собівартість набору (ост.): N»**. Ця вкладка **показується тільки для товару з типом «Комплект»** — для решти типів товару вона прихована, видимість перемикається одразу при зміні поля «Тип товару». Таблиця: **№**, **Назва складової**, **Од.**, **Кількість**, **Собівартість** (довідково — за останньою прихідною ціною складової × кількість; якщо приходів не було — «—»); знизу підсумок **«Собівартість набору (ост.): N»**.
Рядок 160: Рядок 203:
   * Список складу зберігається лише разом зі збереженням усього товару (доступно тільки для вже створеного товару).   * Список складу зберігається лише разом зі збереженням усього товару (доступно тільки для вже створеного товару).
  
-====Залишки та рух====+====Рух==== 
 +{{ :posplus:pro:dovidnyky:tovary-08-zalyshky-ruh.png?direct |Вкладка «Рух»}}
  
-//СКРІНШОТ [tovary-08-zalyshky-ruh.png]: вкладка «Залишки та рух» — фільтр Склад і період зверху, таблиця руху товару з колонками Дата/Тип документа/№ документа/Склад/Прихід/Витрата/Залишок/Ціна, і підсумки знизу.// +Фільтр зверху: **Склад** (типово «Всі склади»), період **Період з** … **по** і кнопка **Оновити**. За замовчуванням при відкритті картки період — поточний місяць.
- +
-Фільтр зверху: **Склад** (типово «Всі склади») і період — дві дати через «-», кнопка оновлення. За замовчуванням при відкритті картки період — поточний місяць.+
  
 Таблиця руху: **Дата**, **Тип документа** (українською — Надходження / Реалізація / Чек продажу / Чек повернення / Переміщення / Списання / Повернення / Повер. постачальнику / Інвентаризація), **№ документа**, **Склад**, **Прихід** (зелений колір), **Витрата** (червоний), **Залишок** (наростаючий підсумок по рядку), **Ціна** (для продажів — фактична ціна рядка чека/накладної, для решти типів — ціна документа руху). Порожній період показує рядок-підказку «Рух товару за обраний період відсутній». Таблиця руху: **Дата**, **Тип документа** (українською — Надходження / Реалізація / Чек продажу / Чек повернення / Переміщення / Списання / Повернення / Повер. постачальнику / Інвентаризація), **№ документа**, **Склад**, **Прихід** (зелений колір), **Витрата** (червоний), **Залишок** (наростаючий підсумок по рядку), **Ціна** (для продажів — фактична ціна рядка чека/накладної, для решти типів — ціна документа руху). Порожній період показує рядок-підказку «Рух товару за обраний період відсутній».
Рядок 170: Рядок 212:
 Підсумки знизу: **Залишок на початок**, **Прихід**, **Витрата**, **Залишок на кінець** (жирним) і **Поточний залишок** (жирним, окремим кольором) — останній завжди береться з фактичних залишків на складі, незалежно від обраного періоду. Повернення покупця (чи то товарний, чи то чековий) фізично прибавляє на склад, але в підсумках зменшує «Витрату», а не збільшує «Прихід» — щоб не спотворювати картину реалізації. Підсумки знизу: **Залишок на початок**, **Прихід**, **Витрата**, **Залишок на кінець** (жирним) і **Поточний залишок** (жирним, окремим кольором) — останній завжди береться з фактичних залишків на складі, незалежно від обраного періоду. Повернення покупця (чи то товарний, чи то чековий) фізично прибавляє на склад, але в підсумках зменшує «Витрату», а не збільшує «Прихід» — щоб не спотворювати картину реалізації.
  
-=====Масові дії=====+====Статистика====
  
-//СКРІНШОТ [tovary-09-masovo.png]: форма масового редагування товарів — прапорці-перемикачі зліва кожного поля (Категорія, Бренд, Ставка ПДВ, ФОП/організація тощо) і кнопка «Застосувати · N» з лічильником позначених полів.//+Рейтинг товару й попит за даними нічного аудиту запасів: оцінки **Швидкість**, **Прибуток**, **Стабільність**, **Доступність**, середні продажі за 7/30/90 днів, **Прогноз** і графік **Попит за 90 днів**. Якщо аудит товар ще не рахував, вкладка так і пише: «Немає статистики для цього товару.» 
 + 
 +=====Масові дії===== 
 +{{ :posplus:pro:dovidnyky:tovary-09-masovo.png?direct |Форма масового редагування товарів}}
  
 Рядки списку товарів вибираються **утримуючи Ctrl** (множинне виділення). Три кнопки toolbar-у працюють із таким виділенням: Рядки списку товарів вибираються **утримуючи Ctrl** (множинне виділення). Три кнопки toolbar-у працюють із таким виділенням:
  
-  * **Масово** — відкриває форму масового редагування. Ліворуч кожного поля — прапорець-перемикач: змінюються лише позначені поля, решта товарів лишається без змін по всіх інших полях. Кнопка **Застосувати** показує лічильник позначених полів (**«Застосувати · N»**) і активна, лише коли позначене хоч одне поле; перед виконанням — підтвердження «Змінити N полів у M товарах?». Доступні поля:+  * **Масово** — відкриває форму масового редагування. Ліворуч кожного поля — перемикач: змінюються лише увімкнені поля (вимкнене показує «без змін»), решта товарів лишається без змін по всіх інших полях. Кнопка **Застосувати** показує лічильник позначених полів (**«Застосувати · N»**) і активна, лише коли позначене хоч одне поле; перед виконанням — підтвердження «Змінити N полів у M товарах?». Доступні поля:
  
 ^ Група ^ Поле ^ Примітка ^ ^ Група ^ Поле ^ Примітка ^
 | Класифікація | Категорія, Бренд, Країна походження, Постачальник | у кожного є пункт **«(очистити)»** — обнуляє поле | | Класифікація | Категорія, Бренд, Країна походження, Постачальник | у кожного є пункт **«(очистити)»** — обнуляє поле |
-| Податки та ПРРО | Ставка ПДВ | без варіанта очищення | +| Поведінка на касі | Активний у касі, Друк цінника | перемикач Ні/Так | 
-| | ФОП / організація | вибір **«(очистити)»** одразу обнуляє й ЄДРПОУ, і обидва коди CheckBox (податковий і акцизний) | +| | Мін. поріг залишку | число (кома чи крапка) | 
-| | Податкова ставка ПРРО, Акцизна ставка ПРРО | активні лише коли позначено й заповнено поле ФОП; список ставок фільтрується під обраний ФОП |+| Податки | Ставка ПДВ | без варіанта очищення |
 | | Акцизний збір, Акцизна марка | перемикач Ні/Так | | | Акцизний збір, Акцизна марка | перемикач Ні/Так |
 | | УКТЗЕД | ціле число; порожнє значення = очистити | | | УКТЗЕД | ціле число; порожнє значення = очистити |
-| Поведінка | Активний у касі, Друк цінника при продажу | перемикач Ні/Так | +| Фіскалізація (ПРРО) | ФОП / організація | вибір **«(очистити)»** одразу обнуляє й ЄДРПОУ, і обидва коди CheckBox (податковий і акцизний) | 
-| | Мін. поріг залишку | число (кома чи крапка) | +| | Податкова ставка, Акцизна ставка | активні лише коли увімкнено й заповнено поле ФОП; список ставок фільтрується під обраний ФОП | 
-| ФОП по складу | окремий блок **«Змінити»** + Склад + ФОП | не зачіпає основне значення ФОП товару — записує/прибирає перевизначення по складах для ВСІХ позначених товарів одразу; перший пункт списку ФОП — **«— за замовчуванням (прибрати перевизначення) —»** |+| ФОП по складу | перемикач **«Призначити ФОП складу»** + Склад + ФОП | не зачіпає основне значення ФОП товару — записує/прибирає перевизначення по складах для ВСІХ позначених товарів одразу; перший пункт списку ФОП — **«— за замовчуванням (прибрати перевизначення) —»** |
  
     Дія вимагає права на редагування товарів — без нього кнопка **Застосувати** відповість «Немає права на редагування товарів».     Дія вимагає права на редагування товарів — без нього кнопка **Застосувати** відповість «Немає права на редагування товарів».
  
-  * Кнопка **Перенести товар** (іконка) — переносить усі позначені товари в іншу категорію: відкриває простий список категорій (з пунктом «Без категорії»), після вибору питає підтвердження «Перемістити N товарів до нової категорії?» і одразу переносить усі позначені товари в обрану категорію. +  * Кнопка **Перенести** — переносить усі позначені товари в іншу категорію: відкриває вікно **Оберіть категорію** зі списком категорій (з пунктом «Без категорії»), після вибору питає підтвердження «Перемістити N товарів до нової категорії?» і одразу переносить усі позначені товари в обрану категорію. 
-  * Кнопка **Друк цінників** (іконка) — якщо є позначені рядки, друкує цінники для них; якщо позначення нема — для поточного (виділеного одним кліком) рядка. Опис самого діалогу друку — нижче.+  * Кнопка **Цінники** (підказка «Друк цінників») — якщо є позначені рядки, друкує цінники для них; якщо позначення нема — для поточного (виділеного одним кліком) рядка. Опис самого вікна друку — нижче.
  
 =====Друк цінників===== =====Друк цінників=====
 +{{ :posplus:pro:dovidnyky:tovary-10-tsinnyky.png?direct |Вікно «Друк цінників»}}
  
-//СКРІНШОТ [tovary-10-tsinnyky.png]: вікно «Друк цінників зі складу» — випадні списки Шаблон і Ціна зліва, таблиця товарів з редагованою колонкою К-сть, поле «Цінників на товар» з кнопкою «Застосувати всім», і прев'ю цінника справа.//+Кнопка **Цінники** відкриває вікно **«Друк цінників»** (потрібне окреме право на друк цінників). Шаблони в ньому ті самі, що в [[posplus:pro:servis:redaktor-tsinnykiv|Редакторі цінників]]: вони зберігаються в базі, а не файлами на комп'ютері.
  
-Кнопка з іконкою принтера/цінника відкриває вікно **«Друк цінників зі складу»** (вимагає окремого права на друк цінників):+  * **Шаблон** — будь-який шаблон із бази. Уперше пропонується «Штрихкод 40x25», далі вікно пам'ятає останній вибір на цьому комп'ютері. 
 +  * **Яку ціну друкувати** — будь-який активний тип ціни; вибір теж запам'ятовується. 
 +  * Таблиця **Товар** / **Ціна** / **Цінників**: кількість цінників на кожен товар окремо (клік по числу), хрестик прибирає товар зі списку. **Кількість на кожен товар** + **Застосувати всім** проставляє одне число всім рядкам. Товари без ціни збираються в окремий рядок-попередження з кнопкою **Прибрати їх зі списку**. 
 +  * **Прев'ю** показує виділений товар у вибраному шаблоні, **Розкладка аркуша** — скільки цінників вміщується на A4 і скільки аркушів знадобиться. 
 +  * Внизу — підсумок «До друку: N цінників на M аркушах · шаблон «…»» і кнопки **Закрити** / **Друк · N**. Після **Друк** відкривається вибір принтера; поле «Копій» у ньому множить кожен цінник із таблиці.
  
-  * **Шаблон** — випадний список файлів `.lbl` з теки шаблонів етикеток; за наявності шаблону з «40x25» у назві він підставляється за замовчуванням. +Докладніше про вікно друку й поради щодо термопринтера — у статті [[posplus:pro:servis:redaktor-tsinnykiv|Редактор цінників]].
-  * **Ціна** — тип ціни, що друкується на цінникові: **Роздрібна** / **Оптова** / **Акційна**. +
-  * Таблиця товарів (**Товар**, **Ціна** — обидві лише для перегляду, **К-сть** — редагована): кількість цінників на кожен товар окремо. Ліворуч зверху — поле **Цінників на товар** + кнопка **Застосувати всім**, яка одразу проставляє це число в колонку К-сть для всіх рядків. +
-  * Праворуч — **Прев'ю**: живе зображення обраного цінника для виділеного в таблиці товару, перемальовується при зміні шаблону чи вибраного рядка. +
-  * Знизу — лічильник **«Цінників: N»** (сума всіх К-сть) і кнопки **Друк** / **Закрити**.+
  
 =====Імпорт / експорт===== =====Імпорт / експорт=====
  
-**Експорт** (іконка, потрібне право на експорт даних) — зберігає **поточний відображений список** (з урахуванням активного пошуку/фільтра/категорії, а не лише позначені рядки) у файл: `.xlsx`, `.xls`, `.xml`, `.txt` або `.csv` — формат визначається обраним у діалозі збереження розширенням. Експортуються лише видимі колонки списку; ім'я файлу за замовчуванням — `Export_РРРР-ММ-ДД`. +**Експорт** (потрібне право на експорт даних) — зберігає **поточний відображений список** (з урахуванням активного пошуку/фільтра/категорії, а не лише позначені рядки) у файл: `.xlsx`, `.xls`, `.xml`, `.txt` або `.csv` — формат визначається обраним у діалозі збереження розширенням. Експортуються лише видимі колонки списку; ім'я файлу за замовчуванням — `Export_РРРР-ММ-ДД`.
- +
-**Імпорт** (іконка, потрібне право на редагування товарів) — відкриває окремий MDI-екран **«Імпорт товарів з Excel/CSV»**:+
  
-//СКРІНШОТ [tovary-11-import.png]: екран «Імпорт товарів з Excel/CSV» — кнопки Огляд.../Згенерувати шаблон/Завантажити і перевірити вгорі, і таблиця-перегляд результату розбору файлу з колонками Статус (НОВИЙ/ОНОВИТИ/ПОМИЛКА), Назва, Од., Артикул, Штрихкод, Категорія, ПДВ, Собівартість, Ціна, Повідомлення.//+**Імпорт** (потрібне право на редагування товарів) — відкриває окремий екран **«Імпорт товарів»**: 
 +{{ :posplus:pro:dovidnyky:tovary-11-import.png?direct |Вікно «Імпорт товарів з Excel/CSV»}}
  
-  - **Огляд...** — вибір файлу `.xlsx` чи `.csv`. Кнопка **Згенерувати шаблон** зберігає порожній `.xlsx` із рядком заголовків і одним прикладом рядка. +  - **Обрати файл…** — вибір файлу `.xlsx` чи `.csv` (файл можна й перетягнути у вікно). Кнопка **Завантажити шаблон** зберігає порожній `.xlsx` із рядком заголовків і одним прикладом рядка. 
-  - **Завантажити і перевірити** — парсить файл і звіряє з довідниками, **нічого ще не пишучи в базу**; результат — таблиця-перегляд із колонками ``✓`` (позначка до імпорту), ``#`` (номер рядка Excel), **Статус** (**НОВИЙ** / **ОНОВИТИ** / **ПОМИЛКА**), Назва, Од., Артикул, Штрихкод, Категорія, ПДВ, Собівартість, Ціна, **Повідомлення** (⚠ попередження або ❌ помилки текстом). Кнопки вибору: **Відмітити всі**, **Зняти всі**, **Лише нові без помилок**. +  - **Завантажити і перевірити** — парсить файл і звіряє з довідниками, **нічого ще не пишучи в базу**; результат — таблиця-перегляд із колонками ``✓`` (позначка до імпорту), ``#`` (номер рядка Excel), **Статус** (**НОВИЙ** / **ОНОВИТИ** / **ПОМИЛКА**), Назва, Од., Артикул, Штрихкод, Категорія, ПДВ, Собівартість, Ціна, **Повідомлення** (⚠ попередження або ❌ помилки текстом). Над таблицею — перемикачі **Усі** / **Нові** / **Оновлення** / **Помилки** і кнопки **Відмітити всі видимі**, **Зняти всі**. 
-  - **Склад для запису цін** — якщо обрано конкретний склад (не «(не записувати ціни)»), із колонок собівартості/ціни файлу заповнюються поточні ціни на цьому складі; якщо у файлі є ціни, а склад не обрано — перед запуском з'явиться попередження «У файлі є ціни, але не обрано склад. Ціни не будуть записані. Продовжити?». +  - **Склад для цін** — якщо обрано конкретний склад (не «— не записувати ціни —»), із колонок собівартості/ціни файлу заповнюються поточні ціни на цьому складі; якщо у файлі є ціни, а склад не обрано — перед запуском з'явиться попередження «У файлі є ціни, але не обрано склад. Ціни не будуть записані. Продовжити?». 
-  - **Автогенерувати артикули** — для нових рядків (не дублікатів) із порожнім артикулом підставляє код виду `IMP-РРРРММДДГГХХСС-NNNN`. +  - **Генерувати артикули** — для нових рядків (не дублікатів) із порожнім артикулом підставляє код виду `IMP-РРРРММДДГГХХСС-NNNN`. 
-  - **Імпортувати** — запускає власне запис у фоновому потоці з прогрес-баром; після завершення — підсумок «Створено: N / Оновлено: N / Пропущено: N / Помилок: N», записаний також у журнал імпортів (кнопка **Журнал імпортів**) і в аудит.+  - **Імпортувати · N** — запускає власне запис у фоновому потоці з прогрес-баром; після завершення — вікно **Імпорт завершено** з числами «створено», «оновлено», «пропущено», «з помилками», записаними також у журнал імпортів (кнопка **Журнал імпортів**) і в аудит.
  
 **Розпізнавання колонок.** Перший рядок файлу — заголовки; кожен заголовок (регістр не важливий) зіставляється з одним із логічних полів за списком синонімів: **Розпізнавання колонок.** Перший рядок файлу — заголовки; кожен заголовок (регістр не важливий) зіставляється з одним із логічних полів за списком синонімів:
Рядок 240: Рядок 285:
 Файл без колонок **Назва** і **Одиниця виміру** відхиляється одразу, до розбору рядків. Рядок, де порожні одночасно назва, артикул і штрихкод, вважається порожнім і пропускається мовчки. Категорія/бренд/постачальник/країна/ставка ПДВ, яких немає в довідниках, не блокують рядок — товар імпортується з порожнім (чи дефолтним для ПДВ) значенням і попередженням у колонці Повідомлення. Файл без колонок **Назва** і **Одиниця виміру** відхиляється одразу, до розбору рядків. Рядок, де порожні одночасно назва, артикул і штрихкод, вважається порожнім і пропускається мовчки. Категорія/бренд/постачальник/країна/ставка ПДВ, яких немає в довідниках, не блокують рядок — товар імпортується з порожнім (чи дефолтним для ПДВ) значенням і попередженням у колонці Повідомлення.
  
-**Поведінка при дублікатах артикула/назви.** Дублікат шукається за пріоритетом: спершу за **артикулом** (без урахування регістру, і лише якщо він не виглядає як раніше згенерований системою — не починається з `IMP-`), інакше — за парою **назва + одиниця виміру**. Знайдений збіг позначає рядок статусом **ОНОВИТИ**. Під час самого імпорту на кожному такому рядку (доки не обрано варіант «…всі») з'являється діалог **«Товар "…" (артикул: …) уже існує в базі. Оновити його даними з файлу чи пропустити?»** з кнопками **Оновити** / **Оновити всі** / **Пропустити** / **Пропустити всі** / **Скасувати** (останнє відкочує весь пакет імпорту). Оновлення перезаписує назву, одиницю, ПДВ, категорію, бренд, постачальника, країну, УКТЗЕД, ознаку акцизу та ЄДРПОУ — **артикул наявного товару при цьому не змінюється**.+**Поведінка при дублікатах артикула/назви.** Дублікат шукається за пріоритетом: спершу за **артикулом** (без урахування регістру, і лише якщо він не виглядає як раніше згенерований системою — не починається з `IMP-`), інакше — за парою **назва + одиниця виміру**. Знайдений збіг позначає рядок статусом **ОНОВИТИ**. Під час самого імпорту на кожному такому рядку (доки не обрано варіант «…всі») з'являється вікно **«Товар уже є в базі»** (назва, артикул і рядок файлу, поля «було → стане») з кнопками **Оновити** / **Оновити всі** / **Пропустити** / **Пропустити всі**. Оновлення перезаписує назву, одиницю, ПДВ, категорію, бренд, постачальника, країну, УКТЗЕД, ознаку акцизу та ЄДРПОУ — **артикул наявного товару при цьому не змінюється**.
  
 **Поведінка при дублікатах штрихкоду.** Один осередок штрихкоду може містити кілька кодів через `;`, `,`, `|` або таб — кожен розбирається окремо і нормалізується (прибираються пробіли/табуляція, «розпакування» Excel-показу числа в науковій нотації, обрізання до 50 символів). Якщо саме цей товар уже має такий штрихкод — код просто пропускається без помилки. Якщо штрихкод належить **іншому** товару і зберегти його не вдається — сам товар усе одно створюється/оновлюється, а конфлікт лише додається попередженням у колонку **Повідомлення** («ШК "…": <текст помилки>») — імпорт товару через це не зупиняється. **Поведінка при дублікатах штрихкоду.** Один осередок штрихкоду може містити кілька кодів через `;`, `,`, `|` або таб — кожен розбирається окремо і нормалізується (прибираються пробіли/табуляція, «розпакування» Excel-показу числа в науковій нотації, обрізання до 50 символів). Якщо саме цей товар уже має такий штрихкод — код просто пропускається без помилки. Якщо штрихкод належить **іншому** товару і зберегти його не вдається — сам товар усе одно створюється/оновлюється, а конфлікт лише додається попередженням у колонку **Повідомлення** («ШК "…": <текст помилки>») — імпорт товару через це не зупиняється.
  
posplus/pro/dovidnyky/tovary.1787403401.txt.gz · Востаннє змінено: повз admin