При обновлении и добавлении элементов инфоблоков нужно убрать дополнительные обработки передаваемых значений свойств типа файл (PROPERTY_TYPE=F), если эти свойства являются
кастомными (USER_TYPE != "" ).
Например, в файле /bitrix/modules/iblock/admin/iblock_element_edit.php (строка ~568 ) нужно убрать преобразование значения через функцию CIBlock::makeFilePropArray(...).
Это позволит создавать свои загрузчики файлов, которые будут иметь
предсказуемую разработчиком логику. Сейчас же с выпуском обновления Битрикса мой модуль перестал работать из-за того, что передаваемый в значение ID файла:
с какого-то фига вдруг превратился в:
[VALUE] => Array(
[name] =>
[type] =>
[tmp_name] =>
[error] => 4
[size] => 0
) |
Если свойство кастомное то на вход функции ConvertToDB должно поступать ровно то, что отправлено через форму редактирования или через какие-либо средства API.
P.S. В данный момент пришлось переключить свой модуль с использования типа "F" на "N", что накладывает ограничение на использование кастомного свойства в штатных шаблонах решений от Битрикса.