======Товари====== Каталог номенклатури підприємства: список товарів з деревом категорій, картки товарів (7 вкладок), масове редагування, друк цінників, імпорт/експорт. Найглибший довідник системи — картка товару відкриває доступ до штрихкодів, цін, зображень, прив'язки ФОП по складах, характеристик, складу комплекту та історії руху. Розділ **Довідники → Довідник товарів**. =====Список===== {{ :posplus:pro:dovidnyky:tovary-01-spysok.png?direct |Довідник товарів}} Ліворуч — дерево категорій, праворуч — таблиця товарів обраної категорії (з урахуванням усіх вкладених підкатегорій). Колонки таблиці: ^ Колонка ^ Примітка ^ | **Товар** | назва товару, під нею дрібніше — артикул і код УКТЗЕД | | **Залишок** | сумарний залишок на всіх складах, з одиницею виміру | | **Собівартість** | якщо в товару кілька різних собівартостей за складами/типами — замість числа показує «Дк/Цін» | | **Ціна** | ціна реалізації; так само «Дк/Цін», якщо цін декілька | | **Націнка** | (Ціна − Собівартість) / Собівартість × 100, у відсотках | | **Податки** | ставка ПДВ (за відсутності прив'язки — 20% за замовчуванням) і позначка «акциз» для акцизного товару | | **Стан** | «в продажу», «нема залишку», «мінус», «без ціни» або «неактивний» | Над таблицею — перемикачі **Усі** / **Без ціни** / **Нема залишку** / **Акцизні** / **Неактивні** з кількістю товарів у кожному: вони відбирають рядки вже показаного списку. Примітка: на відміну від вкладки **Ціни** картки товару, колонка **Собівартість** у цьому списку показується всім, хто має доступ до довідника — тут немає маскування «—» за правом перегляду закупівельної ціни. * Поле **Пошук** (підказка «Назва, артикул або штрихкод») — живий пошук по мірі набору тексту, шукає одночасно за **назвою**, **артикулом** і **штрихкодом**, незалежно від того, яка категорія обрана в дереві. Пріоритет сортування результатів: спершу точний збіг артикула, потім точний збіг штрихкоду, потім артикул, що починається з введеного тексту, і лише тоді — за назвою. * Хрестик у полі пошуку — очищує пошук і повертає список до вибраної категорії дерева. * Кнопки дій стоять в одному ряду з пошуком; ті, що не вмістилися за шириною вікна, сховані під **Ще**. * Подвійний клік по рядку — відкриває картку товару на редагування. Якщо картка цього товару вже відкрита — вікно просто виводиться на передній план (повторно не створюється). * **Новий товар** — відкриває порожню картку; попередньо обрана в дереві категорія одразу підставляється в картку. Щоб не набирати назву, бренд і країну вручну, почніть із кнопки **Підібрати за штрихкодом** у шапці картки (див. «Підбір за штрихкодом» нижче). * **Редагувати** — відкриває картку виділеного рядка. * **Видалити** — не видаляє фізично, а перемикає прапорець активності товару: * якщо товар активний і залишок на всіх складах = 0 → після підтвердження товар деактивується («Товар "…" деактивовано.»); * якщо товар активний, а залишок ≠ 0 → дію блокує повідомлення «Неможливо видалити "…". Залишок: N. Для видалення залишок має бути 0.»; * якщо товар уже неактивний — та сама кнопка пропонує «Відновити товар "…"?» і повертає активність. * **Оновити** — перечитує список за поточним пошуком/категорією. =====Категорії===== Категорії можна вкладати без обмеження рівнів; дерево повністю розгорнуте одразу після відкриття довідника. Псевдо-вузол **«Без категорії»** завжди перший у списку — саме сюди потрапляють товари без категорії; редагувати чи видаляти цей вузол не можна. Біля кожної категорії видно кількість товарів у ній разом із підкатегоріями. Три дії з категоріями відкриває меню по правому кліку на категорії в дереві: * **Додати категорію** — відкриває форму нової категорії. Якщо в дереві перед цим був виділений реальний вузол, він одразу підставляється як батьківська категорія (тобто створюється підкатегорія); якщо виділення нема або виділено «Без категорії» — нова категорія створюється кореневою. * **Редагувати категорію** — відкриває ту саму форму для виділеного вузла (по «Без категорії» команда відповідає «Оберіть категорію для редагування.»). * **Видалити категорію**: * якщо в категорії є підкатегорії — видалення одразу блокується: «Спочатку видаліть підкатегорії цієї категорії.»; * якщо підкатегорій нема, але є товари — запитує підтвердження «У категорії "…" є N товарів. Перенести їх до "Без категорії" перед видаленням?» (**Так**/**Ні**); відмова скасовує видалення повністю, згода переносить товари в «Без категорії» і лише тоді видаляє рядок категорії; * якщо категорія порожня — видаляється одразу після успіху попередніх перевірок. **Форма категорії** (та сама для створення й редагування): {{ :posplus:pro:dovidnyky:tovary-02-kategoriya-forma.png?direct |Форма категорії товару}} * **Назва категорії** — текстове поле; Enter у полі одразу натискає **Зберегти**. * **Батьківська категорія** — випадний список усіх інших категорій (сама категорія, що редагується, виключена зі списку, щоб не можна було зробити її ж власним предком); перший пункт — **«Нема»** (категорія стає кореневою). **Перенесення категорії в дереві виконується саме тут** — відкрити категорію на редагування і вибрати іншого предка. * **Зображення** категорії (100×100) — клік по квадрату відкриває провідник вибору файлу; вибране зображення пропорційно масштабується і центрується на білому тлі, зберігається як JPEG (якість 85%). Поки зображення не задане, у квадраті видно підказку «Натисніть, щоб обрати». Кругла кнопка **✕** у куті картинки прибирає поточну картинку. * **Зберегти** — створює нову або оновлює наявну категорію, після чого оновлює дерево в довіднику товарів і закриває форму. **Скасувати** закриває форму без збереження. =====Фільтри===== {{ :posplus:pro:dovidnyky:tovary-03-filtr.png?direct |Конструктор фільтра товарів}} Кнопка **Фільтр** відкриває вікно **Фільтр товарів** — конструктор умов. Кожна умова складається з поля, порівняння (напр. «містить», «більше», «між») і значення; **+ Додати умову** додає ще одну, а між умовами можна обрати **І** або **АБО**. Поля для умов: ^ Поле ^ Тип ^ | Назва товару | текст | | Штрих-код | текст | | УКТЗЕД | число | | Собівартість | число | | Ціна реалізації | число | | Залишок на складі | число (сума по всіх складах) | | Акцизний товар | так/ні | | Ставка ПДВ | довідник | | Постачальник | довідник | | Одиниця виміру | довідник | | Тип товару | довідник | Поки ви заповнюєте умови, вікно одразу рахує, скільки товарів підпадає («Знайдено N»), а кнопка показує **Застосувати · N**. **Очистити все** прибирає всі умови, **Скасувати** закриває вікно без змін. Кнопка **Скинути фільтр** у довіднику повертає список до звичайного перегляду за деревом категорій (після підтвердження «Скинути поточний фільтр?»). =====Картка товару===== Картка товару складається з **шапки** (фото, назва, позначки на кшталт «На касі» чи «Акциз», залишок і роздрібна ціна), **нерухомої лівої панелі** («Основне» — завжди видима, не перемикається) і **правої панелі з 7 вкладками**: **Штрихкоди**, **Ціни**, **ФОП**, **Характеристики**, **Комплект**, **Рух**, **Статистика**. Збереження — кнопка **Зберегти** (або Ctrl+S), скасування — **Скасувати** (або Esc). Перед збереженням перевіряються лише два поля: **Назва** не порожня і обрана **Одиниця виміру** — інакше збереження блокується з фокусом на проблемному полі. ====Підбір за штрихкодом==== {{ :posplus:pro:dovidnyky:tovary-12-knopka-pidbir.png?direct |Шапка картки товару — фото, назва й ціни, праворуч угорі кнопка «Підібрати за штрихкодом»}} Кнопка **Підібрати за штрихкодом** праворуч у шапці картки заповнює картку даними з каталогу споживчих товарів 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 секцій. Клік по заголовку (шеврон) розгортає секцію, а інші при цьому згортаються — відкрита завжди одна, на старті «Основні»: **Основні** * **Назва** — обов'язкове. * **Артикул** — поле завжди неактивне (сіре, недоступне для ручного вводу); для нового товару показує «Генерується автоматично». * **Категорія** — довідник категорій (плюс кнопка швидкого додавання нової категорії поруч із полем). * **Тип товару** і **Одиниця виміру**; біля одиниці виміру — кнопка швидкого додавання нової одиниці (відкриває компактну форму, описану в статті «Одиниці виміру», розділ «Швидкий додаток з картки товару»). Для нового товару типом за замовчуванням підставляється «Товар». **Постачання й класифікація** * **Постачальник** — за замовчуванням для нового товару підставляється рядок «Без постачальника». * **Бренд** і **Країна**; для нового товару підставляються типові значення з довідників — «Без бренду» і «Вітчизняний виробник». **Облік** * **УКТЗЕД**. * **Мінімальний залишок** — при введенні з клавіатури: якщо обрана одиниця виміру не дробова (напр. «шт»), приймаються лише цілі числа; якщо дробова — дозволено до 3 знаків після коми/крапки (роздільник нормалізується автоматично). **Запаси й замовлення** * **Термін придатності, днів**, **Кратність упаковки** і **Максимальний залишок**. **Податки** * **ФОП / організація** — продавець товару для фіскалізації; поруч кнопка **✕** відв'язує ФОП. Зміна цього поля одразу перезавантажує список **Податкова група CheckBox** нижче і вмикає/вимикає його. * **Ставка ПДВ** — довідник ставок ПДВ. Для нового товару, якщо в налаштуваннях заданий дефолт — підставляється він, інакше — рядок «Без ПДВ». * **Податкова група CheckBox** — список кодів оподаткування CheckBox, відфільтрований під обраний ФОП; активний лише коли ФОП обрано (інакше поле порожнє й неактивне). Перший пункт списку — «-- автопідбір по ПДВ --». Кнопка-«чарівна паличка» поруч (**Автопідбір ставки ПРРО за ставкою ПДВ**) підбирає код за поточною парою ПДВ+ФОП і показує повідомлення, якщо для цього ФОП такого маппінгу не налаштовано. * **Акцизний збір** і **Вводити код акцизної марки** — прапорці. **Каса** * **Відображати в касі** — типово увімкнено для нового товару. * **Друк цінника при продажу**. * **Пропонувати тару при продажі (каса)**. ====Штрихкоди==== {{ :posplus:pro:dovidnyky:tovary-05-shtryhkody.png?direct |Вікно «Штрихкод»}} Таблиця наявних штрихкодів товару (колонки **Код товару** — службовий код товару, однаковий у всіх рядках, і **Штрихкод**). Кнопка **Видалити** після підтвердження видаляє виділений штрихкод остаточно. Виділений тут штрихкод бере кнопка **Підібрати за штрихкодом**, якщо натиснути її в шапці картки. Кнопка **Додати** відкриває окреме вікно **Штрихкод**: * Поле **Код** можна заповнити вручну або згенерувати: * **Згенерувати EAN13** — випадковий код за префіксом (**Префікс**) з коректною контрольною цифрою EAN-13. * прапорець **Ваговий товар (PLU)** перемикає кнопку в режим **Згенерувати PLU** — формат «2 цифри префікса + 5 цифр PLU + 00000 + контрольна цифра» (стандартний ваговий EAN-13); PLU підбирається як перший вільний 5-значний номер для цього префікса (макс. наявний + 1, до 99999). За замовчуванням для вагового режиму підставляється префікс «22». Після генерації з'являється рядок **PLU для ваг** з 5 цифрами — саме їх треба ввести у вагу. * Кнопка **Додати** (внизу форми) перевіряє, що поле не порожнє, і що такого штрихкоду ще нема в жодного іншого товару в системі — за збігу вставка блокується повідомленням «Штрихкод "…" вже існує!». Новий штрихкод завжди створюється активним — це обов'язково, інакше він не потрапить на касу. Кнопка **Відміна** закриває вікно без змін. ====Ціни==== Таблиця лише для перегляду (без кнопок редагування на самій вкладці) — по одному рядку на кожну комбінацію склад/характеристика товару: **Характеристика** («Нема характеристик», якщо в товару їх нема), **Ціна собівартості**, **Ціна реалізації**, **Склад**, **Дата ціни**. Колонка **Ціна собівартості** приховується («—») для користувачів без права перегляду закупівельної ціни; **Ціна реалізації** показується завжди. Самі ціни встановлюються не тут, а документами надходження/переоцінки. ====Фото товару==== Окремої вкладки для фото немає — воно в шапці картки (до 100×100, пропорційно вписується; без фото там напис «фото»). Клік лівою кнопкою по фото відкриває провідник для вибору зображення (jpg, jpeg, png, bmp, gif), обране зображення масштабується і одразу зберігається. Клік правою кнопкою після підтвердження прибирає зображення. Обидві дії вимагають вже збереженого товару («Спочатку збережіть товар.» для нового). ====ФОП==== {{ :posplus:pro:dovidnyky:tovary-06-fop-po-skladah.png?direct |Вкладка «ФОП»}} Дозволяє перевизначити продавця (ФОП/ТОВ) окремо для конкретного магазину/складу — замість спільного значення з секції «Податки». Таблиця: **Магазин / склад**, **ФОП-продавець** (редагована колонка-комбобокс), **Стан** (**«перевизначено»** або **«за замовчуванням»**). Клік у колонці ФОП розкриває список, що складається з: пункту **«— за замовчуванням (Назва ФОП) —»** (прибирає перевизначення для цього складу) і лише тих ФОП, які фактично **обслуговують цей склад** (мають на ньому касу з підключеним ПРРО). Зберігається разом зі збереженням картки товару. ====Характеристики==== Динамічний список рядків з трьома полями — **Розмір**, **Колір**, **Додатково (JSON)** (вільний JSON-об'єкт, перевіряється на коректність перед збереженням). Товар без жодної заповненої характеристики зберігається з одним порожнім рядком. * **Додати** — новий порожній рядок. * Кнопка **✕** праворуч кожного рядка видаляє саме цей рядок (мінімум один рядок лишається завжди — «Повинна залишитися хоча б одна характеристика»); якщо характеристика вже збережена і на неї є ненульові залишки хоч на одному складі — видалення блокується повідомленням з переліком складів і кількістю, вимагаючи спершу списати залишок. Реальне видалення не знищує запис фізично — характеристика лише позначається видаленою, а пов'язані ціни очищуються. * **Очистити** — після підтвердження прибирає всі рядки, крім одного (порожнього). * **Зберегти** — доступно лише для вже створеного товару («Спочатку збережіть товар.» для нового); записує/оновлює характеристики товару. ====Комплект==== {{ :posplus:pro:dovidnyky:tovary-07-komplekt.png?direct |}} Ця вкладка **показується тільки для товару з типом «Комплект»** — для решти типів товару вона прихована, видимість перемикається одразу при зміні поля «Тип товару». Таблиця: **№**, **Назва складової**, **Од.**, **Кількість**, **Собівартість** (довідково — за останньою прихідною ціною складової × кількість; якщо приходів не було — «—»); знизу підсумок **«Собівартість набору (ост.): N»**. * **Додати** — відкриває вибір товарів-складових; для кожного обраного питає кількість у діалозі («Кількість "…" в комплекті:»). Товар-«Комплект» не можна додати як складову іншого комплекту (вкладені комплекти не підтримуються — з'явиться повідомлення «… — комплект. Вкладені комплекти не підтримуються…»); дублікат складової просто пропускається. * **Кількість** — змінює кількість виділеної складової (повторний діалог введення). * **Видалити** — прибирає виділену складову з набору після підтвердження. * Список складу зберігається лише разом зі збереженням усього товару (доступно тільки для вже створеного товару). ====Рух==== {{ :posplus:pro:dovidnyky:tovary-08-zalyshky-ruh.png?direct |Вкладка «Рух»}} Фільтр зверху: **Склад** (типово «Всі склади»), період **Період з** … **по** і кнопка **Оновити**. За замовчуванням при відкритті картки період — поточний місяць. Таблиця руху: **Дата**, **Тип документа** (українською — Надходження / Реалізація / Чек продажу / Чек повернення / Переміщення / Списання / Повернення / Повер. постачальнику / Інвентаризація), **№ документа**, **Склад**, **Прихід** (зелений колір), **Витрата** (червоний), **Залишок** (наростаючий підсумок по рядку), **Ціна** (для продажів — фактична ціна рядка чека/накладної, для решти типів — ціна документа руху). Порожній період показує рядок-підказку «Рух товару за обраний період відсутній». Підсумки знизу: **Залишок на початок**, **Прихід**, **Витрата**, **Залишок на кінець** (жирним) і **Поточний залишок** (жирним, окремим кольором) — останній завжди береться з фактичних залишків на складі, незалежно від обраного періоду. Повернення покупця (чи то товарний, чи то чековий) фізично прибавляє на склад, але в підсумках зменшує «Витрату», а не збільшує «Прихід» — щоб не спотворювати картину реалізації. ====Статистика==== Рейтинг товару й попит за даними нічного аудиту запасів: оцінки **Швидкість**, **Прибуток**, **Стабільність**, **Доступність**, середні продажі за 7/30/90 днів, **Прогноз** і графік **Попит за 90 днів**. Якщо аудит товар ще не рахував, вкладка так і пише: «Немає статистики для цього товару.» =====Масові дії===== {{ :posplus:pro:dovidnyky:tovary-09-masovo.png?direct |Форма масового редагування товарів}} Рядки списку товарів вибираються **утримуючи Ctrl** (множинне виділення). Три кнопки toolbar-у працюють із таким виділенням: * **Масово** — відкриває форму масового редагування. Ліворуч кожного поля — перемикач: змінюються лише увімкнені поля (вимкнене показує «без змін»), решта товарів лишається без змін по всіх інших полях. Кнопка **Застосувати** показує лічильник позначених полів (**«Застосувати · N»**) і активна, лише коли позначене хоч одне поле; перед виконанням — підтвердження «Змінити N полів у M товарах?». Доступні поля: ^ Група ^ Поле ^ Примітка ^ | Класифікація | Категорія, Бренд, Країна походження, Постачальник | у кожного є пункт **«(очистити)»** — обнуляє поле | | Поведінка на касі | Активний у касі, Друк цінника | перемикач Ні/Так | | | Мін. поріг залишку | число (кома чи крапка) | | Податки | Ставка ПДВ | без варіанта очищення | | | Акцизний збір, Акцизна марка | перемикач Ні/Так | | | УКТЗЕД | ціле число; порожнє значення = очистити | | Фіскалізація (ПРРО) | ФОП / організація | вибір **«(очистити)»** одразу обнуляє й ЄДРПОУ, і обидва коди CheckBox (податковий і акцизний) | | | Податкова ставка, Акцизна ставка | активні лише коли увімкнено й заповнено поле ФОП; список ставок фільтрується під обраний ФОП | | ФОП по складу | перемикач **«Призначити ФОП складу»** + Склад + ФОП | не зачіпає основне значення ФОП товару — записує/прибирає перевизначення по складах для ВСІХ позначених товарів одразу; перший пункт списку ФОП — **«— за замовчуванням (прибрати перевизначення) —»** | Дія вимагає права на редагування товарів — без нього кнопка **Застосувати** відповість «Немає права на редагування товарів». * Кнопка **Перенести** — переносить усі позначені товари в іншу категорію: відкриває вікно **Оберіть категорію** зі списком категорій (з пунктом «Без категорії»), після вибору питає підтвердження «Перемістити N товарів до нової категорії?» і одразу переносить усі позначені товари в обрану категорію. * Кнопка **Цінники** (підказка «Друк цінників») — якщо є позначені рядки, друкує цінники для них; якщо позначення нема — для поточного (виділеного одним кліком) рядка. Опис самого вікна друку — нижче. =====Друк цінників===== {{ :posplus:pro:dovidnyky:tovary-10-tsinnyky.png?direct |Вікно «Друк цінників»}} Кнопка **Цінники** відкриває вікно **«Друк цінників»** (потрібне окреме право на друк цінників). Шаблони в ньому ті самі, що в [[posplus:pro:servis:redaktor-tsinnykiv|Редакторі цінників]]: вони зберігаються в базі, а не файлами на комп'ютері. * **Шаблон** — будь-який шаблон із бази. Уперше пропонується «Штрихкод 40x25», далі вікно пам'ятає останній вибір на цьому комп'ютері. * **Яку ціну друкувати** — будь-який активний тип ціни; вибір теж запам'ятовується. * Таблиця **Товар** / **Ціна** / **Цінників**: кількість цінників на кожен товар окремо (клік по числу), хрестик прибирає товар зі списку. **Кількість на кожен товар** + **Застосувати всім** проставляє одне число всім рядкам. Товари без ціни збираються в окремий рядок-попередження з кнопкою **Прибрати їх зі списку**. * **Прев'ю** показує виділений товар у вибраному шаблоні, **Розкладка аркуша** — скільки цінників вміщується на A4 і скільки аркушів знадобиться. * Внизу — підсумок «До друку: N цінників на M аркушах · шаблон «…»» і кнопки **Закрити** / **Друк · N**. Після **Друк** відкривається вибір принтера; поле «Копій» у ньому множить кожен цінник із таблиці. Докладніше про вікно друку й поради щодо термопринтера — у статті [[posplus:pro:servis:redaktor-tsinnykiv|Редактор цінників]]. =====Імпорт / експорт===== **Експорт** (потрібне право на експорт даних) — зберігає **поточний відображений список** (з урахуванням активного пошуку/фільтра/категорії, а не лише позначені рядки) у файл: `.xlsx`, `.xls`, `.xml`, `.txt` або `.csv` — формат визначається обраним у діалозі збереження розширенням. Експортуються лише видимі колонки списку; ім'я файлу за замовчуванням — `Export_РРРР-ММ-ДД`. **Імпорт** (потрібне право на редагування товарів) — відкриває окремий екран **«Імпорт товарів»**: {{ :posplus:pro:dovidnyky:tovary-11-import.png?direct |Вікно «Імпорт товарів з Excel/CSV»}} - **Обрати файл…** — вибір файлу `.xlsx` чи `.csv` (файл можна й перетягнути у вікно). Кнопка **Завантажити шаблон** зберігає порожній `.xlsx` із рядком заголовків і одним прикладом рядка. - **Завантажити і перевірити** — парсить файл і звіряє з довідниками, **нічого ще не пишучи в базу**; результат — таблиця-перегляд із колонками ``✓`` (позначка до імпорту), ``#`` (номер рядка Excel), **Статус** (**НОВИЙ** / **ОНОВИТИ** / **ПОМИЛКА**), Назва, Од., Артикул, Штрихкод, Категорія, ПДВ, Собівартість, Ціна, **Повідомлення** (⚠ попередження або ❌ помилки текстом). Над таблицею — перемикачі **Усі** / **Нові** / **Оновлення** / **Помилки** і кнопки **Відмітити всі видимі**, **Зняти всі**. - **Склад для цін** — якщо обрано конкретний склад (не «— не записувати ціни —»), із колонок собівартості/ціни файлу заповнюються поточні ціни на цьому складі; якщо у файлі є ціни, а склад не обрано — перед запуском з'явиться попередження «У файлі є ціни, але не обрано склад. Ціни не будуть записані. Продовжити?». - **Генерувати артикули** — для нових рядків (не дублікатів) із порожнім артикулом підставляє код виду `IMP-РРРРММДДГГХХСС-NNNN`. - **Імпортувати · N** — запускає власне запис у фоновому потоці з прогрес-баром; після завершення — вікно **Імпорт завершено** з числами «створено», «оновлено», «пропущено», «з помилками», записаними також у журнал імпортів (кнопка **Журнал імпортів**) і в аудит. **Розпізнавання колонок.** Перший рядок файлу — заголовки; кожен заголовок (регістр не важливий) зіставляється з одним із логічних полів за списком синонімів: ^ Поле ^ Розпізнавані заголовки ^ | Назва (обов'язкове) | name, назва, найменування, товар, наименование | | Одиниця виміру (обов'язкове) | unit, одиниця, од, одиниця виміру, ед.изм, ед изм | | Артикул | article, артикул, код товару, sku | | Штрихкод | barcode, barcodes, штрихкод, штрих-код, шк, штрихкоди | | Категорія | category, категорія, категория, група, group | | Ставка ПДВ | vat_rate, пдв, ндс, ставка пдв, vat | | Собівартість | price_cost, собівартість, закупівельна ціна, cost | | Ціна реалізації | price_retail, ціна, роздрібна ціна, retail, роздріб, цена | | Бренд | brand, бренд, марка, торгова марка | | Постачальник | supplier, постачальник, поставщик | | Країна | country, країна, страна, країна походження | | УКТЗЕД | uktzed, уктзед, код уктзед | | Акциз | excise, акциз, excise_tax_rate, акцизний | | ЄДРПОУ | edrpou, єдрпоу, едрпоу | Файл без колонок **Назва** і **Одиниця виміру** відхиляється одразу, до розбору рядків. Рядок, де порожні одночасно назва, артикул і штрихкод, вважається порожнім і пропускається мовчки. Категорія/бренд/постачальник/країна/ставка ПДВ, яких немає в довідниках, не блокують рядок — товар імпортується з порожнім (чи дефолтним для ПДВ) значенням і попередженням у колонці Повідомлення. **Поведінка при дублікатах артикула/назви.** Дублікат шукається за пріоритетом: спершу за **артикулом** (без урахування регістру, і лише якщо він не виглядає як раніше згенерований системою — не починається з `IMP-`), інакше — за парою **назва + одиниця виміру**. Знайдений збіг позначає рядок статусом **ОНОВИТИ**. Під час самого імпорту на кожному такому рядку (доки не обрано варіант «…всі») з'являється вікно **«Товар уже є в базі»** (назва, артикул і рядок файлу, поля «було → стане») з кнопками **Оновити** / **Оновити всі** / **Пропустити** / **Пропустити всі**. Оновлення перезаписує назву, одиницю, ПДВ, категорію, бренд, постачальника, країну, УКТЗЕД, ознаку акцизу та ЄДРПОУ — **артикул наявного товару при цьому не змінюється**. **Поведінка при дублікатах штрихкоду.** Один осередок штрихкоду може містити кілька кодів через `;`, `,`, `|` або таб — кожен розбирається окремо і нормалізується (прибираються пробіли/табуляція, «розпакування» Excel-показу числа в науковій нотації, обрізання до 50 символів). Якщо саме цей товар уже має такий штрихкод — код просто пропускається без помилки. Якщо штрихкод належить **іншому** товару і зберегти його не вдається — сам товар усе одно створюється/оновлюється, а конфлікт лише додається попередженням у колонку **Повідомлення** («ШК "…": <текст помилки>») — імпорт товару через це не зупиняється.