Советы и лайфхаки

Файл с формой редактирования элемента битрикс – Как в 1С Битрикс редактировать формы? — Toster.ru

1С-Битрикс Разработчикам — Работа с ценами в форме редактирования элемента инфоблока

Периодически встречается следующая задача: на основании значения свойства элемента или ряда других условия модифицировать какой-то конкретный тип цен при создании/изменении элемента. Первое, что приходит в голову — воспользоваться обработчиками событий OnAfterIBlockElementAdd и OnAfterIBlockElementUpdate. При использовании с API все работает отлично, однако при сохранении изменений в форме редактирования элемента в админке ничего не происходит. Создается впечатление, что обработчик не вызывается. Как результат — обращение в техподдержку и долгие поиски ошибок. В чем же причина?


Ларчик открывается просто, достаточно схематично рассмотреть, как происходит сохранение элемента в форме редактирования.
Итак, Вы нажали кнопку «Сохранить» в форме. Данные отправились на сервер, выполняется проверка переданных данных, относящихся к элементу инфоблока, затем (если инфоблок является торговым каталогом) — проверка валидности цен и данных, относящихся к товару. Проверка прошла успешно, начинается сохранение (или обновление) данных:

  1. Вызывается CIBlockElement::Add или CIBlockElement::Update. Данные заносятся в базу, вызывается пользовательский обработчик событий, изменяет нужный тип цен.
  2. Вызывается CCatalogProduct::Add или CCatalogProduct::Update — сохранение свойств товара
  3. Сохраняются цены и удаляются те, которых не было в форме редактирования.
В итоге — обработчик был вызван, но его изменения позже были затерты.

Какой же может быть выход? Если использование обработчика необходимо — его можно усложнить, встроив проверку адреса текущей страницы. Если это адрес формы редактирования — никаких действий не выполнять. А требуемый функционал в форме редактирования реализовать через функцию BXIBlockAfterSave. В настройках инфоблока есть поле «Файл для редактирования элемента, позволяющий модифицировать поля перед сохранением«. Путь к файлу с функцией необходимо прописать в этом поле. Минус этого решения — в функцию передаются только поля и свойства элемента, но не цены. Выход — либо брать их из базы, либо работать с массивом $_POST.

UPD. Подобная же проблема может возникнуть в скриптах импорта (csv, 1C). В этом случае решение одно — использовать обработчики класса CPrice.

dev.1c-bitrix.ru

Настройка внешнего вида формы редактирования

В этом разделе
  • Настройка формы редактирования
  • Кнопки управления
  • Работа с полями и вкладками
  • Форма редактирования/добавления элемента инфоблока может быть изменена и настроена под потребности разработчика сайта. Измененная форма отображается действует как при добавлении/редактировании элемента в административной части, так и при добавлении/редактировании элемента в публичной части.

    Форма вызывается нажатием на кнопку

    Настроить контекстной панели формы редактирования/добавления элемента.

    Настройка формы редактирования
    ПолеОписание
    Поля формы
    Доступные вкладкиОтображается список всех вкладок формы. При выборе конкретной вкладки в поле Доступные поля отображается список полей этой вкладки, доступные для добавления в поле Выбранные поля.
    ВкладкиОтображается список активных, то есть доступных для редактирования, вкладок формы. При выборе конкретной вкладки в поле Выбранные поля отображается список полей этой вкладки, доступные для переноса в Доступные поля.
    Доступные поляДля отмеченной вкладки в списке Доступные вкладки отображаются поля, доступные для переноса в поле Выбранные поля. Список доступных полей может быть пуст, если все поля являются выбранными для текущей вкладки.
    Выбранные поляОтображается список активных, то есть доступных для редактирования, полей той вкладки, которая отмечена в списке Вкладки. Список выбранных полей может быть пуст, если ни одно из полей не выбрано из списка доступных.
    Кнопки управления
    ВышеДля всех полей. Перемещение элемента вверх по списку.
    НижеДля всех полей. Перемещение элемента вниз по списку.
    ИзменитьДля всех полей. Изменение названия элемента.
    ДобавитьДобавление элемента:
    • для вкладок — добавление вкладки;
    • для полей — добавление раздела вкладки.
    УдалитьУдаление вкладок.

    Примечание: удаление созданных пользователем разделов вкладок производится простым переносом раздела из Выбранные поля в Доступные поля.

    Общие настройки
    Установить данные настройки по умолчанию для всех пользователейПри отмеченной опции выбранные настройки будут установлены как настройки по умолчанию для всех пользователей системы.
    Кнопки управления
    КнопкаОписание
    СохранитьСохранение настроек списка.
    ОтменитьОтмена внесённых изменений. Возврат первоначальных значений настроек.
    СброситьУстановка значений настроек равным значениям по умолчанию.
    Работа с полями и вкладками

    Для добавления нужного поля (вкладки) в форму редактирования элемента необходимо перенести его из поля Доступные поля (Доступные вкладки) в Выбранные поля (Вкладки).

    Для удаления ненужного поля (вкладки) с формы редактирования элемента достаточно перенести его из поля Выбранные поля (Вкладки) в Доступные поля (Доступные вкладки

    ).

    Используя этот механизм поля можно перемещать с вкладки на вкладку.

    Смотрите также:

    © «Битрикс», 2001-2019, «1С-Битрикс», 2019

    Наверх

    dev.1c-bitrix.ru

    Настраиваем внешний вид интерфейса редактирования элемента инфоблока

    Проблема распространённая – разработчики сделали сайт, всё вылизали, сайт утверждён. Потом понадобилось добавить какие-то поля, поля добавили, но в интерфейса редактирования элемента инфоблока не отрегулирование положение полей и контент-редактору просто не удобно заполнять карточку товара, новости, статьи или иного материала в инфоблоке.

    Может ли пользователь что-то сделать для того, чтобы наступило счастье?

    Конечно!

    Заходим в элемент инфоблока и видим сверху поле «настроить» — нам туда.

    В появившейся форме нас интересет диалог «вкладки»:

    1. С помощью стрелочки мы можем добавить во «вкладки» недостающие пункты из списка «доступные вкладки»
    2. С помощью кнопок «выше» и «ниже» мы можем регулировать порядок следования вкладок в интерфейсе
    3. С помощью кнопки «удалить» мы можем избавиться от ненужной нам вкладки
    4. С помощью кнопки «изменить» можно отредактировать название вкладки на более понятное, если вы путаетесь.
    5. Ну и наконец, кнопка «добавить» позволяет нам создать новую вкладку.

    После того как вы отредактировали состав и порядок вкладок приходит время разобраться с их содержимым. Для этого доступны два нижних окна: «доступные поля» и «выбранные поля».

    Среди выбранных полей отображаются те, что в настоящий момент присутствуют в выбранной вами вкладке. С помощью кнопок напротив окна «выбранные поля» вы можете по аналогии регулировать состав и порядок полей во вкладке.

    Разберём 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

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *