Додаткові поля

20 хв

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

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

Вікно
налаштування програми → плитка «Налаштування таблиць»
Що всередині
таблиці згорнуті списком; розгорніть потрібну — зліва з'явиться перелік її полів, справа — картка налаштувань обраного поля
Де поле з'явиться
у картці запису, у сітці, у фільтрах, у формулах і шаблонах вивантаження
Вікно «Налаштування таблиць»: поля таблиці «Товары (базовый каталог)» і картка налаштувань поля
1Список таблиць
2Додати поле
3Активність
4Назва
5Налаштування поля
  1. Таблиці згорнуті списком — розгортається та, у яку додається поле.
  2. Кнопка «Додати поле» одразу створює колонку в таблиці бази, тому тип обирають з першого разу.
  3. Колонка «А» — активність: вимкнене поле зникає з інтерфейсу, а дані лишаються.
  4. Назва поля — те, що видно в картці, у сітці й у макросах формул.
  5. Праворуч — картка обраного поля: значення за замовчуванням, обовʼязковість, префікс, постфікс, редактор.

До яких таблиць можна додати поле

Поле заводиться не «в програму взагалі», а в конкретну таблицю:

  • Товари (базовий каталог) — найчастіший випадок;
  • Товари з прайс-листів — дані, що приходять від постачальника;
  • Категорії товарів, Виробники товарів;
  • Контрагенти;
  • Документи і Документи (товари) — шапка документа й рядки в ньому;
  • Варіанти товарів (товари-опції), Повідомлення.

Поле товару каталогу й поле товару прайс-листа — це різні поля, навіть якщо назвати їх однаково. Дані з прайсу в каталог переносить пакетне оновлення, і для цього обидва поля мають існувати кожне у своїй таблиці.

Як завести поле

  1. Розгорніть у списку таблицю, у яку додається поле — наприклад, «Товары (базовый каталог)».
  2. Натисніть «Додати поле» — програма спитає тип поля.
  3. Впишіть назву: саме її ви побачите в картці, у сітці й у макросах формул.
  4. Налаштуйте поведінку — див. нижче — і збережіть.

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

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

ТакНіНіТак — колонки в базінемаєНіТакОбрали таблицю,натиснули «Додати поле»і вибрали типУ цій таблиці вже є полез назвою «Нове поле»?Нове поле нестворюється.Повідомлення: поле зтакою назвоюв цій таблиці вже єРядок у списку полівТип «Індикаторвиконання»або «Кнопка»?Колонка в таблиці базиКолонка в сітціКолонка з'явиласяв таблиці бази?Запис поля прибрано.Червоне повідомлення«Операція не виконана!»Колонка в сітці кожногоспівробітникаі назва колонки для кожноїмовиПрава груп на полеРядок поля виділено,назва відкрита дляредагування
Що відбувається після вибору типу. Ліва гілка вгорі — випадок, коли в таблиці вже лежить неперейменоване «Нове поле»: нічого не створюється, програма пояснює чому. Окрема гілка — база не додала колонку: поле не створюється. «Індикатор виконання» й «Кнопка» колонки в базі не потребують

Якщо база не додала колонку, поля не буде. Після кроку з колонкою програма перевіряє, що колонка справді з'явилася в таблиці бази. Якщо її немає, запис поля прибирається зі списку, нового рядка в сітці полів не з'являється, а вгорі праворуч виринає червоне повідомлення «Операція не виконана!». Спробуйте додати поле ще раз.

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

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

Типи полів

ТипДля чого
Рядок текстукороткий текст до 255 символів: код, артикул, примітка одним рядком
Текстдовгий текст без обмеження довжини
Числоціле число
Число (десяткове)число з дробовою частиною
Цінагрошове поле з високою точністю — саме його беруть для другої закупівельної, старої ціни, ціни іншого постачальника
Прапортак/ні: у сітці це галочка, а в картках товару й контрагента — звичайне текстове поле зі значенням 0 або 1
Списокполе з заданим переліком значень; у картках товару й контрагента значення вписують у звичайне текстове поле
Дата / Часдата
Зображення, Файлвкладення з обмеженням типів і розміру
E-Mail, Телефон, Посилання на сайт (URL)текст із перевіркою формату
Парользначення, приховане зірочками
IDпосилання на запис іншої таблиці за номером
Індикатор виконаннясмужка прогресу; не зберігає своє значення, а показує чуже
Кнопкадія просто з рядка таблиці; теж не зберігає значення

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

Два останні типи — «Індикатор виконання» й «Кнопка» — віртуальні: колонки в базі вони не створюють і власних даних не зберігають. За ними не можна ні фільтрувати, ні сортувати, ні вивантажувати їх у файл — вони існують тільки як елемент інтерфейсу в таблиці.

Налаштування поля

НалаштуванняЩо робить
Активністьвимкнене поле зникає з інтерфейсу, дані лишаються
Блок відображеннягрупує поля в списку там, де блоки заведені — у категоріях і товарах прайс-листів. В інших таблицях нове поле блоку не отримує, і це нормально: на показ поля в картці товару, контрагента чи документа блок не впливає
Порядок обробкипослідовність поля серед інших
Значення за замовчуваннямщо показати в порожньому полі. Підставляє його тільки картка категорії; у товарах, контрагентах і документах, а також у пакетному оновленні, формулах і API програма його не застосовує
Тільки для читаннязначення видно, але змінити руками не можна — для полів, які заповнює формула. Пакетне оновлення з прайсів таке поле пропускає, див. нижче
Префікс і Постфіксщо приписати перед значенням і після нього
Значення для списку, що випадаєперелік варіантів для типу «Список»
Багаторядкове, HTML редакторяк редагувати довгий текст: простим полем чи редактором з оформленням
Шаблон заповнення, Спливаюча підказкапідказки для того, хто заповнює картку
Поле займає всю ширинурозтягнути поле на весь рядок картки
Довжина поля, Довжина поля після коми«Довжина поля» є в усіх типів, крім зображення, файлу, ID і прапора; «Довжина поля після коми» — тільки в типу «Число»
Приміткадля себе: навіщо заведене поле

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

Що перезапише значення, вписане руками

Значення поля товару каталогу, яке ви вписали руками, програма окремо не береже. Його можуть переписати пакетне оновлення з прайсів, формула поля й оновлення товарів через API — і зупиняють їх різні ознаки:

Хто пише в полеЩо робитьЩо його зупиняє
Пакетне оновлення з прайсузаписує в поле значення з прайсу«Не оновлювати» в самому товарі — товар пропускається цілком. «Оновлювати, якщо значення порожнє в базовому каталозі» — заповнене значення лишається. «Оновлювати, якщо значення не порожнє у прайсах» — порожнє значення чи нуль у прайсі поле не затирає
Формула поляпри кожному застосуванні переписує значення всім товарам, що підходять під її умову«Не оновлювати» в товарі, а для поля типу «Ціна» — ще й «Фіксована ціна» в товарі. «Тільки для читання» в налаштуваннях поля формулу не зупиняє
Оновлення через APIзаписує поля, передані в запиті«Тільки для читання» — таке поле не записується
Вкладка «Зв'язки полів» вікна «Оновлення базового каталогу» з рядками додаткових полів «Цена_…»
1Рядок додаткового поля
2Порожня «Назва поля з прайс-листів»
3Активність
4Оновлювати, якщо значення порожнє в базовому каталозі
  1. Рядок додаткового поля каталогу, наприклад «Цена_Allo».
  2. Для додаткового поля колонка «Назва поля з прайс-листів» порожня: значення з прайсів не підставляється.
  3. Колонка «Активність» у таких рядків вимкнена.
  4. Колонка з прапорцем «Оновлювати, якщо значення порожнє в базовому каталозі».

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

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

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

Видалення поля

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

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

Це навмисно: умова йде в запит текстом, і після зникнення колонки перестає працювати вся операція цілком, а не лише це правило. Виправити вираз за вас програма не може — прибрати «І поле = …» означає розширити відбір, прибрати «АБО поле = …» — звузити. Тому: приберіть поле з перелічених умов і повторіть видалення.

ТакНіНатиснули видалити полеПоле згадується в умові,написаній руками? —шаблон вивантаження,фільтр, правило, тригер,акція,конфігуратор, пошук,парсерВидалення не виконано.Програма показує перелікмісць,де поле бере участьПрибрати поле з цих умові повторити видаленняЗникають разом із полем:колонка в сітці,налаштуванняспівробітників, права груп,рядки шаблонів, формули,звʼязки парсераПоле видалено
Чому поле іноді не видаляється. Стрілка назад — це не тупик: прибрали згадки, натиснули ще раз

Системні поля програми не видаляються й не перейменовуються — редагувати можна тільки те, що завели ви.

Сценарії

Бачити в каталозі ціну конкретного постачальника поруч зі своєю

Що зробити. Заведіть поле типу «Ціна» у таблиці «Товари з прайс-листів» і ще одне — у «Товари (базовий каталог)». Потім у налаштуваннях пакетного оновлення цього прайсу, у зв'язках полів, знайдіть поле каталогу, у колонці «Назва поля з прайс-листів» вкажіть поле прайсу й увімкніть «Активність».

Що вийде. Поле типу «Ціна» зберігає число з вісьмома знаками після коми. Після прогону пакетного оновлення значення з прайсу переходить у поле каталогу.

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

Поле, яке рахує тільки формула

Що зробити. Заведіть поле в «Товари (базовий каталог)», у картці налаштувань поставте «Тільки для читання» і напишіть для нього формулу.

Що вийде. Оновлення товарів через API це поле не записує. У зв'язки полів пакетного оновлення таке поле не додається, а оновлення за налаштуваннями кожного прайсу й «Примусово оновлювати з цього джерела» його пропускають. Формула при цьому записує значення як завжди.

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

Заповнити поле з прайсу один раз, а далі правити руками

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

Що вийде. Товарам, у яких поле порожнє, значення прийде з прайсу. Там, де поле вже заповнене — з прайсу чи вами, — воно лишиться як є.

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

Внутрішня позначка, за якою відбирають товари

Що зробити. Заведіть у «Товари (базовий каталог)» поле типу «Прапор», наприклад «Перевірено».

Що вийде. У сітці товарів з'являється колонка з галочкою, за якою можна фільтрувати й сортувати, і її можна вивантажити. Колонка додається в налаштування сітки кожного співробітника.

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

Чого додаткові поля не роблять

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

Розбір частих проблем

Що ви бачитеЧому такЩо зробити
Поле не видаляється, показано список місцьна нього посилається умова, написана рукамиприбрати поле з цих умов і повторити видалення
Поля немає в картцізнято «Активність» або закриті права групи на полеувімкнути поле; перевірити права груп
Поля немає в сітціколонка вимкнена в налаштуваннях таблиці цього співробітникаувімкнути колонку в налаштуваннях сітки
Поле видно, але не заповнюєтьсястоїть «Тільки для читання»зняти ознаку або заповнювати формулою чи імпортом
Після перейменування зламалося вивантаженняу шаблоні лишився макрос зі старою назвоювиправити макрос у шаблоні
У поле не вдається вписати дробове числообраний тип «Число» — він цілийзавести поле типу «Число (десяткове)» або «Ціна»
За полем не працює фільтртип «Індикатор виконання» або «Кнопка» — вони віртуальнідля даних, за якими відбирають, брати звичайний тип
Дані з прайсу не потрапляють у поле каталогуце два різні поля різних таблицьналаштувати перенесення в пакетному оновленні
Колега не бачить полезакриті права групи на це полеперевірити права груп
Поле створюється довгопрограма додає колонку у велику таблицю базидочекатися; на каталозі в сотні тисяч рядків це нормально

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

Яке поле завести для другої ціни?

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

Чи можна змінити тип уже створеного поля?

Ні. Заведіть нове поле потрібного типу, перенесіть значення формулою й видаліть старе.

Чому програма не дає видалити поле?

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

Чи з'явиться поле на сайті?

Не саме по собі. Поле треба додати в шаблон вивантаження на сайт або в маркетплейс — тоді воно поїде разом з іншими даними товару.

Чим додаткове поле відрізняється від характеристики?

Характеристики — це властивості товару, за якими фільтрують покупці на вітрині, і живуть вони у власному довіднику. Додаткове поле — це колонка вашої таблиці для внутрішньої роботи: коди, дати, службові ціни, позначки.

Що станеться з формулами, якщо перейменувати поле?

Формули полів каталогу й прайсів програма виправить сама. Шаблони вивантаження — ні: там макрос лишиться зі старою назвою, і його треба поправити руками.

Суміжні теми

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