Не могу получить выборку элементов смарт-процесса (СП) с фильтром по наблюдателям.
К СП наблюдатели подключены, в некоторых элементах поле это заполнено.
Делаю примерно:
В ответ:
Если в фильтрах не указывать observers -- запрос проходит, но в возвращаемых данных observers - пусто
Это так у всех? Или конкретно мне не повезло?!
Есть подозрения, что связь с наблюдателями где-то в кодне не прописали. Или я что-то не так делаю? Может быть я могу что-то со своей стороны сделать, не влезая сильно в код ядра?
ORM описание таблицы b_crm_observer есть, лежит в /bitrix/modules/crm/lib/observer/entity/observertable.php (содержимое явно больше, чем создается по умолчанию через админку).
Пробовал для таблицы СП делать GetList - та же история: без фильтра по наблюдателю работает, с фильтром -- уходит по тому же пути и в итоге приходит к той же ошибке.
К СП наблюдатели подключены, в некоторых элементах поле это заполнено.
Делаю примерно:
Код |
---|
<?php use Bitrix\Crm\Service; require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'); $entityTypeId = 157; $factory = Service\Container::getInstance()->getFactory($entityTypeId); $r = $factory->getItems(['filter'=>['observers'=>504]]); |
В ответ:
Код |
---|
[Error] Call to undefined method Bitrix\Main\ORM\Fields\Relations\OneToMany::getColumnName() (0) /home/bitrix/www/bitrix/modules/main/lib/orm/query/chainelement.php:266 #0: Bitrix\Main\ORM\Query\ChainElement->getSqlDefinition() /home/bitrix/www/bitrix/modules/main/lib/orm/query/chain.php:499 #1: Bitrix\Main\ORM\Query\Chain->getSqlDefinition() /home/bitrix/www/bitrix/modules/main/lib/orm/query/query.php:2620 #2: Bitrix\Main\ORM\Query\Query->getFilterCswFields(array) /home/bitrix/www/bitrix/modules/main/lib/orm/query/query.php:2228 #3: Bitrix\Main\ORM\Query\Query->buildWhere() /home/bitrix/www/bitrix/modules/main/lib/orm/query/query.php:2461 #4: Bitrix\Main\ORM\Query\Query->buildQuery() /home/bitrix/www/bitrix/modules/main/lib/orm/query/query.php:933 #5: Bitrix\Main\ORM\Query\Query->exec() /home/bitrix/www/bitrix/modules/main/lib/orm/data/datamanager.php:513 #6: Bitrix\Main\ORM\Data\DataManager::getList(array) /home/bitrix/www/bitrix/modules/crm/lib/Model/Dynamic/PrototypeItem.php:159 #7: Bitrix\Crm\Model\Dynamic\PrototypeItem::getList(array) /home/bitrix/www/bitrix/modules/crm/lib/Service/Factory.php:384 #8: Bitrix\Crm\Service\Factory->getItems(array) /home/bitrix/www/get_sp.php:28 |
Если в фильтрах не указывать observers -- запрос проходит, но в возвращаемых данных observers - пусто
Это так у всех? Или конкретно мне не повезло?!
Есть подозрения, что связь с наблюдателями где-то в кодне не прописали. Или я что-то не так делаю? Может быть я могу что-то со своей стороны сделать, не влезая сильно в код ядра?
ORM описание таблицы b_crm_observer есть, лежит в /bitrix/modules/crm/lib/observer/entity/observertable.php (содержимое явно больше, чем создается по умолчанию через админку).
Пробовал для таблицы СП делать GetList - та же история: без фильтра по наблюдателю работает, с фильтром -- уходит по тому же пути и в итоге приходит к той же ошибке.