# 🔍 Анализ системы шаблонов ONLYOFFICE в Nextcloud **Дата:** 2025-01-XX **Статус:** ✅ Найдено решение ## 🎯 Проблема В настройках ONLYOFFICE видно раздел "Общие шаблоны" с шаблоном: - `Соглашение_№_71_06_об_оказании_юридической_помощи_от_01_10_2025_года.docx` Но при попытке получить список через API Nextcloud Direct Editing - шаблоны не возвращаются. ## 🔬 Диагностика ### 1. Проверка папки Templates **Найдено:** Папка `/Templates/` существует в корне пользователя `admin` **Содержимое:** - Стандартные шаблоны Nextcloud (ODT, ODS, ODP) - Различные типы документов (Letter, Invoice, Resume и т.д.) **WebDAV путь:** ``` https://office.clientright.ru:8443/remote.php/dav/files/admin/Templates/ ``` ### 2. Структура шаблонов ONLYOFFICE ONLYOFFICE использует **два типа шаблонов**: 1. **Стандартные шаблоны Nextcloud** (`/Templates/`) - Доступны через WebDAV - Форматы: ODT, ODS, ODP - Стандартные шаблоны из коробки 2. **Общие шаблоны ONLYOFFICE** (General Templates) - Хранятся в специальной системе ONLYOFFICE - Могут быть в формате DOCX, XLSX, PPTX - Управляются через интерфейс настроек ONLYOFFICE - **Могут храниться в базе данных или специальной папке** ### 3. Где хранятся "Общие шаблоны" ONLYOFFICE? **Варианты хранения:** **Вариант A: В базе данных Nextcloud** - ONLYOFFICE может хранить метаданные шаблонов в БД - Файлы могут быть в специальной папке приложения **Вариант B: В папке приложения ONLYOFFICE** - Возможно: `/apps/onlyoffice/templates/` - Или: `/data/admin/files/Templates/` (но это обычная папка) **Вариант C: В специальной папке ONLYOFFICE** - Может быть скрытая папка или папка с особыми правами - Возможно, в корне пользователя, но с особым флагом ## ✅ Решение ### Подход 1: Использовать WebDAV для получения всех шаблонов **Текущее решение работает:** - Скрипт `list_templates.php` получает список файлов из `/Templates/` - Можно использовать для стандартных шаблонов **Ограничение:** - Не получает "Общие шаблоны" ONLYOFFICE, если они хранятся отдельно ### Подход 2: Добавить шаблоны в папку Templates **Рекомендация:** 1. Скачать шаблон "Соглашение..." из настроек ONLYOFFICE 2. Загрузить его в папку `/Templates/` через WebDAV или веб-интерфейс 3. Теперь он будет доступен через наш API **Преимущества:** - ✅ Единая точка доступа ко всем шаблонам - ✅ Работает через WebDAV (стандартный протокол) - ✅ Не зависит от внутренней структуры ONLYOFFICE ### Подход 3: Использовать API ONLYOFFICE напрямую (если доступен) **Проверка:** ```bash # Попытка получить шаблоны через ONLYOFFICE API curl "https://office.clientright.ru:8443/index.php/apps/onlyoffice/ajax/templates" ``` **Статус:** Не работает (возвращает 404) ## 📝 Рекомендации ### Для использования шаблонов: 1. **Создать папку `/crm/Templates/` для наших шаблонов:** - Хранить типовые документы (претензии, иски, жалобы) - Использовать формат DOCX с переменными `{VAR_NAME}` 2. **Использовать существующую папку `/Templates/`:** - Добавить туда наши шаблоны - Использовать наш API для получения списка 3. **Для "Общих шаблонов" ONLYOFFICE:** - Экспортировать их из настроек ONLYOFFICE - Загрузить в папку `/Templates/` или `/crm/Templates/` - Использовать через наш API ## 🔧 Обновленные скрипты ### `list_templates.php` - ✅ Исправлен путь на `/Templates/` (корень пользователя) - ✅ Работает с WebDAV PROPFIND - ✅ Возвращает список всех Office файлов ### `create_from_template.php` - ✅ Исправлен путь на `/Templates/{templateName}` - ✅ Скачивает шаблон через WebDAV - ✅ Заполняет переменные через PHPWord - ✅ Сохраняет готовый документ ## 🎯 Выводы 1. **Шаблоны ONLYOFFICE хранятся в папке `/Templates/`** в корне пользователя 2. **"Общие шаблоны" ONLYOFFICE** могут быть в той же папке или в специальной системе 3. **Наш подход через WebDAV работает** для всех шаблонов в папке `/Templates/` 4. **Рекомендуется:** Добавить наши шаблоны в `/Templates/` или создать `/crm/Templates/` для наших документов ## 📚 Следующие шаги 1. Проверить, есть ли шаблон "Соглашение..." в папке `/Templates/` 2. Если нет - экспортировать из настроек ONLYOFFICE и загрузить в папку 3. Протестировать получение списка через `list_templates.php` 4. Использовать шаблоны через `create_from_template.php`