Доброго дня, Уважаемые Коллеги
Подскажите, как пользоваться? ( Таким образом, можно выбирать и обновлять значения пользовательских полей наравне со значениями штатных полей сущности..)
У меня есть комплексный компонент с двумя компонентами просмотр и редактирование. Ниже код из компонента редактирования из template.php (так же добавление нового элемента), как мне в этом компоненте реализовать пользовательские поля (тип список и типа привязка элемента из инфоблока)?
у меня создано поле "UF_TYPEPROJECTCRM" (тип список), реализована новая сущность со своими полями, все работает как нужно, что касается полей типа строка
файл шаблона template.php
Подскажите, как пользоваться? ( Таким образом, можно выбирать и обновлять значения пользовательских полей наравне со значениями штатных полей сущности..)
У меня есть комплексный компонент с двумя компонентами просмотр и редактирование. Ниже код из компонента редактирования из template.php (так же добавление нового элемента), как мне в этом компоненте реализовать пользовательские поля (тип список и типа привязка элемента из инфоблока)?
у меня создано поле "UF_TYPEPROJECTCRM" (тип список), реализована новая сущность со своими полями, все работает как нужно, что касается полей типа строка
файл шаблона template.php
| Код |
|---|
defined('B_PROLOG_INCLUDED') || die;
use Bitrix\Main\Config\Option;
use Bitrix\Main\Error;
use Bitrix\Main\ErrorCollection;
use Bitrix\Main\Loader;
use Bitrix\Main\Localization\Loc;
/** @var CBitrixComponentTemplate $this */
/** @var ErrorCollection $errors */
$errors = $arResult['ERRORS'];
foreach ($errors as $error) {
/** @var Error $error */
ShowError($error->getMessage());
}
$APPLICATION->IncludeComponent(
'bitrix:crm.interface.form',
'edit',
array(
'GRID_ID' => $arResult['GRID_ID'],
'FORM_ID' => $arResult['FORM_ID'],
'ENABLE_TACTILE_INTERFACE' => 'Y',
'SHOW_SETTINGS' => 'Y',
'TITLE' => $arResult['TITLE'],
'IS_NEW' => $arResult['IS_NEW'],
'DATA' => $arResult['PROJECT'],
'TABS' => array(
array(
'id' => 'tab_1',
'name' => Loc::getMessage('PROJECTSCRM_TAB_PROJECT_NAME'),
'title' => Loc::getMessage('PROJECTSCRM_TAB_PROJECT_TITLE'),
'display' => false,
'fields' => array(
array(
'id' => 'section_project',
'name' => Loc::getMessage('PROJECTSCRM_FIELD_SECTION_PROJECT'),
'type' => 'section',
'isTactile' => true,
),
array(
'id' => 'NAME',
'name' => Loc::getMessage('PROJECTSCRM_FIELD_NAME'),
'type' => 'text',
'value' => $arResult['PROJECT']['NAME'],
'isTactile' => true,
),
array(
'id' => 'PROJECTCRMREGION',
'name' => Loc::getMessage('PROJECTSCRM_FIELD_PROJECTCRMREGION'),
'type' => 'text',
'value' => $arResult['PROJECT']['PROJECTCRMREGION'],
'isTactile' => true,
),
array(
'id' => 'UF_TYPEPROJECTCRM',
'name' => Loc::getMessage('PROJECTSCRM_FIELD_UF_TYPEPROJECTCRM'),
'type' => 'что тут писать?',
'value' => 'что тут писать?',
'isTactile' => true,
),
array(
'id' => 'ASSIGNED_BY',
'name' => Loc::getMessage('PROJECTSCRM_FIELD_ASSIGNED_BY'),
'type' => 'intranet_user_search',
'value' => $arResult['PROJECT']['ASSIGNED_BY_ID'],
'componentParams' => array(
'NAME' => 'projectscrm_edit_responsible',
'INPUT_NAME' => 'ASSIGNED_BY_ID',
'SEARCH_INPUT_NAME' => 'ASSIGNED_BY_NAME',
'NAME_TEMPLATE' => CSite::GetNameFormat()
),
'isTactile' => true,
)
)
),
),
'BUTTONS' => array(
'back_url' => $arResult['BACK_URL'],
'standard_buttons' => true,
),
),
$this->getComponent(),
array('HIDE_ICONS' => 'Y')
);
|
файл реализации новой сущности
| Код |
|---|
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')
),
);
}
}
|