Подскажите, как пользоваться? (ДокументацияТаким образом, можно выбирать и обновлять значения пользовательских полей наравне со значениями штатных полей сущности..)
У меня есть комплексный компонент с двумя компонентами просмотр и редактирование. Ниже код из компонента редактирования из template.php (так же добавление нового элемента), как мне в этом компоненте реализовать пользовательские поля (тип список и типа привязка элемента из инфоблока)?
у меня создано поле "UF_TYPEPROJECTCRM" (тип список), реализована новая сущность со своими полями, все работает как нужно, что касается полей типа строка
namespace Byvto\ProjectsCrm\Entity;
use Bitrix\Main\Entity\DataManager;
use Bitrix\Main\Entity\IntegerField;
use Bitrix\Main\Entity\ReferenceField;
use Bitrix\Main\Entity\StringField;
use Bitrix\Main\Entity\EnumField;
use Bitrix\Main\UserTable;
class ProjectTable extends DataManager
{
public static function getTableName()
{
return 'byvto_projectscrm_project';
}
public static function getUfId()
{
return 'PROJECTS_CRM';
}
public static function getMap()
{
return array(
new IntegerField('ID', array('primary' => true, 'autocomplete' => true)),
new StringField('NAME'),
new StringField('PROJECTCRMREGION'),
new IntegerField('ASSIGNED_BY_ID'),
new ReferenceField(
'ASSIGNED_BY',
UserTable::getEntity(),
array('=this.ASSIGNED_BY_ID' => 'ref.ID')
),
);
}
}
public static function getMap()
{
return array(
new IntegerField('ID', array('primary' => true, 'autocomplete' => true)),
new StringField('NAME'),
new StringField('PROJECTCRMREGION'),
new IntegerField('ASSIGNED_BY_ID'),
new ReferenceField(
'ASSIGNED_BY',
UserTable::getEntity(),
array('=this.ASSIGNED_BY_ID' => 'ref.ID')
),
);
}
думаю, что тип поля нужно будет поменять:
Код
new IntegerField('PROJECTCRMREGION'),
потому что там вам следует сохранять не значение пользовательского поля, а его ID
byvto написал: Благодарю Ахат, Очень помогли! Как быть, если поле нужно множественное? Так понимаю хранить массив JSON в строке, или есть какой то еще вариант?п.с. для единичного выбора код отработал такойи добавил в сущность новое поле для хранения значений
Как вариант, можно хранить в JSON? но мне такой вариант не нравится. Я бы поднял вторую сущность с полями: ID | ENTITY_ID | UF_FIELD_ID и через эту сущность вы обеспечите связь 1 ко многим.
мне в начале показалось, что в новой сущности можно использовать пользовательские поля, как то более просто, указал поле, оно появилось в шаблоне, а получилось что считай само поле заново делать, а из пользовательского только значения брать
может вместо новой сущности использовать универсальные списки, как это можно реализовать?
п.с. на просторах интернета, так и не смог найти информацию о том как это можно реализовать,
смысл задачи отображать в карточке проекта, связанные с ним лиды (в карточке лида есть поле "Проект CRM")