|
8 / 8 / 0
Регистрация: 17.10.2012
Сообщений: 58
|
|||||||
Как легко обновить свойства элемента?28.08.2013, 17:48. Показов 46537. Ответов 17
Метки нет (Все метки)
Задача:
В инфоблоке 1 появилось новое свойство, тип - привязка к элементам инфоблока 2. Для всех существующих элементов в инфоблоке 1 надо заполнить это свойство, причем к чему конкретно будем привязывать - зависит от текущего набора свойств. В чём сложность? Открываем документацию по апи CIBlockElement::Update и внимательно читаем, как обновляются свойства у элементов.
Мне необходимо обновить всего 1 свойства, остальные оставить прежними. АПИ вынуждает меня составлять список всех свойств элемента, иначе неуказанные будут удалены. А это сделать не так просто, ибо значение свойства (VALUE) зависит от типа свойства, иногда нужен текст, иногда ID варианта значения. Иногда может ещё что-то, всего я не знаю. Как просто обновить у элемента 1 свойство не трогая остальные? Может есть у кого-то готовое решение? Добавлено через 12 часов 50 минут В общем, мне повезло, что элементов около трёхсот. Создал обработчик события OnBeforeIBlockElementUpdate , написал его, чтобы он изменял нужное свойство. Зашел в админку, выбрал все элементы, нажал редактировать и применил. Вуаля. Нужное свойство мы везде проставили, остальные свойства остались целы.
1
|
|||||||
| 28.08.2013, 17:48 | |
|
Ответы с готовыми решениями:
17
Как получить свойства вновь добавленного элемента |
|
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
|
|
| 28.08.2013, 18:37 | |
|
оригинальное решение, мне понравилось, жаль только его нельзя использовать когда есть необходимость через API менять в компонентах - приходится извращаться через setpropertyvaluecode.php и иже с ним
0
|
|
|
694 / 534 / 40
Регистрация: 22.06.2009
Сообщений: 1,293
|
||
| 28.08.2013, 20:31 | ||
|
http://dev.1c-bitrix.ru/api_he... update.php В $arFields['PROPERTY_VALUES'] передать значения свойств.
0
|
||
|
8 / 8 / 0
Регистрация: 17.10.2012
Сообщений: 58
|
||
| 28.08.2013, 22:05 [ТС] | ||
|
0
|
||
|
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
|
||
| 28.08.2013, 23:15 | ||
|
тот который я указал приблизительно такой же, но при этом не затрагивает другие свойства. а есть еще способ через CIBlockElement::SetPropertyValuesEx - Функция сохраняет значения всех свойств элемента информационного блока. В отличие от SetPropertyValues может не содержать полный набор значений - те.е просто дописывает новое значение к тем которые уже есть
2
|
||
|
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
|
||||||
| 13.05.2016, 12:23 | ||||||
|
Подскажите еще, вот такая проблема появилась, нужно обновить только дату активности элемента. ЩАс на сайте она обновляется, но не записывается, т.е при обновлении страницы все обратно возвращается.
0
|
||||||
| 13.05.2016, 14:02 | ||||||||||||
|
Для начала по начальному вопросу этой темы. Вы конечно придумали решение, но оно, что называется, через тернии. Есть два специальных метода для установки значений свойств элемента инфоблока (не полей - для ACTIVE_DATE этот метод не пойдет)
CIBlockElement::SetPropertyValues - этому методу надо передавать значения всех свойств (не указанные "затрет") CIBlockElement::SetPropertyValuesEx - этому можно передавать тоько те, что необходимо изменить. Добавлено через 2 минуты
Добавлено через 5 минут 1. Зачем вы убрали проверку - можно просто поменять на $_REQUEST (вместо $_GET) Вы бы почитали об этих переменных. Вопрос не сложный для понимания и не хотелось бы здесь много слов писать. 2. Дату начала активности обновлять именно так. Я, даже, специально только что проверил. Этот код ни чего не "затирает". Почему вы решили что он затирает?
0
|
||||||||||||
|
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
|
|
| 13.05.2016, 14:13 | |
|
У меня у элемента есть еще два свойства (тип список, число, число) вот они скидываются почему-то, а картинки и текст с заголовком не скидываются
0
|
|
| 13.05.2016, 14:15 | ||||||||||||||||||
|
Обработчик
Добавлено через 2 минуты
0
|
||||||||||||||||||
|
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
|
||||||
| 13.05.2016, 14:28 | ||||||
|
Вот все обработчики все чисто тут
0
|
||||||
| 13.05.2016, 14:36 | |
|
А где voteHandlers::beforeChange - там ничего нет?
Это у вас init.php ? Добавлено через 5 минут Hint: SaveLog - это у вас велосипед Есть "из коробки": AddMessage2Log и, сравнитеьно недавно появившийся: Bitrix\Main\Diag\Debug::writeToFile
0
|
|
|
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
|
|
| 13.05.2016, 14:36 | |
|
да это init.php
voteHandlers::beforeChange да там пусто
0
|
|
| 13.05.2016, 14:39 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
|
||||||
| 13.05.2016, 14:43 | ||||||
|
Вот нашел voteHandlers::beforeChange
0
|
||||||
| 13.05.2016, 14:53 | |||||||||||
|
Вот вам и ошибка:
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
|
|
| 13.05.2016, 14:57 | |
|
А как исправить, че-то совсем запутался ((((
0
|
|
| 13.05.2016, 15:02 | ||||||
|
Примерно, как то так
1
|
||||||
|
1 / 1 / 0
Регистрация: 02.09.2014
Сообщений: 61
|
|
| 13.05.2016, 15:08 | |
|
Уххх, благодарю, два дня блин мучялся. Спасибо !!!
0
|
|
| 13.05.2016, 15:08 | |
|
Помогаю со студенческими работами здесь
18
Как правильно использовать события и свойства элемента CheckBox Как вернуть окно с описание выделенного свойства элемента? Как обновить Recycle View после добавления нового элемента в БД? Используется Cursor Как отменить свойства только для одной го элемента из класса? PropertyGrid. Как отловить видимость свойства в зависимости от другого свойства? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|