1С-Битрикс Разработчикам — Работа с ценами в форме редактирования элемента инфоблока
Периодически встречается следующая задача: на основании значения свойства элемента или ряда других условия модифицировать какой-то конкретный тип цен при создании/изменении элемента. Первое, что приходит в голову — воспользоваться обработчиками событий OnAfterIBlockElementAdd и OnAfterIBlockElementUpdate. При использовании с API все работает отлично, однако при сохранении изменений в форме редактирования элемента в админке ничего не происходит. Создается впечатление, что обработчик не вызывается. Как результат — обращение в техподдержку и долгие поиски ошибок. В чем же причина?
Ларчик открывается просто, достаточно схематично рассмотреть, как происходит сохранение элемента в форме редактирования.
Итак, Вы нажали кнопку «Сохранить» в форме. Данные отправились на сервер, выполняется проверка переданных данных, относящихся к элементу инфоблока, затем (если инфоблок является торговым каталогом) — проверка валидности цен и данных, относящихся к товару. Проверка прошла успешно, начинается сохранение (или обновление) данных:
- Вызывается CIBlockElement::Add или CIBlockElement::Update. Данные заносятся в базу, вызывается пользовательский обработчик событий, изменяет нужный тип цен.
- Вызывается CCatalogProduct::Add или CCatalogProduct::Update — сохранение свойств товара
- Сохраняются цены и удаляются те, которых не было в форме редактирования.
Какой же может быть выход? Если использование обработчика необходимо — его можно усложнить, встроив проверку адреса текущей страницы. Если это адрес формы редактирования — никаких действий не выполнять. А требуемый функционал в форме редактирования реализовать через функцию BXIBlockAfterSave. В настройках инфоблока есть поле «Файл для редактирования элемента, позволяющий модифицировать поля перед сохранением«. Путь к файлу с функцией необходимо прописать в этом поле. Минус этого решения — в функцию передаются только поля и свойства элемента, но не цены. Выход — либо брать их из базы, либо работать с массивом $_POST.
UPD. Подобная же проблема может возникнуть в скриптах импорта (csv, 1C). В этом случае решение одно — использовать обработчики класса CPrice.
dev.1c-bitrix.ru
Настройка внешнего вида формы редактирования
В этом разделе
Форма редактирования/добавления элемента инфоблока может быть изменена и настроена под потребности разработчика сайта. Измененная форма отображается действует как при добавлении/редактировании элемента в административной части, так и при добавлении/редактировании элемента в публичной части.
Форма вызывается нажатием на кнопку
Настройка формы редактирования
Поле | Описание | |
---|---|---|
Поля формы | ||
Доступные вкладки | Отображается список всех вкладок формы. При выборе конкретной вкладки в поле Доступные поля отображается список полей этой вкладки, доступные для добавления в поле Выбранные поля. | |
Вкладки | Отображается список активных, то есть доступных для редактирования, вкладок формы. При выборе конкретной вкладки в поле Выбранные поля отображается список полей этой вкладки, доступные для переноса в Доступные поля. | |
Доступные поля | Для отмеченной вкладки в списке Доступные вкладки отображаются поля, доступные для переноса в поле Выбранные поля. Список доступных полей может быть пуст, если все поля являются выбранными для текущей вкладки. | |
Выбранные поля | Отображается список активных, то есть доступных для редактирования, полей той вкладки, которая отмечена в списке Вкладки. Список выбранных полей может быть пуст, если ни одно из полей не выбрано из списка доступных. | |
Кнопки управления | ||
Выше | Для всех полей. Перемещение элемента вверх по списку. | |
Ниже | Для всех полей. Перемещение элемента вниз по списку. | |
Изменить | Для всех полей. Изменение названия элемента. | |
Добавить | Добавление элемента:
| |
Удалить | Удаление вкладок. Примечание: удаление созданных пользователем разделов вкладок производится простым переносом раздела из Выбранные поля в Доступные поля. | |
Общие настройки | ||
Установить данные настройки по умолчанию для всех пользователей | При отмеченной опции выбранные настройки будут установлены как настройки по умолчанию для всех пользователей системы. |
Кнопки управления
Кнопка | Описание |
---|---|
Сохранить | Сохранение настроек списка. |
Отменить | Отмена внесённых изменений. Возврат первоначальных значений настроек. |
Сбросить | Установка значений настроек равным значениям по умолчанию. |
Работа с полями и вкладками
Для добавления нужного поля (вкладки) в форму редактирования элемента необходимо перенести его из поля Доступные поля (Доступные вкладки) в Выбранные поля (Вкладки).
Для удаления ненужного поля (вкладки) с формы редактирования элемента достаточно перенести его из поля Выбранные поля (Вкладки) в Доступные поля (Доступные вкладки
).Используя этот механизм поля можно перемещать с вкладки на вкладку.
Смотрите также:
© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх
dev.1c-bitrix.ru
Настраиваем внешний вид интерфейса редактирования элемента инфоблока
Проблема распространённая – разработчики сделали сайт, всё вылизали, сайт утверждён. Потом понадобилось добавить какие-то поля, поля добавили, но в интерфейса редактирования элемента инфоблока не отрегулирование положение полей и контент-редактору просто не удобно заполнять карточку товара, новости, статьи или иного материала в инфоблоке.
Может ли пользователь что-то сделать для того, чтобы наступило счастье?
Конечно!
Заходим в элемент инфоблока и видим сверху поле «настроить» — нам туда.
В появившейся форме нас интересет диалог «вкладки»:
- С помощью стрелочки мы можем добавить во «вкладки» недостающие пункты из списка «доступные вкладки»
- С помощью кнопок «выше» и «ниже» мы можем регулировать порядок следования вкладок в интерфейсе
- С помощью кнопки «удалить» мы можем избавиться от ненужной нам вкладки
- С помощью кнопки «изменить» можно отредактировать название вкладки на более понятное, если вы путаетесь.
- Ну и наконец, кнопка «добавить» позволяет нам создать новую вкладку.
После того как вы отредактировали состав и порядок вкладок приходит время разобраться с их содержимым. Для этого доступны два нижних окна: «доступные поля» и «выбранные поля».
Среди выбранных полей отображаются те, что в настоящий момент присутствуют в выбранной вами вкладке. С помощью кнопок напротив окна «выбранные поля» вы можете по аналогии регулировать состав и порядок полей во вкладке.
Разберём 2 примера оптимизации вкладок и полей в 1С-Битрикс
1) Выберем во вкладке «элемент» поля «название для ФРОНТИР» и «подкатегория для ФРОНТИР» и с помощью кнопок «выше» поднимем их до поля «Артикул».
Примечание. Если выбрать 2 и более поля (зажав shift или ctrl в случае ОС Windows для множественного выбора) {1 на рисунке} мы можем с помощью кнопки «выше» {2 на рисунке} поднимать их синхронно, сохраняя их порядок и интервал между ними.
2) Сгруппируем всё необходимое контент-менеджеру в одной вкладке и скроем всё лишнее
- Для этого выделим вкладку «Анонс» и нажмём кнопку «удалить»
- Выберем вкладку «Подробно» после чего удалим из неё все поля и удалим саму вкладку. Обратите внимание на следующий рисунок – поля ранее бывшие во вкладке «Подробно» теперь оказались в списке Доступных полей!
- Выберем вкладку «Элемент», перенесём стрелочками поля «Детальная картинка» и «Детальное описание» из Доступных в Выбранные поля и с помощью кнопок «выше» и «ниже» (как описано в предыдущем примере) отредактируем их местоположение!
Примечание.
Поля будут вставлены поле того поля, что выбрано в списке «Выбранные поля». Т.е. если выбрано было поле «Лидер продаж», то наши поля окажутся сразу после него.
- Дальше всего лишь необходимо сохранить произведённые изменения и наслаждаться результатом.
- В случае, если произведённые изменения не позволяют вам комфортно работать, но вы не знаете как вернуть всё обратно, вам может помочь кнопка «сбросить» — она вернёт ваши настройки к тем, что установлены «по умолчанию».
Более подробно с настройкой панелей редактирования можно ознакомиться в обучающих курсах 1С-Битрикс, например http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=35&LESSON_ID=1912
Если вы администратор сайта на 1С-Битрикс
И если вы уверены, что уяснили потребности всех пользователей – не забудьте воспользоваться галочкой «Установить данные настройки по умолчанию для всех пользователей» и осчастливить всех своих подопечных разом, чтобы не настраивать им внешний вид формы редактирования самостоятельно каждый раз.
Мы не приводим универсального решения по большому счёту. Мы просто отвечаем здесь на один из наиболее часто возникающих вопросов, которым разработчик просто не может заниматься при малейших изменениях сайта. И о которых заказчик не торопиться узнавать из учебных курсов 1С-Битрикс…
Читайте документацию – она отвечает на множество ваших вопросов быстрее и эффективнее!..
xn--80ahcjeib4ac4d.xn--p1ai