Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 17 additions & 21 deletions pages/cms-basics/userfields.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ description: 'Пользовательские поля. Основы Bitrix CMS

Не все модули поддерживают пользовательские поля, но вы можете:

- использовать объекты информационные блоков, если модуль с ними связан,
- использовать объекты информационных блоков, если модуль с ними связан,

- создать собственный объект.

Expand Down Expand Up @@ -176,7 +176,7 @@ description: 'Пользовательские поля. Основы Bitrix CMS

- Сортировка -- введите число, которое определяет положение поля в общем списке. Чем меньше число, тем выше поле в списке.

- Множественное -- отметьте опцию, чтобы значение поле было множественным. Параметр можно настроить только для нового поля.
- Множественное -- отметьте опцию, чтобы значение поля было множественным. Параметр можно настроить только для нового поля.

- Обязательное -- отметьте опцию, чтобы поле было обязательным для заполнения.

Expand Down Expand Up @@ -277,7 +277,7 @@ $userFields = [
],
];

$userFieldId = $userTypeEntity->Add( $userFields );
$userFieldId = $userTypeEntity->Add($userFields);
```

**Пояснения к коду**
Expand Down Expand Up @@ -347,11 +347,9 @@ $enumField->SetEnumValues($newID, $addEnum);
Код делает поле обязательным для заполнения.

```php
$userTypeEntity->Update( $userFieldId,
[
'MANDATORY' => 'Y',
]
);
$userTypeEntity->Update($userFieldId, [
'MANDATORY' => 'Y',
]);
```

### Как обновить значения поля
Expand All @@ -369,18 +367,18 @@ $userTypeEntity->Update( $userFieldId,
```php
global $USER_FIELD_MANAGER;

$section = CIBlockSection::GetList( [], [
$section = CIBlockSection::GetList([], [
'IBLOCK_CODE' => 'shop_news',
'CODE' => 'test_section',
])->Fetch();

if( !$section ) {
throw new Exception( 'Секция не найдена' );
if (!$section) {
throw new Exception('Секция не найдена');
}

$USER_FIELD_MANAGER->Update( 'IBLOCK_3_SECTION', $section['ID'], [
'UF_DEV2DAY_FIELD' => 'updated value'
] );
$USER_FIELD_MANAGER->Update('IBLOCK_3_SECTION', $section['ID'], [
'UF_DEV2DAY_FIELD' => 'updated value'
]);
```

В случае успешного обновления метод `Update` вернет `true`.
Expand All @@ -396,7 +394,7 @@ $USER_FIELD_MANAGER->Update( 'IBLOCK_3_SECTION', $section['ID'], [
{% endnote %}

```php
$userTypeEntity->Delete( $userFieldId );
$userTypeEntity->Delete($userFieldId);
```

## Выборка, фильтрация и сортировка
Expand Down Expand Up @@ -426,17 +424,15 @@ $rows = MyTable::query()
->addSelect('UF_GRATITUDE')
->where('UF_GRATITUDE', '>', 50)
->addOrder('UF_GRATITUDE', 'DESC')
->fetchCollection()
;
->fetchCollection();
```

ORM автоматически добавит JOIN к таблице пользовательских полей. Ничего писать вручную не нужно.

После получения коллекции объектов можно работать с пользовательскими полями через геттеры и сеттеры.

```php
foreach ($rows as $row)
{
foreach ($rows as $row) {
$value = $row->getUfGratitude();
$row->setUfGratitude($value + 50);
$row->save();
Expand Down Expand Up @@ -490,7 +486,7 @@ foreach ($rows as $row)
$entityId = 'BLOG_RATING';
$itemId = 123;
$fields = [
'UF_RATING' => 50,
'UF_RATING' => 50,
];
$manager->Update($entityId, $itemId, $fields);
```
Expand All @@ -508,7 +504,7 @@ foreach ($rows as $row)
$allFields = $manager->GetUserFields($entityId, $itemId);
```

Такой способ требует ручного управления данными и не работает с методом `GetList`, но позволяет использовать поля в собственных компонентах и модулях.
Такой способ требует ручного управления данными и не работает с методом `GetList`, но позволяет использовать поля в собственных компонентах и модулях.

## События

Expand Down