Рейтинг: 6.5768  
Новая
Предложил Пользователь 136059 11.11.2016 12:02:59

CRM: Конвертация пользовательских полей

На данный момент в системе Битрикс24 существует возможность добавить свои типы пользовательских полей, которые в свою очередь можно добавить к CRM-сущностям.
В недавней версии, развитие получила функциональность конвертации лида в различные сущности, однако на пользовательские поля это не распространяется.

Поясню: при разработке своего типа полей (наследуемого от другого простого типа) конвертация работает, но для всех полей НЕ относящихся к типам файл. Если отнаследоваться от поля типа файл, то результат не будет конвертирован (т.е. поле будет пустое).

Если копнуть проблему глубже (например с лидами), то "бага" кроется в классе \Bitrix\Crm\Conversion\LeadConversionWizard в методе prepareDataForEdit.
Примерно на 150 строчке есть следующей фрагмент:

// hack for UF
if($userField['USER_TYPE_ID'] === 'file')

Если отнаследоваться от типа файл, создать кастомный обработчик и назвать тип file_extended, то для работы конвертации необходимо заменить следующим фрагментом (например):
if($userField['USER_TYPE_ID'] === 'file'||$userField['USER_TYPE_ID'] === 'file_extended')
Предлагаю сделать либо костыль в виде функции обработчика для возможного расширения данного поля, либо (как правильнее) применить принципы ооп и проверить на абстрактный класс/интерфейс пользовательского поля-родителя.

P.S. Этот "хак" в ядре сотрудники ТП битрикса проигнорировали, сославшись на то, что конвертация "своих типов пользовательских полей не рассматривается в рамках техподдержки"
Рейтинг: 7.6062  
На голосовании
Предложил Пользователь 65017 15.08.2013 12:43:56

Раздел критики кода битрикса

Для улучшения кода компонентов и ядра, предлагаю открыть раздел, куда критики битрикса и недоумевающие разработчики могут выкладывать куски кода продукта с вопросами потипу "Боже, за такой говнокод обычно расстреливают"

Поскольку достучатся до исправления говнокода каким либо спосом нереально.

Что это даст:

1) Исправление откровенного говнокода
2) Пристыжение такого кода в будущем
3) Улучшение качества продукта за счет комьюнити. ( Некоторые вообще предложат сами пути лучшего решения)
4) Улучшит отношение со стороны критики.


Прошу голосовать за. Этот раздел жизненно необхоим нам всем как нельзя больше.