Источник данных для поля

В качестве источника данных для поля мы можем выбрать:

  1. данные из заданного столбца таблицы
  2. вычисляемое или постоянное значение (т.н. «формула»)

Для большинства полей, мы выбираем источником поля значение какого-то столбца.
Зачастую, настройка поля на этом и заканчивается, если не требуется производить каких-либо преобразований значения.

Режим «Формула» предназначен для 2 задач:

  • задать постоянное значение для всех строк прайса
    (например, для поля Поставщик мы прописываем фиксированное значение — название поставщика)
  • сформировать поле, сцепив данные из произвольного текста, столбцов листа или других полей прайса

Пояснений требует лишь последний вариант, когда мы объединяем в поле несколько значений.
Что можно указывать (комбинировать) в параметре «формула»:

  • произвольный текст
  • коды столбцов вида {1}, {4} и т.п. (НОМЕР столбца в фигурных скобках)
    при вычислении поля этот код столбца будет заменен значением из этого столбца
  • коды других полей этого обработчика вида {ИмяПоля}
    при вычислении, этот код поля будет заменен ранее вычисленным в этом поле значением
    ВНИМАНИЕ: тут важен порядок вычисления полей

 

Рассмотрим пример:
предположим, в обработчике настроены поля с названиями Бренд (из столбца 7 + обработка таблицей замен), Модель (из столбца 2) и Типоразмер (из столбца 4)
Наша задача — в поле Полное наименование собрать воедино эти три значения, добавив перед ними текст «Автошина»

В этом случае, «формула» будет иметь вид Автошина {Бренд} {Модель} {Типоразмер}

Значений этих полей будут склеены через разделитель "пробел" (разделитель может быть любым, например, мы можем написать формулу {Ширина}/{Профиль} R{Диаметр} для поля Типоразмер)

Почти аналогичный результат даст формула Автошина {7} {2} {Типоразмер}, в этом случае значения будут браться не из вычисленных полей, и напрямую из файла.
В чём разница? Если в настройках поля Модель у нас берутся данные из столбца 2, и никакие дополнительные обработки значения не производятся, — то нет никакой разницы, использовать в формуле {2} или {Модель}
Но если для поля Бренд у нас к значению столбца 7 применяется таблица замен (для коррекции написания брендов), то значения {7} и {Бренд} будут отличаться.

 

Рассмотрим ещё один пример формулы, для формирования описания товара из нескольких столбцов.
Допустим, у нас в прайсе есть цвет товара в столбец 5, размер товара в столбец 6, и материал в столбце 7, причем некоторые значения пустые (не указаны)

Цвет Размер Материал
синий 2XL хлопок
зелёный   эластан
  XL шерсть
розовый 2XL  

Требуется сформировать описание вида синий цвет, размер 2XL, материал: хлопок

Если мы используем формулу {5} цвет, размер {6}, материал: {7},
то для некоторых строк мы получим описание вида цвет, размер , материал: хлопок

Чтобы исключить подписи к пустым столбцам, можно использовать расширенный вариант кода столбца вида {НомерСтолбца~ТекстДоЗначения~ТекстПослеЗначения}
Здесь, ТекстДоЗначения и ТекстПослеЗначения будут добавлены только к НЕПУСТЫМ значениям ячеек
(разделителем значений выступает символы тильда ~)

Формула примет вид {5~~ цвет}{6~, размер ~}{7~, материал: ~}
В этом случае, суффикс « цвет» (с пробелом) добавится только после непустого значения цвета, а префикс «, размер » будет добавлен, только если в таблице указан размер.
Тогда, если размер пропущен, описание получится такого вида: синий цвет, материал: хлопок

Комментарии

Иван, с конструкцией {НомерСтолбца ~ТекстДоЗначения ~ТекстПослеЗначения} это не получится, скорее всего (в программе это не предусмотрено)
Можно в самом вычисляемом поле количество_комплектов, при помощи функций обработки, дописывать текст до и после
(пользуясь тем, что к пустому значению текст до и после добавлен не будет)
Ну либо создать еще одно вычисляемое поле количество_комплектов_с_текстом, взять в него данные из количество_комплектов, и добавить функцию обработки.

Чтобы исключить подписи к пустым столбцам, можно использовать расширенный вариант кода столбца вида {НомерСтолбца~ТекстДоЗначения~ТекстПослеЗначения}
Здесь, ТекстДоЗначения и ТекстПослеЗначения будут добавлены только к НЕПУСТЫМ значениям ячеек
(разделителем значений выступает символы тильда ~)

С "НомерСтолбца" все понятно, но это есть исходные данные требующие обработки. Как можно подставить в эту формулу вместо номера столбца вычисленное значение (допустим цены) из временного поля #цена_комплекта, чтоб если цена комплекта отсутствует, то поле оставалось пустым?
Поясню что надо иметь в итоге в одном поле итогового прайса в полной раскладке:
|Доступные варианты поставки|Комплект из|3|штук|1200| - своего рода микроразметка в одном поле для последующей загрузки данных в БД магазина, на сайте будет выглядеть так
Доступные варианты поставки
Комплект из 3 штук
Цена 1200 руб.
В представленном итоговом поле количество "3" является вычисляемым значением, как и цена "1200" тоже вычисляемая. Остальной текст является подстановочным и не нужен в случае отсутствия
Я вижу реализацию так:
{#количество_комплектов~|Доступные варианты поставки|Комплект из|~|штук|}{#цена_комплекта~~}
Но почему-то это не работает((
Может подскажете какими средствами реализовать?
p.s.Формулой Эксель получается вывести если формировать итоговый прайс в формате Эксель, но выгружать прайс надо в CSV.
И спасибо за ответ на мой предыдущий вопрос, поставщик разделил прайсы по моей просьбе и программа справляется.