Files
crm.clientright.ru/ИСПРАВЛЕНИЕ_ОТКРЫТИЯ_ФАЙЛОВ_ИЗ_CRM.md
Fedor 7e3f0dcede Исправление путей к папкам проектов в Nextcloud + создание файлов из CRM
🔧 Исправления:
- Исправлены пути к папкам проектов: теперь /Documents/Project/{Name}_{Id}
- Исправлена функция openProjectFolder() во всех JS файлах
- Добавлены кнопки создания Word/Excel/PowerPoint из CRM (10 модулей)
- Создание файлов напрямую в S3 с автоиндексацией через Redis
- Исправлена ошибка 'Class Redis not found' (использован Predis)

📁 Изменённые файлы:
- layouts/v7/lib/nextcloud-editor.js
- crm_extensions/nextcloud_editor/js/nextcloud-editor.js
- layouts/v7/lib/nextcloud-editor-v3.js
- crm_extensions/file_storage/api/create_nextcloud_file.php
- layouts/v7/modules/*/DetailViewHeaderTitle.tpl (10 модулей)
- layouts/v7/modules/Documents/*.tpl (кнопки редактирования)

🎯 Результат:
- Кнопка 'Папка в Nextcloud' открывает правильную папку
- Создание файлов работает молниеносно (прямо в S3)
- Redis события публикуются корректно
- OnlyOffice открывается для редактирования

Проект 391552 теперь открывается по правильному пути!
2025-11-01 12:22:12 +03:00

118 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Исправление открытия файлов из CRM
**Дата:** 31 октября 2025
**Проблема:** Файлы не открывались из CRM для редактирования в Nextcloud
## 🔍 Диагностика
### Проблема 1: 7,295 старых файлов в корне Documents
**Симптомы:** Папка Documents очень долго открывается
**Причина:** В корне папки Documents находилось 7,295 старых файлов/папок (структура до миграции)
```sql
SELECT
CASE
WHEN path LIKE '%Project/%' THEN 'В Project (OK)'
WHEN path LIKE '%Contacts/%' THEN 'В Contacts (OK)'
WHEN path LIKE '%Accounts/%' THEN 'В Accounts (OK)'
WHEN path LIKE '%HelpDesk/%' THEN 'В HelpDesk (OK)'
WHEN path LIKE '%Invoice/%' THEN 'В Invoice (OK)'
ELSE 'В корне Documents (ПЛОХО!)'
END as location,
COUNT(*) as count
FROM oc_filecache
WHERE storage = 4
AND path LIKE 'crm2/CRM_Active_Files/Documents/%'
GROUP BY location;
```
**Результат:**
- Project: 11,547 файлов ✅
- Contacts: 2,323 файлов ✅
- Accounts: 155 файлов ✅
- HelpDesk: 71 файлов ✅
- Invoice: 38 файлов ✅
- **В корне Documents: 7,295 файлов ❌**
**Решение:** Рекомендуется не открывать корень Documents, а работать напрямую с подпапками:
- `Documents/Project/`
- `Documents/Contacts/`
- `Documents/Accounts/`
---
### Проблема 2: Неправильный редирект в open_file_v2.php
**Симптомы:** Файлы не открывались из CRM после редиректа
**Причина:** URL содержал лишний параметр `dir=/`:
```php
// ❌ БЫЛО:
$redirectUrl = $nextcloudUrl . '/apps/files/files/' . $fileId . '?dir=/&editing=true&openfile=true';
// ✅ СТАЛО:
$redirectUrl = $nextcloudUrl . '/apps/files/files/' . $fileId . '?editing=true&openfile=true';
```
**Файл:** `/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/api/open_file_v2.php`
**Изменение:** Удалён параметр `dir=/` из редиректа
---
## ✅ Проверка работоспособности
### Тест скрипта локально:
```bash
php -r "
\$_GET['fileName'] = 'https://s3.twcstorage.ru/.../Исковоеаявление_(проект)_395695.docx';
\$_GET['recordId'] = '395695';
require '/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/api/open_file_v2.php';
"
```
**Результат:**
```
Nextcloud Editor: PROPFIND -> https://office.clientright.ru:8443/remote.php/dav/files/admin/crm/...
Nextcloud Editor: HTTP код: 207
Nextcloud Editor: Получен fileId: 86323
Nextcloud Editor: Redirect to https://office.clientright.ru:8443/apps/files/files/86323?editing=true&openfile=true
```
**Работает!**
### Тест редиректа:
```bash
curl -I "https://office.clientright.ru:8443/apps/files/files/86323?editing=true&openfile=true" --user admin:office
```
**Результат:** `HTTP/2 200`
---
## 📋 Осталось сделать
### Опционально (не срочно):
1. **Очистить старые файлы из корня Documents** - переместить их в архив или удалить
2. **Настроить автоматическую очистку** при миграции файлов
3. **Скрыть корень Documents** в интерфейсе, если он не используется
### Текущее состояние:
- ✅ Файлы открываются из CRM
- ✅ Редактирование работает
- ✅ Collabora Online подключён
- ⚠️ Корень Documents открывается медленно (7,295 объектов)
- ✅ Подпапки открываются быстро
---
## 🎯 Итог
**Главное исправление:** Удалён лишний параметр `dir=/` из URL редиректа
**Файл изменён:**
- `/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/api/open_file_v2.php` (строка 102)
**Статус:** ✅ Работает