Я вижу, что при обновлении счета происходит поиск по всем счетам и ищется не пустые значения некоторого свойства (т.е. все счета у которых UF_CRM_1525687440 заполнено). Все счета записываются в массив $result Затем если их количество (если счетов больще 0), мессив проходится по всем значениям первого счета и проверяет соответствие текущего ID и значению данной переменной. после происходит какой-то дикий мерж между массивом и товарами. Затем происходит еще один мерж и зацикливание обработчика, т.е. даже если он и не накосячит, то уж точно уйдет в рекурсию, так как на событии обновления счета происходит обновление счета, которое триггерит событие обновление счета, в котором происходит обновление счета ... и так далее до бесконечности.
Почему сразу не написать как-нибудь так:
Код
// То, что должно быть в UF_CRM_1525687440
$acceptedValue = 463;
$result = [];
$CCrmInvoice = new \CCrmInvoice(false);
$invoices = $CCrmInvoice::GetList(
[],
[
'UF_CRM_1525687440' => $acceptedValue
]
);
if ( $result = $invoices->GetNext() )
{
// дальнейшие действия
}
Александр написал: Что нужно: добавить его в группу на АД, запустить импортирование, а потом уже пользователь должен входить и авторизироваться на сайте.
В таком случае мы обычно делаем так: 1) Создаем группу "Bitrix Users" и настраиваем импорт пользователей только из этой группы 2) Пишет обработчик события добавления пользователя. Если не найдены UF_DEPARTMENTS то автоматически добавляем корневое подразделение 3) Выключаем подтягивание структуры из AD 4) Включаем опцию "Создавать пользователей из AD" 5) Ставим мериодическую синхронизацию на 1 день
Таким образом: 1) Если сегодня в группу будут включены пользователи, то завтра они автоматически попадут на портал 2) Если сегодня завели пользователя в группу и он сегодня прорвался на портал, то он будет создан сегдня же 3) Другие пользователи не получат доступа и не будут созданы
Но мы редко работаем с системами где есть AD и нет ЗУП, и зачастую импортером пользователей служит именно ЗУП, а АД дополняет его авторизацией
[QUOTE]Владимир Голубь написал: Какие возможности дает Битрикс для работы с ней, кроме функций класса коннектора ?[/QUOTE]
Работать с данной СУБД через [URL=https://dev.1c-bitrix.ru/learning/course/?CHAPTER_ID=05748&COURSE_ID=43]ORM[/URL].
[QUOTE]Владимир Голубь написал: Использовать с данными из БД компоненты я уже не могу ?[/QUOTE]
Компоненты работают с таблицами модулей, а те, в свою очередь лежат в СУБД сайта. Таким образом ни с какими компонентами в стандартной поставке Вы работать не можете (или это не та работа, которую вы подразумеваете)
Александр написал: В структуру входит, в группе есть..
1) Проверяемый пользователь должен: - Быть активен - Находиться в орг.структуре - Иметь группы: Сотрудники (обычно 12), пользователи с правом на голос и авторитет (3 и 4 группы)
Для того чтобы пользователь попадал в эти группы, нужно чтобы на 3 странице настроек подключения к AD был соответсвующий маппинг и авторизуемый пользователь находился в этих группах!
2) Проверку этих параметром нужно проводить ПОСЛЕ того как пользователь залогинился, так как при логине происходит запрос к AD и данные ОБНОВЛЯЮТСЯ!
3) Поведение с переходом при входе на портал попадают на /stream это нормальное поведение, т.к. главная страница может быть переопределена пользователем (дефолтно главная страница это живая лента - /stream/)
4) Выделенные права менять не нужно иначе любой НЕЗАЛОГИНЕНЫЙ пользователь сможет читать портал
Александр написал: Администрирование => Контент => Структура сайта => Файлы и папки => справа в окне с файлами на самой последней странице находишь фаил index.php => В свойствах выбираешь права на доступ к контенту => там выставляешь доступ по не авторизованным и своим группам на доступ или запрет к файлу.
Нет, так делать на корп. пораталах не нужно.
Цитата
Александр написал: А где это "Маппинг их в группу сотрудники не обеспечен" смотреть?
Либо Вы должны тянуть орг.структуру так же из AD Либо Вы должны тянуть структуру из 1С в связке с АД Либо Вы должны маппить руками (самостоятельно распределять после добавления) *
[QUOTE]Andrey Ovchinnikov написал: Собственно вопрос: какие настройки нужно затронуть, чтобы добиться этого соответствия?[/QUOTE]
1) Почта на сайте (на сервере у MTA) должна соответствовать отправителю письма. Т.е. если почта с сайта отправляется с noreply@site.ru, то и письмо о заказе должно отправляться с noreply@site.ru, но никак не sale@site.ru 2) Проверьте не только E-mail отправителя по-умолчанию с сайта, но и почтовый шаблон уведомления о заказе.