Arman spirit1086 написал: Извиняюсь onBeforeAdd писал не сохраняет все равно, где-то читал что в init.php еще надо или этого не требуется если использовать DataManager, этого описания хватает или надо где-то вызывать DataTable::onBeforeAdd() ?
Если вы используете это в своем классе (наследнике Entity\DataManager), то ничего дополнительно не требуется.
Попробуй дописать в класс это:
Код
public static function onBeforeAdd(Entity\Event $event)
{
$result = new Entity\EventResult;
$result->modifyFields([
'CUSTOMFIELD' => "Мое значение"
]);
return $result;
}
Z. uum uum написал: Можно ли пользовательское поле сделать обязательным только для одного направления сделки? Есть ли какой-нибудь путь?
Переходите в сделку в нужном направлении, открывате настройки, снимаете галочку с обязательности для всех направлений, ставите стадию - Новая. Вот и все, для этого направления это поле обязатально.
Денис Чекарев написал: Есть необходимость посчитать, сколько лидов из имеющихся имеют определенное свойство.
Эм... ну ок:
1) Создаю какое-то строковое поле UF_NON_EMPTY 2) Хочу получить количество лидов, у которых это поле заполнено:
Код
use \Bitrix\Main;
/**
* Количество лидов с заполненным полем
* @var integer
*/
$iLeadCount = 0;
if ( Main\Loader::IncludeModule('crm') )
{
$arFilter = [
'!UF_NON_EMPTY' => false
];
$leadResult = \CCrmLead::GetListEx([], $arFilter, false, false, ['ID']);
$iLeadCount = $leadResult->SelectedRowsCount();
}
// Вот тут в $iLeadCount будет количество лидов с заполненным полем
Роман написал: Были такие мысли, но нужна ещё возможность добавления какого-нибудь описания, желательно с визуальным редактором, т.к. вряд ли неискушённые в IT сотрудники будут заморачиваться с html-тегами.
Денис Ковальчук, по определённому нельзя. Как вы можете достать из мешка первую картошину? Если вы будете работать не с инфоблоками, а со значениями свойств (через отдельное апи) то при помощивелосипедк и пары костылей можно этого добиться.
А вообще для вашей бизнес задачи, думаю, найдется и другое решение. Опишите ее.