Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Привязка к элементам инфоблока с значениями

+11 голос
1
Привет, братья программисты!

Вопрос такой. Надо создать функционал рецептов. Рецепт - элемент инфоблока. У каждого рецепта есть ингредиенты - это предлагается сделать элементами другого инфоблока. К одному рецепту можно привязать несколько ингредиентов, каждый со своим количеством и своей единицей измерения. Но при такой схеме не достает полей - невозможно указать количество данного ингредиента и единицу измерения.

К примеру добавляем рецепт салата оливье. Ингредиенты: привязываем картофель отварной, но как привязать еще два свойства уже к картофелю - единицу измерения и количество. Далее выбираем морковь отварная - также как указать именно ее единицу измерения количество?

При этом важно понимать что каждый ингредиент можно указывать в различных единицах измерения. К примеру сахар можно указывать в столовых ложках, граммах, литрах, мешках, шепотках, по вкусу и т.д.
спросил 07 Фев, 16 от аноним

1 Ответ

00 голосов
Добрый день.

Это как раз тот случай, когда инфоблоки не очень подходять для построения информационной архитектуры. Вам нужен внутренний промежуточный "слой данных". (Инфоблок Рецепты) -> (Ссылка на ингредиент, количество, размерность) -> (Инфоблок Ингредиенты).
Как его реализовать - вопрос посложнее. Вы можете и отдельный служебный инфоблок завести, хотя это будет "тяжёлое" решение. Лучше подойдут Хайлод-инфоблоки, они будут намного быстрее. Но всё равно для удобства управления рецептами нужно будет хорошо поработать над интерфейсами (а если и в админке управлять рецептами и ингредиентами хотите - думаю, вас ждёт реализация пользовательского типа свойства инфоблока).
ответил 08 Фев, 16 от root (25,590 баллов)

Похожие вопросы

0 голосов
2 ответов
0 голосов
7 ответов
спросил 20 Май, 13 от Sairys (160 баллов)
+1 голос
1 ответ
0 голосов
7 ответов
спросил 21 Авг, 13 от SmailRat (160 баллов)