pquery($query1, array($recordId)); if ($adb->num_rows($result1) > 0) { $row1 = $adb->fetchByAssoc($result1, -1, false); echo "✅ Документ найден в vtiger_notes:\n"; echo " - Title: " . (isset($row1['title']) ? $row1['title'] : 'N/A') . "\n"; echo " - Filename: " . (isset($row1['filename']) ? $row1['filename'] : 'N/A') . "\n"; echo " - Filelocationtype: " . (isset($row1['filelocationtype']) ? $row1['filelocationtype'] : 'N/A') . "\n"; echo " - Deleted: " . (isset($row1['deleted']) ? $row1['deleted'] : 'N/A') . "\n"; echo " - Owner: " . (isset($row1['smownerid']) ? $row1['smownerid'] : 'N/A') . "\n"; echo " - Setype: " . (isset($row1['setype']) ? $row1['setype'] : 'N/A') . "\n"; echo " - Все поля: " . print_r($row1, true) . "\n\n"; } else { echo "❌ Документ НЕ найден в vtiger_notes!\n\n"; } // 2. Проверка в vtiger_attachments $query2 = "SELECT a.*, sar.crmid FROM vtiger_attachments a LEFT JOIN vtiger_seattachmentsrel sar ON sar.attachmentsid = a.attachmentsid WHERE sar.crmid = ?"; $result2 = $adb->pquery($query2, array($recordId)); if ($adb->num_rows($result2) > 0) { echo "✅ Вложения найдены:\n"; while ($row2 = $adb->fetchByAssoc($result2)) { echo " - AttachmentsID: " . ($row2['attachmentsid'] ?? 'N/A') . "\n"; echo " - Name: " . ($row2['name'] ?? 'N/A') . "\n"; echo " - Storedname: " . ($row2['storedname'] ?? 'N/A') . "\n"; echo " - Path: " . ($row2['path'] ?? 'N/A') . "\n"; echo " - Type: " . ($row2['type'] ?? 'N/A') . "\n"; echo " - Size: " . ($row2['size'] ?? 'N/A') . "\n"; // Проверка существования файла if (isset($row2['path']) && isset($row2['attachmentsid']) && isset($row2['storedname'])) { $filePath = $row2['path'] . $row2['attachmentsid'] . '_' . $row2['storedname']; if (file_exists($filePath)) { echo " - ✅ Файл существует: $filePath\n"; echo " - Размер файла: " . filesize($filePath) . " байт\n"; } else { echo " - ❌ Файл НЕ существует: $filePath\n"; } } echo "\n"; } } else { echo "❌ Вложения НЕ найдены!\n\n"; } // 3. Проверка в vtiger_notescf (кастомные поля) $query3 = "SELECT * FROM vtiger_notescf WHERE notesid = ?"; $result3 = $adb->pquery($query3, array($recordId)); if ($adb->num_rows($result3) > 0) { $row3 = $adb->fetchByAssoc($result3); echo "✅ Кастомные поля найдены:\n"; foreach ($row3 as $key => $value) { if ($key !== 'notesid' && !empty($value)) { echo " - $key: $value\n"; } } echo "\n"; } else { echo "⚠️ Кастомные поля не найдены (это нормально)\n\n"; } // 4. Проверка S3 ключа (если filelocationtype = 'E') if (isset($row1['filelocationtype']) && $row1['filelocationtype'] == 'E') { $query4 = "SELECT cf_* FROM vtiger_notescf WHERE notesid = ?"; $result4 = $adb->pquery($query4, array($recordId)); if ($adb->num_rows($result4) > 0) { $row4 = $adb->fetchByAssoc($result4); echo "📦 Проверка S3 хранилища:\n"; foreach ($row4 as $key => $value) { if (strpos($key, 's3') !== false || strpos($key, 'S3') !== false) { echo " - $key: $value\n"; } } echo "\n"; } } // 5. Проверка связей $query5 = "SELECT rel.*, e.setype FROM vtiger_crmentityrel rel LEFT JOIN vtiger_crmentity e ON e.crmid = rel.relcrmid WHERE rel.crmid = ? OR rel.relcrmid = ?"; $result5 = $adb->pquery($query5, array($recordId, $recordId)); if ($adb->num_rows($result5) > 0) { echo "🔗 Связи документа:\n"; while ($row5 = $adb->fetchByAssoc($result5)) { echo " - " . $row5['module'] . " (" . $row5['crmid'] . ") ↔ " . $row5['relmodule'] . " (" . $row5['relcrmid'] . ")\n"; } echo "\n"; } else { echo "⚠️ Связи не найдены\n\n"; } echo "=== Проверка завершена ===\n";