Разработка сайта на Битрикс часто ставит перед разработчиками комплексные задачи по организации контента. Стандартные свойства инфоблоков отлично подходят для простых данных: строк, чисел или списков. Но что делать, если контент-менеджеру нужно наполнить слайдер, блок "Вопрос-Ответ" (FAQ) или список сотрудников с фотографиями и должностями внутри одной страницы?
Обычно для этого приходится создавать отдельные инфоблоки или плодить десятки свойств, что усложняет администрирование и нагружает базу данных. Представляем решение: модуль Genesis — мощный Bitrix конструктор полей, которое позволяет создавать сложные структуры данных внутри одного свойства.
Проблема стандартных подходов в BitrixПри создании лендингов или карточек товаров часто требуется гибкость. Допустим, вам нужно создать шаблон Битрикс для вывода галереи преимуществ, где у каждого элемента есть иконка, заголовок, описание и ссылка.
Стандартные пути решения:
Множественные свойства: Создать 4 разных свойства (для иконки, заголовка и т.д.) и надеяться, что контент-менеджер заполнит их в правильном порядке. Это неудобно.
Отдельный инфоблок: Создать инфоблок "Преимущества" и привязывать его элементы. Это надежно, но избыточно для простых задач.
Наш модуль предлагает третий путь: кастомные поля, которые хранят сложную структуру в формате JSON, но предоставляют удобный визуальный интерфейс для редактирования.
Что такое модуль Genesis?Модуль Genesis реализует концепцию, интуитивно знакомую многим разработчикам, но адаптированную под инфоблоки Bitrix. Это свойство типа "Строка" (хранится как JSON в базе данных), которое имеет два интерфейса:
Конструктор схемы: Для разработчика.
Визуальный редактор: Для контент-менеджера.

В настройках свойства реализован полноценный конструктор с интерфейсом. Вам больше не нужно писать JSON-схему вручную (хотя модуль позволяет и это через режим "Raw JSON").
В модуле реализован JS интерфейс, который позволяет на лету добавлять поля, указывая:
Ключ (Key): Техническое имя поля для использования в шаблоне.
Название: Подпись для менеджера.
Тип: Выбор из поддерживаемых типов данных.
Заголовок: Чекбокс, определяющий, будет ли это поле видно в свернутом списке элементов.
Поддерживаемые типы данных:
Текст (input).
Многострочный текст (textarea).
Картинка (с предпросмотром).
Файл.
Привязка к элементам: Позволяет выбирать элементы из других инфоблоков через стандартное окно поиска Bitrix.
Вложенный список (list): Уникальная возможность создавать рекурсивные структуры (список внутри списка).

Модуль рендерит удобный интерфейс в карточке элемента. Это не просто текстовое поле с JSON. Это полноценная панель управления контентом, которая включает:
Drag & Drop сортировку: Элементы можно менять местами простым перетаскиванием.
AJAX загрузку файлов: Изображения и документы загружаются без перезагрузки страницы через аякс.
Визуализацию: Миниатюры изображений отображаются прямо в списке.
Вложенность: Если вы создали поле типа "Вложенный список", откроется модальное окно (Pop-up) с еще одним списком внутри.
Умный выбор привязок: Интеграция с окном позволяет выбирать элементы инфоблока по ID, не покидая страницу редактирования.
Использование данного модуля для задач категории bitrix создание сложных интерфейсов дает ряд преимуществ.
Хранение данныхВсе данные сериализуются в JSON с флагом JSON_UNESCAPED_UNICODE.
Это означает, что в базе данных всё лежит компактно. При выборке элементов (GetList) вы не делаете лишних JOIN-запросов к таблицам свойств. Вы получаете одну строку, которую легко превратить в массив через json_decode в result_modifier.php или шаблоне компонента.
Гибкость для разработчикаВам не нужно каждый раз лезть в код, чтобы изменить набор полей. Кастомные свойства настраиваются мышкой в админке.
Кроме того, в модуле предусмотрен режим "Редактировать JSON" (editRawJson), который позволяет разработчику скопировать структуру данных целиком и перенести её на другой элемент или проект.
Вложенные структуры (Nested Lists)Одной из самых мощных фич, которую предоставляет этот модуль, является рекурсия. В коде класса SchemaBuilder присутствует обработка типа migx_list.
Это позволяет создавать многоуровневые меню или сложные каталоги внутри одного элемента. Например:
Уровень 1: "Категория услуг" (Заголовок + Иконка).
Уровень 2 (внутри категории): Список конкретных услуг (Название + Цена).
Установка модуля стандартная, через 1С-Битрикс Маркетплейс.
Если вы хотите получить данные из поля Genesis используйте готовый сниппет в шаблоне компонента или в result_modifier.php вашего компонента:
// Функция для рекурсивного декодирования JSON
function json_decode_recursive($data) {
// Если пришел массив, проходим по всем его элементам
if (is_array($data)) {
foreach ($data as $key => $value) {
$data[$key] = json_decode_recursive($value);
}
return $data;
}
// Если пришла строка, пробуем её декодировать
if (is_string($data)) {
// Проверяем, похожа ли строка на JSON (начинается с { или [)
$trimmed = trim($data);
if ((strpos($trimmed, '{') === 0 || strpos($trimmed, '[') === 0)) {
$decoded = json_decode($data, true);
// Если декодирование прошло успешно, рекурсивно проверяем результат
if (json_last_error() === JSON_ERROR_NONE) {
return json_decode_recursive($decoded);
}
}
}
// Возвращаем данные как есть (если это число, обычная строка или неудачный json)
return $data;
}
// Замените FGB на КОД свойства которое вы создали в инфоблоке
$json_data_test = $arResult['PROPERTIES']['FGB']['VALUE'];
// Сначала декодируем HTML сущности (если они есть)
$json_data_test = htmlspecialchars_decode($json_data_test);
// Используем нашу рекурсивную функцию вместо обычной
$itemsx = json_decode_recursive(json_decode($json_data_test, true));
echo '<pre>';
print_r($itemsx);
echo '</pre>'; |
Array ( [0] => Array ( [field_1763692934771] => Array ( [0] => Array ( [field_1763692942587] => test [field_1763692952254] => test [field_1763692961837] => test [field_1763693877011] => Array ( [0] => Array ( [field_1763693885195] => test [field_1763693893877] => test ) [1] => Array ( [field_1763693885195] => test [field_1763693893877] => test ) ) ) ) [field_1763699277575] => Array ( [0] => Array ( [id] => 192880 [name] => Aqwella ) [1] => Array ( [id] => 196436 [name] => Arcus ) [2] => Array ( [id] => 192872 [name] => Artwelle ) ) [field_1763700303773] => /upload/migx_files/4ff/7s4v2lb7cwd7vop21hadt97pb10nqc59.png ) ) |
xidi.dev@gmail.com
Если долго не отвечаю напишите в телеграм:
@xidi_93
Для покупки товара в нашем интернет-магазине выберите понравившийся товар и добавьте его в корзину. Далее перейдите в Корзину и нажмите на «Оформить заказ» или «Быстрый заказ».
Если оформляете быстрый заказ: напишите ФИО, телефон и e-mail. Вам перезвонит менеджер и уточнит условия заказа. По результатам разговора вам придет подтверждение оформления товара на почту или через СМС. Теперь останется только ждать доставки и радоваться новой покупке.
Оформление заказа в стандартном режиме выглядит следующим образом. Заполняете полностью форму по последовательным этапам: адрес, способ доставки, оплаты, данные о себе. Советуем в комментарии к заказу написать информацию, которая поможет курьеру вас найти. Нажмите кнопку «Оформить заказ».
Оплачивайте покупки удобным способом. В интернет-магазине доступно 3 варианта оплаты:
- Наличные при самовывозе или доставке курьером. Специалист свяжется с вами в день доставки, чтобы уточнить время и заранее подготовить сдачу с любой купюры. Вы подписываете товаросопроводительные документы, вносите денежные средства, получаете товар и чек.
- Безналичный расчет при самовывозе или оформлении в интернет-магазине: карты МИР. Чтобы оплатить покупку на сайте, система перенаправит вас на сервер платежной системы. Здесь нужно ввести номер карты, срок действия и имя держателя.
- Электронные системы при онлайн-заказе: ЮMoney. Для совершения покупки система перенаправит вас на страницу платежного сервиса. Здесь необходимо заполнить форму по инструкции.
- Безналичная оплата на наш расчетный счет по выставленному счету.
Экономьте время на получении заказа. В интернет-магазине доступно 4 варианта доставки:
- Электронная поставка - все необходимые сведения о лицензии, праве пользования, кодах, ключах и др. высылаются покупателю на его e-mail.
- Курьерская доставка. Когда товар будет отправлен с нашего склада, Вам придет уведомление. В день доставки с Вами заблаговременно свяжется курьер для уточнения времени и деталей доставки. Доставка производится "до двери". Осмотрите упаковку на целостность и соответствие указанной комплектации.
- Постамат. Когда заказ поступит на точку, на Ваш телефон или e-mail придет уникальный код. Заказ нужно оплатить в терминале постамата. Срок хранения — 3 дня.
- Доставка Почтой России. Когда заказ придет в отделение, на Ваш адрес придет извещение о посылке. Перед оплатой Вы можете оценить состояние коробки: вес, целостность. Вскрывать коробку самостоятельно Вы можете только после оплаты заказа. Один заказ может содержать не больше 10 позиций и его стоимость не должна превышать 100 000 р.
Дополнительная информация.
Изучите полный алгоритм продления лицензий на модули 1С-Битрикс: Маркетплейс, включая активацию льготных купонов. Мы детально разбираем все условия: обязательный 30-дневный срок для сохранения максимальной выгоды, пропорциональное ценообразование (12,5%, 25%, 50% от цены модуля) и ограничение по минимальной сумме в 500 рублей. Этот гайд поможет вам эффективно планировать бюджет и гарантировать актуальность вашего проекта.