Как изменить свойства загружаяемого документа в Битрикс?

Для изменения свойств загружаемого документа в Битрикс можно воспользоваться следующим подходом:

1. Откройте файл-обработчик загрузки документов на сервере. Обычно это файл bitrix/php_interface/init.php или bitrix/php_interface/dbconn.php, в зависимости от версии 1C-Bitrix. Этот файл вызывается перед началом работы ядра системы, поэтому в нём можно определить пользовательские функции и хуки.

2. Создайте пользовательскую функцию (например, changeDocumentProperties), которая будет вызываться в момент загрузки документа.

3. В пользовательской функции changeDocumentProperties можно получить информацию о загруженном файле и его свойствах с помощью объектов класса CFile.

Пример кода для функции changeDocumentProperties:

function changeDocumentProperties($fileID)
{
    $file = CFile::GetFileArray($fileID);
    
    // Получаем информацию о загруженном файле
    $fileName = $file['FILE_NAME'];
    $fileSize = $file['FILE_SIZE'];
    $fileType = $file['CONTENT_TYPE'];
    
    // Меняем необходимые свойства
    // Например, можно изменить название файла
    $newFileName = 'new_file_name' . pathinfo($fileName, PATHINFO_EXTENSION);
    CFile::Rename($fileID, $newFileName);

    // Дополнительные операции по изменению свойств
    // ...
}

4. Чтобы вызвать пользовательскую функцию changeDocumentProperties в момент загрузки документа, необходимо использовать хук OnAfterFileSave. Добавьте следующий код в конце файла-обработчика:

AddEventHandler("main", "OnAfterFileSave", "changeDocumentProperties");

function changeDocumentProperties($fileArray)
{
    if ($fileArray["MODULE_ID"] == "iblock") { 
        // Вызываем пользовательскую функцию только если загружаемый файл принадлежит модулю инфоблоков
        changeDocumentProperties($fileArray["ID"]);
    }
}

Этот хук будет вызываться каждый раз после сохранения файла в системе. Мы проверяем, принадлежит ли загружаемый файл модулю инфоблоков, а затем вызываем пользовательскую функцию changeDocumentProperties, передавая ей идентификатор файла.

Обратите внимание, что указанные примеры являются базовыми и могут быть модифицированы в зависимости от конкретных требований вашего проекта.