# Создание файлов в Nextcloud из CRM **Дата:** 1 ноября 2025 **Цель:** Добавить возможность создания новых Office файлов в Nextcloud прямо из CRM --- ## ✅ Что сделано ### 1. Добавлена функция `createFileInNextcloud()` в JavaScript **Файл:** `layouts/v7/lib/nextcloud-editor.js` **Что делает:** - Запрашивает имя файла у пользователя - Формирует путь к папке записи - Редиректит в Nextcloud для создания файла - Nextcloud создаёт файл и открывает в OnlyOffice --- ### 2. Добавлены кнопки создания в 9 модулей **Модули с кнопками:** 1. ✅ **Project** (Проекты) 2. ✅ **Contacts** (Контакты) 3. ✅ **Accounts** (Контрагенты) 4. ✅ **Potentials** (Сделки) 5. ✅ **Leads** (Лиды) 6. ✅ **HelpDesk** (Тикеты) 7. ✅ **Invoice** (Счета) 8. ✅ **Quotes** (Коммерческие предложения) 9. ✅ **SalesOrder** (Заказы на продажу) 10. ✅ **PurchaseOrder** (Заказы на закупку) --- ### 3. Расположение кнопок **Рядом с кнопкой "Папка в Nextcloud":** ``` [📁 Папка в Nextcloud] [📄] [📊] [📽️] ↑ ↑ ↑ Word Excel PPT ``` **Иконки:** - 📄 **fa-file-word-o** (синяя) - создать .docx - 📊 **fa-file-excel-o** (зелёная) - создать .xlsx - 📽️ **fa-file-powerpoint-o** (красная) - создать .pptx --- ## 🔄 Как работает ### Шаг 1: Пользователь нажимает иконку (например, 📄 Word) ```javascript createFileInNextcloud('Project', '12345', 'Договор_с_клиентом', 'docx') ``` ### Шаг 2: Появляется диалог ``` Введите название файла (без расширения): [Документ_2025-11-01 ] [OK] [Отмена] ``` ### Шаг 3: Скрипт формирует путь ``` Module: Project Record ID: 12345 Record Name: Договор_с_клиентом File Name: Документ_2025-11-01 File Type: docx Nextcloud Path: /crm/crm2/CRM_Active_Files/Documents/Project/Договор_с_клиентом_12345/Документ_2025-11-01.docx ``` ### Шаг 4: Редирект в Nextcloud ``` https://office.clientright.ru:8443/apps/files/? dir=/crm/crm2/CRM_Active_Files/Documents/Project/Договор_с_клиентом_12345 &openfile=Документ_2025-11-01.docx &filetype=docx ``` ### Шаг 5: Nextcloud создаёт файл ``` Nextcloud обнаруживает параметр openfile ↓ Создаёт пустой .docx файл ↓ Открывает в OnlyOffice для редактирования ↓ Пользователь начинает работу! ✅ ``` --- ## 🎨 Внешний вид ### В детальном виде записи (под названием): ``` ┌─────────────────────────────────────┐ │ 🏢 Контрагент: ООО "Ромашка" │ │ ИНН: 1234567890 │ ├─────────────────────────────────────┤ │ [📁 Папка в Nextcloud] [📄] [📊] [📽️] │ └─────────────────────────────────────┘ ``` --- ## 📂 Куда сохраняются файлы ### Структура папок по модулям: ``` /crm/crm2/CRM_Active_Files/Documents/ ├── Project/ │ └── Название_проекта_ID/ │ └── Новый_файл.docx ← Создаётся здесь ├── Contacts/ │ └── Имя_Фамилия_ID/ │ └── Новый_файл.xlsx ├── Accounts/ │ └── Название_компании_ID/ │ └── Новый_файл.pptx ├── Invoice/ │ └── Invoice_номер_ID/ │ └── Новый_файл.docx └── ... и т.д. ``` **Логика:** - Каждая запись → своя папка - Имя папки = `{RecordName}_{RecordID}` - Файлы автоматически привязываются к папке записи --- ## 🧪 Как протестировать ### Шаг 1: Обнови страницу CRM ``` Ctrl+F5 ``` ### Шаг 2: Открой любую запись ``` Например: - Проект → откроетсякарточка - Контакт → откроется карточка - Контрагент → откроется карточка ``` ### Шаг 3: Найди кнопки под названием ``` [📁 Папка в Nextcloud] [📄] [📊] [📽️] ``` ### Шаг 4: Нажми на иконку (например, 📄 Word) ``` 1. Появится диалог с именем файла 2. Введи название (или оставь по умолчанию) 3. Нажми OK 4. Откроется Nextcloud → файл создастся → откроется OnlyOffice! ✅ ``` --- ## 🎯 Примеры использования ### Пример 1: Создание договора для проекта ``` 1. Открой проект "Разработка сайта" 2. Нажми иконку 📄 (Word) 3. Введи: "Договор_на_разработку" 4. Файл создастся в: /Documents/Project/Разработка_сайта_12345/Договор_на_разработку.docx 5. Откроется OnlyOffice для редактирования 6. Заполни договор 7. Автосохранение → файл в Nextcloud + версия! ``` ### Пример 2: Создание таблицы для контакта ``` 1. Открой контакт "Иванов Иван" 2. Нажми иконку 📊 (Excel) 3. Введи: "Расчёт_стоимости" 4. Файл создастся в: /Documents/Contacts/Иван_Иванов_67890/Расчёт_стоимости.xlsx 5. Заполни таблицу в OnlyOffice ``` ### Пример 3: Создание презентации для сделки ``` 1. Открой сделку "Поставка оборудования" 2. Нажми иконку 📽️ (PowerPoint) 3. Введи: "Презентация_продукта" 4. Файл создастся в: /Documents/Potentials/Поставка_оборудования_11111/Презентация_продукта.pptx 5. Создай презентацию в OnlyOffice ``` --- ## 📊 Где видны кнопки | Модуль | Где кнопки | Иконки | |--------|-----------|---------| | **Project** | Детальный вид | 📁 📄 📊 📽️ | | **Contacts** | Детальный вид | 📁 📄 📊 📽️ | | **Accounts** | Детальный вид | 📁 📄 📊 📽️ | | **Potentials** | Детальный вид | 📁 📄 📊 📽️ | | **Leads** | Детальный вид | 📁 📄 📊 📽️ | | **HelpDesk** | Детальный вид | 📁 📄 📊 📽️ | | **Invoice** | Детальный вид | 📁 📄 📊 📽️ | | **Quotes** | Детальный вид | 📁 📄 📊 📽️ | | **SalesOrder** | Детальный вид | 📁 📄 📊 📽️ | | **PurchaseOrder** | Детальный вид | 📁 📄 📊 📽️ | --- ## 🔧 Технические детали ### Файлы: **1. JavaScript функция:** ```javascript // layouts/v7/lib/nextcloud-editor.js function createFileInNextcloud(module, recordId, recordName, fileType) { // Запрашивает имя файла // Вызывает create_nextcloud_file.php // Открывает в новом окне } ``` **2. PHP скрипт:** ```php // crm_extensions/file_storage/api/create_nextcloud_file.php // Формирует путь к файлу в Nextcloud // Редиректит в Nextcloud Files UI // Nextcloud создаёт файл и открывает редактор ``` **3. Шаблоны (10 файлов):** ``` layouts/v7/modules/*/DetailViewHeaderTitle.tpl ``` --- ## 🐛 Если не работает ### Проблема 1: Кнопки не появились ```bash # Очистить кеш Smarty rm -rf /var/www/fastuser/data/www/crm.clientright.ru/test/templates_c/v7/* # Обновить страницу CRM Ctrl+F5 ``` ### Проблема 2: Файл не создаётся ``` - Проверь что папка записи существует в Nextcloud - Проверь права доступа - Посмотри логи: tail -f /var/log/apache2/error.log | grep "CREATE NEXTCLOUD FILE" ``` ### Проблема 3: OnlyOffice не открывается ``` - Проверь что OnlyOffice приложение включено в Nextcloud - docker exec -u www-data nextcloud-fresh php occ app:list | grep onlyoffice ``` --- ## 🎯 Итог ### Что работает: 1. ✅ **Редактирование через CRM** - ⚡ Прямой OnlyOffice (1-2 сек) - 📚 Через Nextcloud (3-5 сек, с версиями) 2. ✅ **Создание новых файлов** - 📄 Word (.docx) - 📊 Excel (.xlsx) - 📽️ PowerPoint (.pptx) - Прямо из карточки записи! - Автоматическое сохранение в правильную папку! 3. ✅ **Версионирование** - Файлы созданные через Nextcloud имеют историю - Можно откатить изменения - Можно посмотреть кто и когда редактировал --- ### Изменённые файлы (всего 11): - ✅ `layouts/v7/lib/nextcloud-editor.js` - ✅ 10 шаблонов DetailViewHeaderTitle.tpl ### Созданные файлы: - ✅ `crm_extensions/file_storage/api/create_nextcloud_file.php` --- **Обнови страницу CRM (Ctrl+F5) и попробуй создать файл!** 🚀 **Нажми на любую иконку (📄 📊 📽️) и увидишь магию!** ✨