Прайс-лист для клієнтів: як влаштований файл XLSX і CSV

24 хв

Розмова з підтримкою — замість читати: навіщо це потрібно, що налаштувати і що ви отримаєте.

Прайс-лист для клієнтів програма збирає сама. Ви один раз задаєте, які колонки має містити файл і як вони називаються, — далі вона на кожному прогоні збирає файл наново, з поточними цінами й наявністю з каталогу, у форматі XLSX або CSV. Це найпоширеніший тип вивантаження в програмі.

Ця стаття — про сам файл: із яких колонок він складається, що потрапляє в комірку, чим XLSX відрізняється від CSV і як готовий файл доїжджає до покупця. Про взагалі, про умови відбору товарів і про те, чому конкретний товар не потрапив у файл, розказано в загальній статті про вивантаження.

Вікно
«Вивантаження даних», шаблон типу «Прайс-лист (XLSX, CSV)»
Право доступу
доступ до вікна — одне право на список, на картку шаблону і на кнопку «Перевірити»
Підготувати
наповнений каталог і категорії з назвами тією мовою, якою вивантажуєте: категорія без назви цією мовою вирізає з файла всі свої товари

Де це у програмі

Меню
Довідники → Операції → Вивантаження даних
Робочий стіл
ярлик «Вивантаження», якщо його не прибрали зі столу — ярлики персональні
Картка шаблону
виділити рядок списку → кнопка-олівець у тулбарі; або кнопка-олівець, що зʼявляється на рядку при наведенні. Заголовок вікна — «Додаткове налаштування ‹назва шаблону›»
Новий прайс-лист
кнопка «Додати» → група «Файл прайс-листа» → пункт «Прайс-лист (XLSX, CSV)»

Група «Файл прайс-листа» стоїть у меню «Додати» першою, і в ній лише два пункти: сам «Прайс-лист (XLSX, CSV)» і фід для майданчика prom.ua у форматі XLS. У новому шаблоні в полі «Імʼя файлу» вже стоїть export_price_summary.xlsx — його варто змінити на те, що буде зрозуміло клієнтові. Очистити поле повністю теж можна: тоді програма візьме те саме імʼя за замовчуванням, і файл на постійному посиланні імені не змінить.

У картці прайс-листа три вкладки:

  • «Вибір полів» — конструктор колонок файла;
  • «Налаштування» — формат, CSV, галочки «Що вивантажувати», роздільники, розсилка;
  • «Обмеження вивантаження (фільтр)» — умови відбору. Тут дві внутрішні вкладки: «Товари базового каталогу» і «Товари з прайс-листів». Друга є тільки в цьому типі шаблону.

Вкладка «Налаштування» працює в режимі : кнопки «Зберегти» там немає, а в нижній смузі по черзі зʼявляються «Збереження…» і «Усі зміни збережено». Кожен клік по галочці одразу йде в базу.

Кнопка «Вивантажити» у шапці картки запускає бойовий прогін. Перед запуском вона перепитує й називає масштаб: «Запустити вивантаження. У файл піде товарів: N. Готовий файл замінить поточний за постійним посиланням.» — тобто якщо клієнт уже забирає прайс за цим посиланням, він отримає те, що ви щойно наробили. Підтвердили — тека шаблону в хмарі очищується, туди лягає новий файл, посилання оновлюється. Щоб просто подивитися результат правки, тисніть сусідню кнопку-колбу «Перевірити»: вона пише в окремий файл і нікуди його не надсилає. Той самий діалог із цифрами відкривається й при запуску з рядка списку шаблонів — якщо його не вимкнули на весь акаунт у вікні «Стоп-правила вивантаження» (про запуск і зведення).

З чого складається файл

Колонки файла задаються на вкладці «Вибір полів». Сітка «Вибрані поля» — це і є майбутня таблиця клієнта: скільки рядків у сітці, стільки колонок у файлі. З трьома винятками, про які нижче: макрос «Атрибути товару» і галочка «Виводити значення за контрагентами» розкладають один рядок сітки на багато стовпців, а режим «Вивантажувати лише товари з прайсів» викидає з файла всі поля базового каталогу.

Кнопка «Додати поле до розвантаження» відкриває палітру полів із рядком пошуку «Пошук поля...» (нічого не знайшлося — палітра пише «Нічого не знайдено»). Поля в палітрі згруповані за трьома джерелами:

  • «Товари з базового каталогу» — усі колонки сітки товарів, разом з атрибутами, виведеними в сітку. Джерело цих полів — ваш ;
  • «Товари з прайс-листів» — усі колонки сітки рядків прайсів постачальників;
  • «Макро підстановки» — девʼять службових полів, яких у сітках немає.
Розкрита палітра полів із групами джерел
1Поле пошуку «Пошук поля...»
2Заголовок групи «Товари з базового каталогу»
3Заголовок групи «Макро підстановки»
  1. Пошук швидко фільтрує довгий список полів за назвою.
  2. Група «Товари з базового каталогу» містить стандартні поля товару.
  3. Група «Макро підстановки» містить розрахункові поля та посилання.

Ось що дає кожен третьої групи:

Поле в палітріЩо буде в колонці
Посилання на фото товаруусі фото товару одним рядком через роздільник посилань
Посилання на відео товаруусі відео так само
Всі коди категорій де знаходиться товарID категорій через кому
Всі коди категорій для товару (повна ієрархія ID)шлях ID від кореня дерева
Всі назви категорій де знаходиться товарназви категорій через роздільник категорій
Назва категорії, рівень Nназва категорії потрібного рівня окремою колонкою
Атрибути товарурозкладається на окрему колонку по кожному атрибуту
Атрибути товару із прайсуте саме по атрибутах із прайсів постачальників
Своя формулазаготовка під власний вираз. Додається не порожньою: у «Формулу» підставляється зразок CONCAT_WS(" ", "String1", "String2", "..."), і якщо його не переписати, у файл поїде рядок String1 String2 ...

«Свою формулу» і «Назву категорії, рівень N» можна додавати скільки завгодно разів — програма щоразу заводить нове поле. Решту полів двічі не додати: повтор мовчки відхиляється, а в палітрі таке поле показане як уже додане.

Заголовок колонки пишете ви

Перший рядок файла — це колонка сітки «Назва поля», і більше нічого. Не назва поля з довідника, не системне імʼя: коли ви додаєте поле, у «Назву поля» підставляється назва з палітри, а далі ви правите її прямо в комірці. Клієнт побачить рівно те, що там написано. Порожня «Назва поля» дає порожній заголовок у файлі, і саме так виходять таблиці зі стовпцем без підпису.

Решта колонок сітки керує тим, як стовпець виглядає:

  • «Порядок» — місце колонки у файлі. Змінюється двома способами: стрілками в самому рядку і стрілками тулбара («Перемістити вибрану колонку вище» / «Перемістити вибрану колонку нижче»);
  • «Ширина» — ширина стовпця в XLSX, за замовчуванням 15 знаків. У CSV не застосовується;
  • «Джерело» — звідки поле, з кольоровою крапкою;
  • «Формула» — вираз, який рахує значення комірки;
  • «Сортування товарів» — номер цього поля в сортуванні файла;
  • «Виводити значення за контрагентами» — розкладає одну колонку на стовпець по кожному постачальнику;
  • «Вн. назва поля» — системне імʼя, тільки для читання.
Вкладка «Вибір полів» картки шаблону «Експорт з РРЦ»
1Кнопка «Додати поле до розвантаження»
2Стрілки переміщення колонки
3Колонка «Назва поля»
4Колонка «Формула»
5Колонка «Порядок»
  1. Кнопка «Додати поле до розвантаження» відкриває палітру доступних полів.
  2. Стрілки переміщують обране поле вище чи нижче у списку.
  3. «Назва поля» — підпис колонки, який побачить клієнт у файлі.
  4. «Формула» задає розрахункове значення поля, наприклад ціну з урахуванням РРЦ.
  5. «Порядок» визначає позицію колонки у вивантаженому файлі.

Кошик у рядку прибирає колонку, але спершу перепитує: «Видалити колонку з шаблону? Формулу та налаштування колонки буде втрачено.» Формулу після цього не відновити — якщо вона складна, скопіюйте текст перед видаленням.

Скільки колонок брати — вирішуєте ви, обмеження немає. Типовий прайс для клієнта — невелика таблиця на пʼять-вісім стовпців, а не вивантаження каталогу з усіма полями.

Що потрапляє в комірку

Значення поля проходить кілька перетворень, і знати про них варто, бо клієнт побачить саме результат.

  1. Порожнього місця не буває. Кожне поле обгортається так, що замість «немає значення» у файл іде порожня комірка, а не слово NULL.
  2. Ціни заокруглюються до двох знаків, числові поля — до цілого. Це стосується полів із типом «ціна» і «число» в довіднику полів: «Ціна», «Ціна собівартість», «Ціна РРЦ», «Стара ціна», «Ціна акція», «Ціна з прайс-листа». У XLSX будь-яка з цих колонок пишеться числом, а не текстом, — Excel одразу підсумовує її й сортує як число.
  3. З текстових полів вирізаються перенесення рядка й табуляція — саме тому довгий опис товару не розриває CSV на кілька рядків.
  4. Довгий текст в XLSX обрізається на 32 767 символах: це межа самого формату, не програми.

Колонка з формулою всі ці правила обходить: результат формули йде у файл таким, як його порахувала база, без заокруглення. Тому заокруглення пишіть усередині самої формули.

Формула в колонці

Формула потрібна, коли готового поля немає: віддати клієнту РРЦ, а якщо її немає — звичайну ціну; склеїти назву з артикулом; перерахувати ціну за курсом. Пишеться вона прямо в колонці «Формула» сітки полів, без квадратних дужок (у XML-шаблонах формулу беруть у [[ … ]] — тут ні).

Поля підставляються макросами виду {‹назва сітки›: ‹назва поля›}. Живий приклад із робочого шаблону — колонка з ціною:

IF({Товар БК: Ціна РРЦ} > 0, {Товар БК: Ціна РРЦ}, {Товар БК: Ціна})

Це читається як «якщо заповнена — бери її, інакше бери звичайну ціну». Так само працюють макроси до рядків прайсів ({Прайс: Ціна}) і до атрибутів товару — {Атрибут БК: Колір} виводить один атрибут окремим стовпцем.

Курс валюти підставляється макросом {CURRENCY_RATE_USD}; у нього є два синоніми — російськомовний {КУРС_ВАЛЮТЫ_USD} й український {КУРС_ВАЛЮТИ_USD}, усі три працюють однаково і в колонках-формулах, і в довільних значеннях. Курс береться з довідника валют заокругленим до двох знаків — для валют із дрібним курсом це помітно спотворює перерахунок.

Колонка виходить порожньою, а прогін іде далі. Кожна формула проходить перевірку безпеки, і та шукає в тексті службові слова SQL простим збігом підрядка, не розбираючи, де вони стоять. Не пройшла перевірку — програма підставляє в цю колонку порожнє значення, решта файла формується як звичайно, а в журналі зʼявляється рядок із назвою колонки: «Формулу колонки «‹назва›» відхилено перевіркою безпеки — колонку вивантажено порожньою». Тобто пропажу видно, але тільки якщо відкрити журнал прогону. Спотикаються на звичайних англійських словах усередині лапок: CONCAT("Updated: ", p.name) блокується через update, REPLACE(p.name, "Insert", "") — через insert, а CONCAT("Reunion ", p.name) — через union. Переписуйте такі формули без цих слів.

Перевірка стосується колонок із базового каталогу й макросів. У колонках із сітки «Товари з прайс-листів» формула йде в запит без неї: там таке слово колонку не обнулить, зате може зламати весь прогін.

Як подивитися, що вийде

Кнопка-колба «Перевірити» в шапці картки робить пробний прогін на одному товарі й показує результат парами «колонка = значення». Вона пише в окремий файл, нічого не надсилає й не чіпає робоче посилання — це єдиний безпечний спосіб побачити результат правки. Прогін пройшов чисто — унизу зʼявиться «Помилок не знайдено: вивантаження сформовано коректно, усі макроси підставлено.» Для XLSX після ваших колонок може бути ще кілька сотень порожніх пар — це слід пробного режиму бібліотеки Excel, про який ідеться нижче.

Вікно «Перевірка шаблону вивантаження» з результатом пробного прогону
1Поле «ID товару»
2Підсумкове повідомлення перевірки
3Пари «колонка = значення»
  1. Поле «ID товару» — можна лишити порожнім, тоді береться перший товар, що підходить під умови вивантаження.
  2. Підсумкове повідомлення перевірки — одразу видно, чи знайдено помилки в шаблоні.
  3. Пари «колонка = значення» — результат підстановки формул і макросів для конкретного товару.

Синтаксична помилка у формулі зупиняє весь файл. Забута кома в IF або незакрита дужка ламають не одну колонку, а весь запит до бази: файл не формується взагалі. У журналі зʼявляється червоний рядок «Помилка отримання товарів!», і він же забарвлює картку операції — прогін із такою помилкою зеленим більше не показується. Останнім рядком журналу при цьому однаково стане «Вивантаження даних завершено», а дата прогону в списку оновиться, тож орієнтуйтеся на колір картки й на сам файл — або проганяйте кожну правку формули кнопкою «Перевірити».

Скільки рядків буде у файлі

За замовчуванням один рядок — це один товар базового каталогу, а порядок рядків такий: категорія, потім виробник, потім назва. Своє сортування задається колонкою «Сортування товарів» у сітці полів; поля-макроси в сортуванні не беруть участі.

Мову файла задає поле «ID мови» в картці «Обмеження вивантаження» на тій самій вкладці «Налаштування». Порожнє поле означає мову каталогу за замовчуванням, а не ту, якою ви зараз дивитеся програму, — і саме цією мовою в категорій має бути назва, інакше вони заберуть свої товари з файла. Явно мову задано лише в 13 шаблонах зі 159, тож у більшості випадків це «якась мова за замовчуванням», і перевірити її варто до першої відправки.

Далі все залежить від чотирьох галочок у картці «Що вивантажувати» на вкладці «Налаштування».

Картка «Що вивантажувати» з прапорцями налаштувань
1Прапорець «Створювати рядки з урахуванням контрагентів»
2Прапорець «Вивантажувати лише товари з прайсів»
3Прапорець «Вивантажувати посилання» (увімкнено)
  1. Прапорець розбиває вивантаження на окремі рядки для кожного контрагента.
  2. Прапорець залишає у файлі тільки товари, що прийшли з прайс-листів.
  3. Прапорець увімкнено — посилання на товар потраплять у вивантажений файл.
ГалочкаЩо змінюється у файлі
«Створювати рядки з урахуванням контрагентів»товар повторюється рядком на кожну позицію прайсу, привʼязану до нього. Виходить
«Вивантажувати з прайс-листів, тільки ті товари від яких була взята ціна для товару БК»з усіх позицій прайсів береться саме та, з якої стоїть ціна товару
«Вивантажувати хв. ціну на однакові товари у межах контрагента»по кожній парі «постачальник + товар» лишається рядок із найменшою собівартістю
«Вивантажувати лише товари з прайсів»джерелом рядків стає не каталог, а прайси постачальників

Остання галочка поводиться жорсткіше, ніж здається. Коли ввімкнено «Вивантажувати лише товари з прайсів», усі колонки з базового каталогу мовчки випадають із файла — разом зі своїми заголовками. Тобто шаблон, зібраний із полів каталогу, після однієї галочки віддасть клієнтові файл із іншим набором стовпців.

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

Вкладка «Товари з прайс-листів»

На вкладці «Обмеження вивантаження (фільтр)» у прайс-листа є друга внутрішня вкладка — «Товари з прайс-листів». Це конструктор умов по полях сітки рядків прайсів: під ним програма переказує зібрану умову людською мовою, поруч кнопки «Очистити все» і «Зберегти». Заповнена вона у 23 шаблонах зі 159.

Набір операторів тут вужчий, ніж на сусідній вкладці по товарах каталогу. Для тексту доступні тільки чотири умови — «дорівнює», «не дорівнює», «порожній рядок», «не порожній рядок». Умови «містить» немає, окремого типу «дата» теж немає, дата обробляється як текст. Тобто «назва рядка прайсу містить …» тут задати не вийде.

Вкладка «Обмеження вивантаження (фільтр)» шаблону «хр-ки» з умовою за назвою рядка прайсу
1Вкладка «Товари з прайс-листів»
2Оператор умови
3Переказ умови людською мовою
  1. Вкладка «Товари з прайс-листів» — умови фільтра за рядками прайс-листів, окремо від умов базового каталогу.
  2. Оператор умови — випадає лише чотири варіанти, доступні для текстового поля.
  3. Переказ умови людською мовою — конструктор одразу пояснює, що саме буде відфільтровано.

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

Прайс деревом категорій

Окремий режим — галочка «Вивантажувати рядки з категоріями, нижче товари + угруповання» в картці «Вигляд відображення інформації». Файл виходить не рівною таблицею, а деревом: рядок із назвою категорії, під ним її товари, і все це згортається в Excel. Під галочкою відкривається блок оформлення — шрифти, кольори, межі, свій файл-шаблон. Режим робочий, але по всьому парку акаунтів його не ввімкнув жоден шаблон, тож перш ніж віддавати такий файл клієнтові, перевірте результат на кількох категоріях.

Колонка на кожного постачальника

Галочка «Виводити значення за контрагентами» в рядку колонки перетворює один стовпець на стовпець по кожному постачальнику. Заголовок такої колонки — два рядки в одній комірці: зверху назва контрагента, під нею назва поля. Яке саме поле контрагента взяти для верхнього рядка, задає настройка «Імʼя поля із справ. контрагентів для заголовка колонок» (за замовчуванням — назва).

У матрицю потрапляють активні контрагенти з груп «постачальник» і «конкурент», у яких є активне джерело прайсу. Якщо на вкладці «Товари з прайс-листів» стоїть умова за контрагентом, список звужується до нього.

Коли ввімкнено «Вивантажувати посилання», ціна кожного постачальника в матриці стає гіперпосиланням на сторінку товару в нього на сайті. Поза матрицею та сама галочка робить гіперпосиланням будь-яку колонку, у системному імені якої є url, — наприклад «Посилання на товар». Стоїть вона увімкненою в новому шаблоні.

Рахуйте колонки заздалегідь: десять постачальників і три цінові поля — це тридцять стовпців плюс власні.

Кольори цін

У XLSX програма розфарбовує дві колонки з прайсу — «Ціна з прайс-листа» і «Ціна собівартість»: нижча за вашу — червона, вища — зелена, однакова — чорна. Еталон порівняння — колонка «Ціна» з базового каталогу, тож без неї в шаблоні кольорів не буде. Звичайна «Ціна» з прайсу не фарбується. У CSV кольорів немає: формат їх не має взагалі.

Порівняння не переводить валюти. «Ціна з прайс-листа» лежить у валюті постачальника, а ваша «Ціна» — у валюті акаунта. Тому в постачальника, який дає ціни в доларах, уся колонка буде червоною незалежно від того, дорожче в нього чи дешевше: 92 менше за 4123 завжди. Кольору можна вірити тільки на колонці «Ціна собівартість» — вона вже приведена до валюти акаунта. Самі цифри у файлі при цьому правильні, бреше тільки колір.

Ціна і валюта у файлі

Скільки цін віддати клієнтові — вирішуєте ви, обмеження немає: скільки цінових колонок додали, стільки й поїде. Із базового каталогу доступні «Ціна», «Ціна РРЦ», «Ціна собівартість», «Стара ціна», «Ціна акція» і «Валюта». Із рядків прайсів — ті самі плюс «Ціна з прайс-листа», «Ціна мінімальна», «Ціна середня», «Ціна максимальна», «Курс валюти», «Прибуток» і «Прибуток %».

Два поля з підписами, схожими на ціну, цінами не є. «Фіксована ціна» — це прапорець «ціну зафіксовано, не оновлювати з прайсу», і в файл він іде як 0 або 1. «Динаміка ціни» — відсоток зміни, і він заокруглюється до цілого. Обидва є тільки в базовому каталозі, у сітці рядків прайсів їх немає.

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

Колонки «Ціна» і «Валюта», узяті з прайс-листа, описують різні речі. Ось справжній рядок постачальника з демо-акаунта: «Ціна з прайс-листа» — 92,00, «Валюта» — USD, «Курс валюти» — 41,55, «Ціна собівартість» — 3 823,00, «Ціна» — 4 123,00. Тобто в полі «Ціна» вже гривні (перераховані за курсом і з націнкою), а в полі «Валюта» досі стоїть валюта постачальника. Поставите ці дві колонки поруч — клієнт побачить «4123 USD». Правильна пара з колонкою «Валюта» — тільки «Ціна з прайс-листа»: це і є ціна у валюті постачальника. Програма про таке не попереджає й нічого не перевіряє, ловиться це тільки очима у файлі.

У полів базового каталогу цієї пастки немає: у вивантаженні «Валюта» товару завжди замінюється кодом основної валюти акаунта, тому вона завжди відповідає ціні поруч.

Галочка «Вивантажувати хв. ціну на однакові товари у межах контрагента» рахує чесно: вона порівнює собівартість, а собівартість уже приведена до валюти акаунта, тобто складання різних валют тут не відбувається.

Десятковий роздільник у цінах завжди крапка — від сервера й від його налаштувань він більше не залежить. Якщо клієнтові потрібна кома, її доведеться зробити на його боці: у налаштуваннях імпорту або регіональних параметрах Excel.

XLSX чи CSV

Формат обирається радіо-кнопками в картці «Вибір формату»: XLSX, XLS або CSV. За замовчуванням стоїть XLSX, і саме його обрали 123 шаблони зі 159; CSV — 35; XLS — рівно один. Формати взаємовиключні: обрали інший — попередній знімається сам.

Різниця не косметична: XLSX і XLS пише одна бібліотека, CSV — зовсім інша, звідси всі відмінності.

Картки «Вибір формату» та «Налаштування CSV» на вкладці «Налаштування»
1Обрана радіо-кнопка XLSX
2Поле «Розділювач стовпців»
3Поле «Символ обрамлення»
  1. XLSX обрано за замовчуванням — це формат шаблону «Експорт з РРЦ».
  2. «Розділювач стовпців» діє лише для формату CSV і порожній за замовчуванням.
  3. «Символ обрамлення» так само стосується тільки CSV-вивантаження; порожнє поле означає подвійну лапку.
XLSX / XLSCSV
Аркуш у книзіодин, з назвою JumperSheet1поняття аркуша немає
ШапкаCalibri 10, жирна, зелена; перший рядок закріплений — при прокручуванні лишається на місцізвичайний перший рядок
Ширина колонокз колонки «Ширина»не застосовується
Кольори цін і гіперпосиланнятакні, звичайний текст
Порожні стовпці в шапціна сервері без активованої ліцензії бібліотеки Excel — 256 комірокрівно стільки, скільки колонок
Межа довжини комірки32 767 символівнемає
Розширення файлаяк задано в імені.xlsx в імені міняється на .csv — але тільки в посиланні. Файл, який іде по FTP або вкладенням у лист, зберігає розширення з поля «Імʼя файлу», тож для цих шляхів впишіть .csv руками

Рядок про 256 комірок варто пояснити окремо, бо це не поведінка програми. Бібліотека, якою пишеться XLSX, комерційна, і без активованої ліцензії вона працює в пробному режимі: перший рядок вона забирає собі й сама розтягує його на всю ширину старого формату, до стовпця IV. Тоді у файлі Ctrl+End веде кудись у кінець аркуша, а «форматувати як таблицю» захоплює дві з половиною сотні порожніх стовпців. На дані це не впливає. На демонстраційному акаунті так і є; якщо ви бачите таку шапку у своєму файлі — це привід звернутися в підтримку, а не налаштування шаблону. Тимчасовий обхід один: віддавати CSV.

Налаштування CSV

Картка «Налаштування CSV» видна завжди, навіть коли обрано XLSX, — на XLSX ці три поля просто не діють.

Порожнє поле «Розділювач стовпців» означає табуляцію — і це найгірший варіант для клієнта: подвійний клік по такому файлу відкриває Excel одним стовпцем. Задайте кому або крапку з комою явно. Слово TAB, написане в полі, програма замінює на справжню табуляцію. І ще: роздільник має бути рівно одним символом. Поле дозволяє ввести більше, але у файл піде тільки перший символ, а в журнал ляже попередження: «Розділювач стовпців «‹що ввели›» неприпустимий: потрібен один символ. Використано «‹що взяли›»».

«Символ обрамлення» при порожньому полі — подвійна лапка. Обрамлення ставиться саме там, де воно потрібне: коли значення містить роздільник, лапку або перенесення рядка.

Полів у картці два — «Розділювач стовпців» і «Символ обрамлення». Кінець рядка задати нічим і не треба: рядки CSV завжди завершуються переведенням рядка.

CSV пишеться в UTF-8 з . Це саме те, чого чекає Excel у Windows: клієнт відкриває файл подвійним кліком і бачить кирилицю, а не набір випадкових символів. Пояснювати покупцеві про «Дані → З тексту» більше не потрібно.

Як файл доїде до клієнта

Спочатку розклад: файл оновлюється тільки прогоном

Програма не перераховує прайс сама по собі. Файл збирається наново під час прогону — і більше ніколи. Поки прогону не було, за посиланням, на FTP і в листі лежить те, що зібралося минулого разу.

Щоб файл оновлювався без вас, увімкніть автоматичний прогін: кнопка «Налаштування розкладу» в картці «Повʼязані налаштування» на вкладці «Налаштування». Частота розкладу — це і є частота, з якою клієнт бачить нові ціни: розклад раз на добу означає, що вдень ціни у файлі вчорашні.

Картка «Повʼязані налаштування» на вкладці «Налаштування» шаблону «Експорт з РРЦ»
1Кнопка «Налаштування розкладу»
2Кнопка «Налаштування FTP»
  1. Кнопка «Налаштування розкладу» відкриває вікно автоматичного запуску вивантаження за розкладом.
  2. Кнопка «Налаштування FTP» відкриває параметри автоматичної відправки файлу на FTP-сервер.

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

Імʼя файла задається в картці шаблону, і в ньому працюють три макроси: {DATE} — дата, {DATETIME} — дата з часом, {TIME} — час. Скісна риска в імені замінюється крапкою.

{DATE} дає дату у форматі день.місяць.рік: 18 серпня 2026 року виглядає як 18.08.2026. Формат однаковий в усіх типах вивантаження — і в прайс-листі, і в YML, і в 1С.

Галочка «Архівувати в ZIP» пакує готовий файл, дописуючи .zip до імені.

Посилання на готовий файл

Основний спосіб: адреса готового файла показується в колонці «Файл» списку шаблонів, поруч є кнопка копіювання. Посилання заповнене у 154 шаблонах зі 159, тобто так роблять майже всі.

Адреса в колонці «Файл» після кожного прогону трохи змінюється — до неї дописується новий службовий параметр. Але та адреса, яку ви вже дали клієнтові, продовжує працювати: у сховищі це той самий файл, доки не змінилося його імʼя.

Не ставте {DATE} в імʼя файла, якщо віддаєте прайс посиланням. Тека шаблону в хмарі очищується перед кожною заливкою цілком, а завтрашній файл отримає нове імʼя — і вчорашня адреса, яка вже в клієнта, перестане відкриватися. Дата в імені має сенс тільки для FTP, де файли накопичуються.

FTP

Спрацьовує, якщо в «Налаштуваннях FTP» (кнопка в картці «Повʼязані налаштування») заповнено адресу сервера й імʼя користувача. Спосіб рідкісний: шість шаблонів зі 159.

Лист на пошту

Розсилка прайса вкладенням — можливість, якої немає в жодного іншого типу вивантаження. Вона вмикається одним полем: у картці «Розсилка E-Mail» кнопкою-олівцем обирається «Шаблон розсилки» — той, у якому вже зібрано список отримувачів. Без цього поля пошта не працює взагалі.

Картки «Розсилка E-Mail» та «Пов'язані налаштування» на вкладці «Налаштування» шаблону
1Поле «Шаблон розсилки»
2Галочка «Архивувати вкладення в ZIP»
3Кнопка «Налаштування FTP»
  1. Поле «Шаблон розсилки» — лише для читання, кнопка-олівець поруч відкриває вибір шаблону листа.
  2. Галочка «Архивувати вкладення в ZIP» — пакує файл вивантаження перед надсиланням поштою.
  3. Кнопка «Налаштування FTP» — суміжні налаштування шаблону: розклад, FTP, генератор описів.

Що важливо знати заздалегідь:

  • файл іде повторно на кожному прогоні. Перед відправкою програма скидає в отримувачів позначку «лист надіслано» і вмикає розсилку наново. Тобто шаблон із розкладом раз на день означає лист клієнтові щодня;
  • за один прогін обробляється до 100 отримувачів;
  • вкладення пакується в ZIP — за це відповідає галочка «Архивувати вкладення в ZIP» поруч, і вона увімкнена за замовчуванням;
  • у журналі прогону зʼявляється окремий рядок «Розсилка листів ел. поштою».

Чого прайс-лист не робить

  • Не рахує націнку. У файл іде значення поля таким, як воно лежить у каталозі. Іншу ціну задають формулою в колонці або правилами ціноутворення раніше, при оновленні каталогу з прайсів.
  • Не кладе фотографії у файл. Окремою колонкою можна вивести посилання на фото, але самих картинок у прайсі не буде. Галочка «Вивантажувати фото» відповідає за інше — за заливку файлів фотографій на FTP, і в хмарній версії її в картці немає зовсім: там вона нічого не робила б.
  • Не перевіряє, чи відкриється файл у клієнта. Кодування, роздільник і формат — на вашій відповідальності: програма чесно збере CSV із табуляцією замість роздільника й не скаже жодного слова.
  • Не зберігає попередні файли. Тека шаблону в хмарі очищується перед кожною заливкою, версій «як було минулого тижня» немає. Потрібен архів — додайте {DATE} в імʼя файла і віддавайте по FTP.
  • Не керує виглядом числа. Десятковий роздільник у цінах завжди крапка, і змінити його в шаблоні нічим.
  • Не вміє задати роздільник рядків. Поле в картці «Налаштування CSV» є, але воно нічого не змінює.

Що робити, коли у файлі не те

Розбір частих проблем
Що ви бачитеЧому такЩо зробити
Клієнт каже, що у файлі ціни за минулий тиждень Файл збирається тільки прогоном, а розклад у шаблоні не ввімкнено — за посиланням лежить те, що зібрали руками останнього разу Увімкніть автоматичний прогін кнопкою «Налаштування розкладу» в картці «Повʼязані налаштування» (про розклад)
Посилання, яке ви дали клієнтові, перестало відкриватися В імені файла стоїть {DATE} або {DATETIME}: тека шаблону чиститься перед кожною заливкою, а новий файл дістав нове імʼя Приберіть макрос дати з імені файла й дайте клієнтові нову адресу (про посилання)
«Помилка отримання товарів!» — червоним рядком у журналі прогону Зламався запит вибірки — практично завжди це синтаксична помилка у «Формулі» однієї з колонок. Порожня «Формула» прогін більше не роняє: така колонка просто виходить порожньою Натисніть «Перевірити» в шапці картки — там буде текст помилки. Рядку «Вивантаження даних завершено» нижче не вірте: файл не сформовано, і картка операції позначена помилкою (про формулу)
«Одну з формул [[ ... ]] у шаблоні складено з помилкою. Перевірте коми між аргументами IF, парність дужок і лапок.» Пробний прогін знайшов синтаксичну помилку. Згадка про [[ ]] до прайс-листа не стосується: тут формули пишуть без дужок Перевірте коми між аргументами IF та парність дужок і лапок у колонці «Формула»
«Формулу колонки «‹назва›» відхилено перевіркою безпеки — колонку вивантажено порожньою» У формулі трапився заборонений підрядок — select, update, insert, union — і перевірка безпеки обнулила саме цю колонку Перепишіть формулу без цих слів, навіть якщо вони стоять усередині лапок (про формулу)
«Файл не сформовано. Спочатку виправте помилку вище — доки вона є, товари у вивантаження не потрапляють.» Пробний прогін не дійшов до формування файла через помилку вище Усуньте помилку, названу рядком вище у вікні перевірки
«Не вдалося прочитати сформований файл для попереднього перегляду.» Файл зібрався, але прочитати його назад не вдалося Перевірте формат і те, що файл справді зібрався: у журналі прогону має бути рядок про заливку файла (налаштування CSV)
«Товар #123 не потрапив у вивантаження: він не проходить умови цього шаблону (фільтр, категорія, наявність, правила).» Товар відсікає одна з умов відбору Пройдіть умови відбору за загальною статтею, а тут додатково перевірте, що категорія товару має назву мовою вивантаження
Клієнт відкрив CSV, а замість кирилиці — набір випадкових символів Файл відкрито не Excel’ом, а програмою, яка не читає BOM: сам файл у UTF-8 з BOM, і Excel у Windows розбирає його правильно Відкрити подвійним кліком в Excel або задати кодування UTF-8 у своєму імпортері (про CSV)
Клієнт відкрив CSV, а весь файл в одному стовпці Поле «Розділювач стовпців» порожнє, а це означає табуляцію Поставте кому або крапку з комою (про CSV)
У XLSX Ctrl+End веде в колонку IV, у шапці сотні порожніх стовпців Бібліотека, якою пишеться XLSX, працює в пробному режимі: без активованої ліцензії вона сама розтягує перший рядок на 256 комірок На дані це не впливає. Зверніться в підтримку — це стан сервера, а не налаштування шаблону; поки що можна віддавати CSV (про формати)
Ціна у файлі є, а валюта поруч чужа Колонки «Ціна» і «Валюта» з прайс-листа описують різне: ціна вже перерахована у вашу валюту, а код валюти лишився постачальника Поруч із «Валютою» ставте колонку «Ціна з прайс-листа» або не беріть «Валюту» з прайсу (про ціну й валюту)
У клієнта збереглося старе посилання з датою, а нове імʼя файла інакше Макрос {DATE} дає 18.08.2026 — день.місяць.рік, як в усіх інших типах вивантаження Для файла, який віддають посиланням, дату з імені краще прибрати зовсім (про доставку)
У файлі стовпець без заголовка У цієї колонки порожня «Назва поля» — саме звідти береться перший рядок Впишіть заголовок прямо в комірку «Назва поля» (про заголовки)
«Видалити колонку з шаблону? Формулу та налаштування колонки буде втрачено.» Підтвердження видалення колонки Формулу після видалення не відновити — скопіюйте її текст, якщо він складний
«Помилка збереження» у нижній смузі картки Автозбереження вкладки «Налаштування» не пройшло Повторіть зміну й переконайтеся, що зʼявилося «Усі зміни збережено»
«Немає доступу до вивантаження даних» Групі користувача не відкрито вікно вивантаження Попросіть власника акаунта відкрити доступ (хто має доступ)
Файл не зʼявився, у журналі теж порожньо Не піднялося розширення для запису Excel — прогін виходить одразу й не пише в журнал нічого Тимчасово перемкніть шаблон у CSV і зверніться в підтримку

Перед тим, як віддати файл клієнтові

Часті запитання

Звідки береться заголовок колонки у файлі?

З колонки «Назва поля» в сітці вибраних полів, і більше нізвідки. Коли ви додаєте поле з палітри, туди підставляється його назва з довідника, але далі ви правите текст прямо в комірці — клієнт побачить рівно те, що там написано. Порожня «Назва поля» дає у файлі стовпець без заголовка.

Скільки цін можна віддати клієнту в одному файлі?

Скільки завгодно: обмеження на кількість цінових колонок немає. Із базового каталогу доступні «Ціна», «Ціна РРЦ», «Ціна собівартість», «Стара ціна» і «Ціна акція», із рядків прайсів — ще й «Ціна з прайс-листа», «Ціна мінімальна», «Ціна середня» та «Ціна максимальна». А от «Фіксована ціна» ціною не є: це прапорець «не оновлювати з прайсу», і у файл він піде як 0 або 1.

Клієнт відкрив CSV, а замість букв — незрозумілі символи. Що робити?

Програма пише CSV у кодуванні UTF-8 з BOM — саме тим, що Excel у Windows розпізнає при подвійному кліку. Якщо символи все одно нечитабельні, файл відкрили не Excel’ом, а програмою, яка BOM ігнорує: там кодування UTF-8 треба вказати вручну.

Чому в шапці XLSX сотні порожніх стовпців?

Це не поведінка програми, а слід пробного режиму комерційної бібліотеки, якою пишеться XLSX: без активованої ліцензії вона забирає собі перший рядок і розтягує його на 256 комірок. На дані це не впливає, але Ctrl+End веде в кінець аркуша, а «форматувати як таблицю» захоплює порожні стовпці. Побачили таке у своєму файлі — зверніться в підтримку; у CSV цього немає в будь-якому разі.

Колонка у файлі порожня, хоча формула написана. Чому?

Формула не пройшла перевірку безпеки. Перевірка шукає службові слова SQL простим збігом підрядка, тому спотикається навіть на звичайних англійських словах усередині лапок: «Updated» блокується через update, «Insert» — через insert, «Reunion» — через union. Прогін при цьому йде далі, а в журналі зʼявляється рядок «Формулу колонки «‹назва›» відхилено перевіркою безпеки — колонку вивантажено порожньою».

Чи можна надсилати прайс клієнтам поштою автоматично?

Так, і це є тільки в цьому типі вивантаження. У картці «Розсилка E-Mail» оберіть «Шаблон розсилки» зі списком отримувачів — далі файл піде вкладенням на кожному прогоні, до ста отримувачів за раз. Вкладення за замовчуванням пакується в ZIP.

Клієнт скаржиться, що ціни у файлі старі. Чому вони не оновилися?

Файл збирається наново тільки під час прогону. Якщо в шаблоні не ввімкнено розклад, за посиланням лежить те, що ви зібрали руками останнього разу, — і так буде скільки завгодно довго. Увімкніть автоматичний прогін кнопкою «Налаштування розкладу» в картці «Повʼязані налаштування»: частота розкладу і є частота, з якою клієнт бачить нові ціни.

У якому форматі макрос {DATE} підставляє дату в імʼя файла?

Ні, тепер формат звичайний: макрос {DATE} дає день.місяць.рік, тому 18 серпня 2026 року виглядає як 18.08.2026 — так само, як в інших типах вивантаження. Для файла, який віддають постійним посиланням, дату з імені краще прибрати зовсім: тека шаблону чиститься перед кожною заливкою, і стара адреса перестане відкриватися.

Суміжні теми

Чи була стаття корисною?