Юлия написал: А если добавить другое направление сделки, то для другого направления и поля свои. Настраиваешь какие нужно ( в коробке точно работает, сейчас протестировала в облаке на CRM+ тарифе- работает)
Возможность то все равно будет и возможность перебить все равно останется. И тип != направление
Борис М. написал: if (!CForumTopic::CheckFields('ADD', $arFields)) { if ($ex = $APPLICATION->GetException()) { $strError = $ex->GetString(); ShowError($strError); } }
Он не бросает Exception Если он вернул false смотрите сами в коде метода какие поля не заполнены
Роман написал: Выявили проблему при оповещениях на почту - вместо одного письма приходят два одинаковых.
Это справедливо только для вашей почты или для всех? Ваша почта не была указана как email для дополнительного уведомления? Это проявляется с каждым письмом или только нотификации?
Роман Семёнов, хз-хз. Я работаю с Bitrix24 и за последний год не припомню ни одного случая, где бы я воспользовался CiblockSection::GetList, все через d7
Роман Семёнов написал: просто добавьте обработку данных после выборки через D7, используя методы старого ядра - \CIBlock::ReplaceDetailUrl?гениально!
Очень язвительно. Ну никто же не анонсировал что это можно сделать на D7? Я такого анонса не видел, да и D7 для инфоблоков никто собственно не открывал. Я вот например могу написать обертку или аналог на D7 но зачем?
Кирилл Кунгурцев написал: Но мне нужна публичная ссылка вида http://адрес_сайта/~JW311, то есть что бы к файлу был доступ из вне (не зарегистрированным в системе пользователям)
Это больше хак, так как аттач порождает файл на диске и на него мы будем давать ссылку.
Код
use \Bitrix\Main,
\Bitrix\Disk;
/**
* Gerenated url or empty string
* @var string
*/
$url = '';
/**
* Disk attached object id
* @var integer
*/
$attachId = 1;
/**
* Short link author id
* by default - user who create public link
* for example - admin (ID:1)
* @var integer
*/
$authorId = 1;
try
{
if ( !Main\Loader::IncludeModule('disk') )
{
throw new \Exception("Disk module not included");
}
/**
* @var Disk\AttachedObject
*/
$attachObject = Disk\AttachedObject::loadById($attachId);
if ( !($attachObject instanceof Disk\AttachedObject ) )
{
throw new \Exception("Attached object not loaded");
}
/**
* @var Disk\File
*/
$diskObject = $attachObject->getObject();
if ( !($diskObject instanceof Disk\File ) )
{
throw new \Exception("Disk object not loaded");
}
$extLinks = $diskObject->getExternalLinks([
'filter' => [
'OBJECT_ID' => $diskObject->getId(),
'CREATED_BY' => $authorId,
'TYPE' => Disk\ExternalLink::TYPE_MANUAL,
'=IS_EXPIRED' => false,
],
'limit' => 1,
]);
$extLink = array_pop($extLinks);
if ( !$extLink )
{
$extLink = $diskObject->addExternalLink([
'CREATED_BY' => $authorId,
'TYPE' => Disk\ExternalLink::TYPE_MANUAL,
]);
}
if (!$extLink)
{
throw new \Exception("Can't create or find external link");
}
$url = new Main\Web\Uri(
Disk\Driver::getInstance()->getUrlManager()->getShortUrlExternalLink(
[
'hash' => $extLink->getHash(),
'action' => 'default',
],
true
)
);
}
catch ( \Exception $e )
{
var_dump($e->getMessage());
}
/**
* $url - instance of Bitrix\Main\Web\Uri object
* if use strVal($url) - return absolute path, e.g. https://**.ru/~KpyTY
* string(56) "/bitrix/tools/disk/uf.php?attachedId=1&action=show&ncc=1"
*/
echo "<pre>";
var_dump($url);
echo "</pre>";