#Debug(SPrintF('[comp/www/CreateAndSendInvoices]: Attachments = %s',print_r($Attachments,true)));
 #-------------------------------------------------------------------------------
 # а вложений, в принципе, может и не быть. тогда слать ничё не надо - задача как раз слать счета
 if (SizeOf($Attachments) > 0 || $Settings['CreateAndSendInvoicesSendEmptyMail']) {
     #-------------------------------------------------------------------------------
     # перебираем файлы, генерим письмо
     $EmailAttachments = array();
     #-------------------------------------------------------------------------------
     foreach ($Attachments as $InvoiceID) {
         #-------------------------------------------------------------------------------
         $Comp = Comp_Load('www/InvoiceDownload', array('InvoiceID' => $InvoiceID, 'IsStamp' => TRUE, 'IsNoHeaders' => TRUE));
         if (Is_Error($Comp)) {
             return ERROR | @Trigger_Error(500);
         }
         #-------------------------------------------------------------------------------
         $EmailAttachments[] = array('Name' => SPrintF('Invoice_%s.pdf', $InvoiceID), 'Size' => StrLen($Comp), 'Mime' => 'application/pdf; charset=utf-8', 'Data' => Chunk_Split(Base64_Encode($Comp)));
         #-------------------------------------------------------------------------------
     }
     #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     # а вложений, в принципе, может и не быть ...
     $msgParams = array('EmailAttachments' => SizeOf($EmailAttachments) > 0 ? $EmailAttachments : 'не определено');
     #-------------------------------------------------------------------------------
     $msg = new Message('CreateAndSendInvoices', $Order['UserID'], $msgParams);
     $IsSend = NotificationManager::sendMsg($msg);
     #-------------------------------------------------------------------------------
     switch (ValueOf($IsSend)) {
         case 'error':
             return ERROR | @Trigger_Error(500);
         case 'exception':
             return ERROR | @Trigger_Error(400);
 $TargetUserID = (int) $Message['TargetUserID'];
 $TargetGroupID = (int) $Message['TargetGroupID'];
 #-------------------------------------------------------------------------------
 $Upload = Upload_Get('TicketMessageFile', $Message['FileName']);
 #-------------------------------------------------------------------------------
 switch (ValueOf($Upload)) {
     case 'error':
         return ERROR | @Trigger_Error(500);
     case 'exception':
         # No more...
         break;
     case 'array':
         #-------------------------------------------------------------------------------
         $Data = GetUploadedFile('EdesksMessages', $Message['ID']);
         #-------------------------------------------------------------------------------
         $EmailAttachments = array(array('Name' => $Upload['Name'], 'Size' => GetUploadedFileSize('EdesksMessages', $Message['ID']), 'Mime' => GetFileMimeType('EdesksMessages', $Message['ID']), 'Data' => Chunk_Split(Base64_Encode($Data['Data']))));
         #-------------------------------------------------------------------------------
         break;
         #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     default:
         return ERROR | @Trigger_Error(101);
 }
 #-------------------------------------------------------------------------------
 #-------------------------------------------------------------------------------
 if ($TargetGroupID != 1) {
     #-------------------------------------------------------------------------------
     $IsOwner = $Message['UserID'] == ($OwnerID = $Message['OwnerID']);
     #-------------------------------------------------------------------------------
     if ($IsOwner) {
         #-------------------------------------------------------------------------------