Як завести власне поле в товарах, контрагентах і документах

23 хв

Elbuz дає завести власне поле в товарах, контрагентах, документах та інших таблицях: воно з'являється в картці, сітці, фільтрах, формулах і вивантаженнях так само, як рідні поля програми.

Коли це знадобиться:

  • Потрібна друга закупівельна чи стара ціна — поле типу «Ціна» стає колонкою каталогу й працює у формулах і націнках.
  • Треба бачити ціну конкретного постачальника — пакетне оновлення переносить її з прайсу у ваше поле.
  • Значення має рахувати формула — «Тільки для читання» не дає правити його руками й через API.
  • Потрібна внутрішня позначка — поле «Прапор» дає колонку з галочкою для фільтра.

З чого почати: «Налаштування таблиць» → таблиця → «Додати поле».

Що вміють додаткові поля

Де це і хто має доступ

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

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

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

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

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

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

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

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

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

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

  1. рядок у списку полів;
  2. колонка в таблиці бази;
  3. колонка в сітці й налаштування сітки кожного співробітника;
  4. назва колонки для кожної мови;
  5. права груп.

Спільної транзакції в цих кроків немає. Скільки полів уже є в таблиці, програма не перевіряє.

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

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

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

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

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

Типи полів

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

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

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

Як налаштувати поле «Кнопка» — у статті про кнопку в таблиці.

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

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

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

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

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

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

«Тільки для читання» діє на пакетне оновлення так:

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

Якщо поле потрапило туди раніше, ніж ви поставили ознаку, приберіть його з налаштувань прайсу самі.

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

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

Як видалити поле і чому програма може відмовити

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

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

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

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

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

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

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

Сценарії

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Що робити, коли поле не видно або не заповнюється

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

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

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

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

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

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

Хочу видалити власне поле, а програма пише, що поле бере участь у SQL-умовах, написаних вручну. Що робити?

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

Як додати своє поле в товар, наприклад «Гарантія, міс.», і вивантажити його?

Додайте поле в «Товары (базовый каталог)»: «Рядок тексту» для гарантії текстом, «Число» — для місяців. На сайт чи маркетплейс поле піде, лише якщо додати його в шаблон вивантаження.

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

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

Хочу поле «Стан товару» з випадаючим списком: Новий, Вживаний, Уцінка. Як зробити?

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

Чи можна зробити поле з автонумерацією, щоб починалося з 1000 і мало префікс DOG-?

У додаткових полях — ні: лічильника й префікса в них немає. Номер на кшталт DOG-1000 дає тип документа: шаблон DOG-{N} у колонці «Формат №» (нумерація документів).

Чи можна поставити галочку, щоб значення поля не повторювалося в різних товарів?

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

Суміжні теми

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