Почему удаляются файлы в переписке Сервера взаимодействия 1С и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

При активном использовании встроенного чата и обсуждений в 1С:Документооборот 3.0, подключенном к локальному Серверу взаимодействия (1С:Электронный документ / 1С:Диалог), пользователи могут столкнуться с неприятной ситуацией: отправленный вчера во вложении файл на следующий день оказывается зачеркнутым. При попытке нажать на него система выдает предупреждение: «Файл удален из за превышения ограничения по сроку или объему хранения файлов».

Разберем детально, почему возникает такое поведение, как устроена архитектура хранения файлов обсуждений и каким образом можно перенастроить сервер, чтобы предотвратить потерю данных.

Архитектура хранения файлов и механизм удаления

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

  1. Метаданные сообщений и ссылки на файлы фиксируются во внутренней базе данных Сервера взаимодействия.
  2. Бинарные данные самих вложений отправляются во внешнее S3-совместимое хранилище (в большинстве стандартных развертываний используется MinIO).
  3. На стороне Сервера взаимодействия работают регламентные фоновые процессы очистки, которые проверяют политики хранения по расписанию (как правило, раз в сутки в ночное время).

Когда срабатывает регламентная процедура, сервер сверяет параметры политики хранения. Если лимиты превышены, бинарный файл физически удаляется из S3-хранилища, а запись о нем помечается как удаленная. Именно поэтому сразу после отправки файл открывается без ошибок, а на следующий день становится недоступным.

Причины автоматического удаления вложений

Выясним основные причины, приводящие к срабатыванию механизма очистки:

  1. Ограничение по сроку хранения (параметр daysToKeep). При развертывании и регистрации хранилища через административные интерфейсы мог быть задан тестовый или минимальный срок хранения (например, 1 день). В этом случае файл удаляется на следующие сутки.
  2. Ограничение по суммарному объему (параметр bytesToKeep). Параметр задает квоту дискового пространства в байтах для конкретного абонента. В демонстрационных скриптах и примерах документации нередко указано тестовое значение 104857600 (ровно 100 МБ). При активном обмене файлами этот объем переполняется мгновенно, и регламентное задание начинает удалять более старые файлы вне зависимости от заданного количества дней.
  3. Политики жизненного цикла (Lifecycle Rules) в MinIO. Правила автоудаления могут быть заданы непосредственно на уровне бакета в самом S3-хранилище, минуя сервер 1С.

Пошаговое изменение лимитов через административный REST API

Параметры хранения файлов не вынесены в пользовательский интерфейс «1С:Предприятия». Управление ими выполняется через административный REST API Сервера взаимодействия. Разберем по шагам, как проверить и скорректировать настройки.

Шаг 1. Проверка текущих настроек хранилища

Выполним HTTP-запрос методом GET к административному эндпоинту сервера. Для этого можно использовать утилиту curl в терминале Linux или любой HTTP-клиент:

curl -u admin:password -X GET http://localhost:8087/admin/storage_server

В полученном ответе формата JSON обратим внимание на значения параметров daysToKeep, bytesToKeep, fileSizeLimit, uploadLimit и downloadLimit.

Шаг 2. Корректировка политик хранения

Для отключения принудительного удаления файлов установим значения лимитов в 0 (значение 0 отключает ограничение). Отправим запрос на обновление конфигурации хранилища:


curl -u admin:password -X POST http://localhost:8087/admin/storage_server \
-H "Content-Type: application/json" \
-d '{
    "daysToKeep": 0,
    "bytesToKeep": 0,
    "fileSizeLimit": 104857600
}'

Рассмотрим подробнее назначение каждого изменяемого параметра:

  1. daysToKeep — время хранения файлов в днях. Значение 0 отключает удаление по истечении срока.
  2. bytesToKeep — максимальный суммарный объем файлов хранилища в байтах. Значение 0 снимает лимит дискового пространства на уровне Сервера взаимодействия.
  3. fileSizeLimit — максимальный размер одного загружаемого файла (в байтах). В примере установлено ограничение в 100 МБ.

Проверка настроек на стороне S3 (MinIO)

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

  1. Откроем раздел Buckets и выберем нужный бакет.
  2. Перейдем во вкладку Lifecycle (правила жизненного цикла объектов).
  3. Убедимся, что там отсутствуют активные правила Expiration, удаляющие файлы по расписанию. При наличии таких правил отключим их или удалим.

Важные ограничения и рекомендации по эксплуатации

Разберем важные нюансы, о которых необходимо помнить при администрировании системы:

  1. Невозможность автоматического восстановления: Если файл уже был удален сборщиком мусора из S3, вернуть его обратно средствами платформы «1С:Предприятие» невозможно. Метаданные сообщения навсегда теряют связь с бинарными данными. Восстановление возможно исключительно из резервной копии самого хранилища S3 или снимков файловой системы.
  2. Использование ссылок вместо файлов: В корпоративном документообороте рекомендуется инструктировать пользователей прикреплять к обсуждениям не локальные файлы с компьютера, а навигационные ссылки на карточки документов или файлы из справочника программы. В этом случае файл надежно хранится в основном томе 1С, подлежит регулярному бэкапу и версионированию, а чат используется только для коммуникации.
← На главную