Files
crm.clientright.ru/ТЕСТИРОВАНИЕ_СОХРАНЕНИЯ_ONLYOFFICE.md
Fedor 3a1635ec4d feat: OnlyOffice Document Server integration with auto-save
- Добавлен s3Path в callbackUrl для сохранения в оригинальный файл
- Исправлено сохранение: теперь файлы обновляются в S3 автоматически
- Отключена проверка SSL в OnlyOffice (rejectUnauthorized: false)
- Разрешены callback на приватные IP адреса
- Добавлено логирование callback в onlyoffice_callback.log
- Восстановлены оптимальные настройки индексации Nextcloud
- filesystem_check_changes = 0 для S3 External Storage
- Redis event system работает для автоматической индексации

Документация:
- ИСПРАВЛЕНИЕ_СОХРАНЕНИЯ_ONLYOFFICE_01_11_2025.md
- ИСПРАВЛЕНИЕ_SSL_ONLYOFFICE_01_11_2025.md
- ВОССТАНОВЛЕНИЕ_ОПТИМИЗАЦИИ_01_11_2025.md
- ONLYOFFICE_НАСТРОЙКИ.md
- ТЕСТИРОВАНИЕ_СОХРАНЕНИЯ_ONLYOFFICE.md
2025-11-01 10:32:51 +03:00

302 lines
9.4 KiB
Markdown
Raw Permalink 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.

# Тестирование сохранения в OnlyOffice
**Дата:** 1 ноября 2025
**Цель:** Проверить что файлы сохраняются после редактирования
---
## ✅ Что уже сделано
### 1. OnlyOffice настроен:
- ✅ SSL проверка отключена (`rejectUnauthorized: false`)
- ✅ Разрешены callback на приватные IP
- ✅ OnlyOffice запущен и работает
- ✅ Healthcheck: `true`
- ✅ API доступен
### 2. Скрипты обновлены:
-`open_file_v2.php`: callbackUrl с параметром `s3Path`
-`onlyoffice_callback.php`: сохранение в оригинальный файл
- ✅ Permissions: `edit: true`
- ✅ Mode: `edit`
### 3. Логирование включено:
- ✅ Логи callback: `/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/onlyoffice_callback.log`
---
## 🧪 Как протестировать
### Шаг 1: Открой файл из CRM
**Пример URL:**
```
https://crm.clientright.ru/crm_extensions/file_storage/api/open_file_v2.php?recordId=395695&fileName=https%3A%2F%2Fs3.twcstorage.ru%2Ff9825c87-4e3558f6-f9b6-405c-ad3d-d1535c49b61c%2Fcrm2%2FCRM_Active_Files%2FDocuments%2FProject%2F...
```
---
### Шаг 2: Проверь кнопку "Сохранить"
**Что должно быть:**
- ✅ Кнопка "Сохранить" **активна** (не серая)
- ✅ Можно редактировать текст
-В правом верхнем углу есть меню "Файл"
**Если кнопка НЕАКТИВНА:**
1. Открой консоль браузера (F12)
2. Посмотри на ошибки (красные строки)
3. Сделай скриншот и покажи
---
### Шаг 3: Внеси изменения
1. **Добавь текст** в документ (например: "ТЕСТ 123")
2. **Нажми Ctrl+S** или кнопку "Сохранить"
3. **Подожди 2-3 секунды**
---
### Шаг 4: Проверь логи
```bash
# Смотрим логи callback
tail -f /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/onlyoffice_callback.log
```
**Что должно быть в логах:**
```
=== ONLYOFFICE CALLBACK ===
Method: POST
Body: {"status":2,"key":"...","url":"http://..."}
Callback Status: 2, Key: ...
File saved! Download URL: http://...
Downloaded file: ... bytes
Saving to original path: CRM_Active_Files/Documents/Project/.../file.docx
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
File saved to S3: CRM_Active_Files/Documents/Project/.../file.docx
```
**Если логов НЕТ:**
- OnlyOffice НЕ вызывает callback
- Проблема с SSL или доступностью
---
### Шаг 5: Закрой файл и открой снова
1. **Закрой** вкладку с редактором
2. **Открой тот же файл** из CRM заново
3. **Проверь** - изменения должны быть видны! ✅
---
## 🔍 Отладка
### Если кнопка "Сохранить" неактивна:
#### 1. Консоль браузера (F12):
```javascript
// Смотри на ошибки в консоли
// Ищи красные строки с "error", "callback", "ssl"
```
#### 2. Network tab (вкладка "Сеть"):
```
- Открой вкладку "Network" (Сеть)
- Обнови страницу с файлом
- Найди запрос к "api.js"
- Посмотри статус (должен быть 200)
```
#### 3. Проверь OnlyOffice логи:
```bash
docker logs --tail 50 onlyoffice-standalone 2>&1 | grep -i "error\|callback"
```
#### 4. Проверь доступность callback из браузера:
```bash
curl -X POST "https://crm.clientright.ru/crm_extensions/file_storage/api/onlyoffice_callback.php?s3Path=test.docx" \
-H "Content-Type: application/json" \
-d '{"status":1,"key":"test"}'
# Должен вернуть: {"error":0}
```
---
### Если файл НЕ сохраняется:
#### 1. Проверь логи callback:
```bash
tail -100 /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/onlyoffice_callback.log
```
**Что искать:**
- `=== ONLYOFFICE CALLBACK ===` - есть ли вызовы?
- `Callback Status: 2` - статус сохранения
- `Saving to original path:` - путь к файлу
- `File saved to S3:` - успешное сохранение
- `ERROR:` - ошибки
#### 2. Проверь S3 доступ:
```bash
# Проверяем что файл есть в S3
grep "File saved to S3:" /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/onlyoffice_callback.log | tail -1
```
#### 3. Проверь размер файла:
```bash
# Если callback сработал, проверяем размер сохранённого файла
grep "Downloaded file:" /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/onlyoffice_callback.log | tail -1
# Должен быть > 0 bytes
```
---
## 📊 Статусы OnlyOffice callback
| Status | Что происходит | Callback вызывается? |
|--------|----------------|----------------------|
| 0 | Документ не готов | ❌ Нет |
| 1 | Документ открыт для редактирования | ✅ Да (status=1) |
| 2 | **Документ сохранён** | ✅ **Да (status=2)** |
| 3 | Ошибка при сохранении | ✅ Да (с ошибкой) |
| 4 | Документ закрыт без изменений | ✅ Да (status=4) |
| 6 | Документ редактируется | ❌ Нет |
| 7 | Форсированное сохранение | ✅ Да (status=7) |
**Важно:** Мы обрабатываем только **status=2** (документ сохранён)!
---
## 🛠️ Команды для проверки
### Проверка OnlyOffice:
```bash
# Статус
docker ps | grep onlyoffice-standalone
# Healthcheck
curl -s https://office.clientright.ru:9443/healthcheck
# Логи
docker logs --tail 50 onlyoffice-standalone
```
### Проверка callback:
```bash
# Логи callback
tail -f /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/onlyoffice_callback.log
# Тест callback
curl -X POST "https://crm.clientright.ru/crm_extensions/file_storage/api/onlyoffice_callback.php?s3Path=test.docx" \
-H "Content-Type: application/json" \
-d '{"status":2,"key":"test123","url":"http://test.com/file.docx"}'
```
### Очистка логов (если нужно):
```bash
# Очистить логи
> /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/onlyoffice_callback.log
# Проверить что пустой
cat /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/onlyoffice_callback.log
```
---
## 🎯 Что делать если НЕ работает
### Вариант 1: Проблема с SSL (наиболее вероятно)
```bash
# Проверить конфиг OnlyOffice
docker exec onlyoffice-standalone cat /etc/onlyoffice/documentserver/local-production-linux.json
# Должно быть:
# "rejectUnauthorized": false
# Если нет - добавить:
docker exec onlyoffice-standalone bash -c 'cat > /etc/onlyoffice/documentserver/local-production-linux.json << "EOF"
{
"services": {
"CoAuthoring": {
"utils": {
"rejectUnauthorized": false
},
"request-filtering-agent": {
"allowPrivateIPAddress": true,
"allowMetaIPAddress": true
}
}
}
}
EOF
'
# Перезапустить
docker restart onlyoffice-standalone
```
### Вариант 2: Использовать HTTP для callback (временно)
Изменить в `open_file_v2.php`:
```php
// Было:
"callbackUrl": "https://crm.clientright.ru/..."
// Стало:
"callbackUrl": "http://crm.clientright.ru/..."
```
### Вариант 3: Добавить логирование в консоль браузера
Добавить в `open_file_v2.php` перед `new DocsAPI.DocEditor`:
```javascript
console.log('📋 OnlyOffice Config:', {
documentType: "<?php echo $fileType; ?>",
fileType: "<?php echo $ext; ?>",
key: "<?php echo $documentKey; ?>",
url: <?php echo json_encode($fileUrl); ?>,
callbackUrl: "<?php echo $redirectUrl; ?>",
mode: "edit",
permissions: { edit: true }
});
```
---
## ✅ Успешный результат
**Если всё работает, ты увидишь:**
1. **Кнопка "Сохранить" активна**
2. **В консоли браузера:**
```
📁 Файл: Исковоеаявление_(проект)_395695.docx
🔗 S3 URL: https://s3.twcstorage.ru/...
🔑 Document Key (unique): abc123...
✅ Standalone OnlyOffice (9443) + Direct S3 URL!
✅ Editor ready!
✅ Document loaded!
```
3. **В логах callback:**
```
=== ONLYOFFICE CALLBACK ===
Callback Status: 2
File saved! Download URL: ...
Saving to original path: CRM_Active_Files/...
✅ File saved to S3
```
4. **После повторного открытия:**
- Изменения сохранены! ✅
- Текст "ТЕСТ 123" виден!
---
**Начни с Шага 1 и отпишись о результатах!** 🚀