Нижеперечисленные шаги объясняют процесс сохранения на Сервере документов

Сохранение файла

  1. Пользователь редактирует документ в редакторе документов.
  2. Редактор документов отправляет изменения сервису редактирования документов.
  3. Пользователь закрывает редактор документов.
  4. Сервис редактирования документов отслеживает окончание работы с документом и собирает изменения, полученные от редактора документов в один документ.
  5. Сервис редактирования документов оповещает сервис хранения документов об окончании редактирования документа, используя callbackUrl из JavaScript API и возвращает ссылку на изменённый документ.
  6. Сервис хранения документов скачивает файл документа со всеми изменениями, сохранёнными из сервиса редактирования документов и сохраняет его.
  1. Создайте обработчик обратных вызовов, чтобы сохранить документ из сервиса редактирования документов.
  2. Создайте html, чтобы Открыть документ.
  3. В скрипте конфигурации, для инициализации Редактора документов, укажите ссылку на файл с обработчиком обратных вызовов в строке параметра.
    new DocsAPI.DocEditor("placeholder", {
        "document": {
            "fileType": "docx",
            "key": "Khirz6zTPdfd7",
            "title": "Пример названия документа.docx",
            "url": "https://example.com/url-to-example-document.docx"
        },
        "documentType": "text",
        "editorConfig": {
            "callbackUrl": "https://example.com/url-to-callback.ashx"
        }
    });

    Где example.com — имя сервера, на котором установлены менеджер документов и сервис хранения документов.

  4. Откройте ваш html файл в браузере и отредактируйте ваш документ.
  5. Закройте Редактор документов. Проверьте ваш документ приблизительно через 10 секунд. Все изменения должны быть сохранены, что будет означать, что конфигурация работает корректно.

Когда редактирование документа завершено, сервис редактирования документов оповещает об этом сервис хранения документов. Время выполнения этой операции вычисляется с использованием времени конвертации файла в формат Office Open XML (которое зависит от размера файла, его сложности и мощности компьютера, и может быть достаточно большим), и начального времени задержки конвертации файла (которое по умолчанию равно 5 секундам). В большинстве случаев это время равно приблизительно 10 секундам, после того, как редактирование завершено.

Начальное время задержки конвертации необходимо для обеспечения возможности возвращения к редактированию файла, без его сохранения, например при перезагрузке веб-станицы с открытым для редактирования документом. По умолчанию начальное время задержки конвертации определяется в файле конфигурации Сервера документов, который может быть найден в следующих директориях:

Для Linux — /etc/r7office/documentserver/default.json
Для Windows — %ProgramFiles%\R7OFFICE\DocumentServer\config\default.json

Если вы хотите изменить его, вы можете использовать файл local.json, где должны быть сохранены все редактируемые параметры. Этот файл должен быть создан в той же папке, что и файл default.json и полная структура объектов для необходимых параметров должна быть сохранена (смотрите примеры ниже).

Пожалуйста, не редактируйте содержимое файла default.json напрямую. Значения по умолчанию будут перезаписаны каждый раз, когда вы перезапускаете Docker-контейнер или обновляете Сервер документов до новой версии, и все ваши изменения будут утеряны.
Параметры
Параметр Описание Тип Пример
services.CoAuthoring.server.savetimeoutdelay Определяет начальное время задержки конвертации (в миллисекундах) после того, как редактируемый файл был закрыт. целочисленный 5000
Пример файла конфигурации local.json
{
    "services": {
        "CoAuthoring": {
            "server": {
                "savetimeoutdelay": 5000
            }
        }
    }
}

Сервис редактирования документов позволяет получить текущее состояние документа до окончания редактирования. В Сервере документов этот процесс называется forcesave. Когда он инициализируется, сервис редактирования документов выполняет запрос к Обработчик обратных вызовов со ссылкой на документ, передаваемой в качестве параметра url и параметром status, установленным в значение 6. Процесс принудительного сохранения может быть инициализирован двумя способами:

  • С помощью запроса к командному сервису документов, с параметром c, установленным в значение forcesave. Параметр forcesavetype будет иметь значение 0 при отправке запроса к обработчику обратных вызовов.
  • Включите режим editorConfig.customization.forcesave, установив значение этого параметра равным true в конфигурации инициализации редактора. В этом случае, каждый раз, когда пользователь будет нажимать кнопку Сохранить, будет произведено принудительное сохранение, и параметр forcesavetype будет иметь значение 1, когда запрос отправляется к обработчику обратных вызовов.
  • Вы можете включить функцию повторения принудительного авто сохранения на Сервере документов в дополнительном файле конфигурации, который может быть найден (в случае, если вы уже его создали) или помещён по следующему пути:
    Для Linux — /etc/r7office/documentserver/local.json
    Для Windows — %ProgramFiles%\R7OFFICE\DocumentServer\config\local.json
    Параметры
    Параметр Описание Тип Пример
    services.CoAuthoring.autoAssembly.enable Указывает, включён ли параметр повторения принудительного сохранения. Значением по умолчанию является false. логический false
    services.CoAuthoring.autoAssembly.interval Определяет временной интервал в минутах, между принудительными сохранениями. строка 5m
    Пример файла конфигурации local.json
    {
        "services": {
            "CoAuthoring": {
                "autoAssembly": {
                    "enable": true,
                    "interval": "5m"
                }
            }
        }
    }

    Параметр forcesavetype будет иметь значение 2 при отправке запроса к обработчику обратных вызовов.

Обратите внимание, что вы не можете видеть версии документов, созданные с опцией принудительного сохранения, в истории документов. Причина в том, что Р7 Document Server выделяет изменения, сделанные с начала текущего сеанса работы с документом, а не с начала версии документа. И даже если за один сеанс создается несколько версий документа, все изменения из этого сеанса будут выделены.

Начиная с версии 7.0 параметр сервера assemblyFormatAsOrigin включен по умолчанию для сохранения собранного файла в исходном формате. Он используется для изменения формата файла с OOXML на ODF или для сохранения файлов с макросами.

Параметры
Параметр Описание Тип Пример
services.CoAuthoring.server.assemblyFormatAsOrigin Определяет, будет ли собранный файл сохранен в исходном формате или нет. Значение по умолчанию true. логический true
Пример конфигурации local.json
{
    "services": {
        "CoAuthoring": {
            "server": {
                "assemblyFormatAsOrigin": true
            }
        }
    }
}
Помните, что эта настройка может привести к краху некоторых интеграторов, которые открывают документы без предварительного конвертирования (например, в формате .doc, который недоступен для сохранения в Р7 Document Server). Отключите этот параметр, если необходимо.