function OnOrderNewSendEmailHandler_addBill($orderID, &$eventName, &$arFields){
$filePath = $_SERVER['DOCUMENT_ROOT'] . '/path/to/file.pdf'; //путь до файла
$fileId = \CFile::SaveFile(\CFile::MakeFileArray($filePath), "sale"); //сохраняем файл в базу
\CEvent::SendImmediate($eventName, SITE_ID, $arFields, 'Y', '', array($fileId)); //отправляем письмо с вложением
\CFile::Delete($fileId); //удаляем файл из базы, если требуется
return false; //отменяем отправку основного события, чтобы не дублировать.
}
AddEventHandler("sale", "OnOrderNewSendEmail", "OnOrderNewSendEmailHandler_addBill");
Проанализировав проблему, пришел к данному решению:
Чаще всего данная проблема проявлялась, когда сайт работал в кодировке utf8 и при разработке использовались компоненты / модули, файлы которых, а именно файлы .description.php и соответственные языковые файлы были в отличной от сайта кодировки, поэтому:
1. В настройках модуля "Управление структурой" убираем галочку "Использовать новый визуальный редактор" 2. Выявляем компоненты, которые использую отличную от сайта кодировку по "крякозябрам", как в данном комментарии https://dev.1c-bitrix.ru/community/forums/messages/forum6/topic81931/message421697/#message421697 3. Переводим файлы .description и их языковые файлы в соответствующую сайту кодировку. 4. Включаем новый визуальный редактор обратно.