Что делать, если в 1С:Документооборот не открываются старые файлы из томов и выдается ошибка «Файл не найден»?

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

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

Выясним причину: почему новые файлы работают, а старые — нет?

Первым делом проанализируем ситуацию. Если новые файлы успешно записываются в том и открываются, значит, права доступа на сетевую папку у учетной записи, под которой запущен сервер 1С (обычно USR1CV8), настроены корректно. Проблема локализована именно в «старых» записях. Существует три основные причины такого поведения:

  1. Разрыв связи в метаданных: В справочнике ВерсииФайлов очистился или некорректно заполнился реквизит ПутьКФайлу после обновления конфигурации или сбоя.
  2. Локальный кэш пользователя: Новые файлы могут открываться не из тома, а из основного рабочего каталога пользователя. 1С:ДО сначала ищет файл локально на компьютере сотрудника, и если он там есть (так как файл только что создан или редактировался), он откроется, даже если путь к тому на сервере указан неверно.
  3. Изменение логики именования: После обновлений платформы или конфигурации 1С может изменить алгоритм формирования имени файла на диске (например, начать добавлять уникальный идентификатор GUID в конец имени), из-за чего старые файлы, названные по прежним правилам, становятся «невидимыми» для системы.

Шаг 1. Проверка целостности томов

Прежде чем приступать к программным исправлениям, воспользуемся штатным инструментом системы. Разберем, как это сделать. Перейдем в раздел Настройка и администрирование, выберем пункт Тома хранения файлов. В контекстном меню или на панели инструментов найдем отчет «Проверка целостности томов».

Проанализируем результаты отчета. Он покажет два типа ошибок:

Если отчет подтверждает массовое отсутствие старых файлов, значит, 1С ищет их не по тем путям, где они лежат физически.

Шаг 2. Проверка реквизитов в справочнике «Версии файлов»

Рассмотрим подробнее, как 1С:ДО хранит информацию о расположении данных. Путь к файлу не хранится целиком. Он собирается из Пути к тому (например, \\Server\1C_Storage) и Относительного пути (например, 2023\05\12\v_12345.pdf).

Проанализируем ситуацию через «Функции для технического специалиста». Откроем справочник ВерсииФайлов и найдем одну из проблемных версий (возможно, она была создана через дополнительный обработчик для бизнес-события "Поступление входящей почты" в 1С Документооборот 2.1). Посмотрим на реквизит ПутьКФайлу. Если этот реквизит пуст для старых файлов, но заполнен для новых — мы нашли причину. Программа просто не знает, в какой подпапке внутри тома искать конкретную версию документа.

Шаг 3. Восстановление путей через групповое изменение реквизитов

Если мы выяснили, что проблема в очистке реквизита ПутьКФайлу, нам необходимо восстановить его программно. Для этого воспользуемся обработкой «Групповое изменение реквизитов».

Важно: Перед выполнением любых массовых манипуляций обязательно создайте резервную копию информационной базы!

Выполним следующие шаги:

  1. Выберем объект Версии файлов.
  2. Настроим отбор: выберем только те записи, где Том заполнен, а ПутьКФайлу пуст.
  3. В дополнительных настройках обработки включим возможность выполнения произвольного алгоритма.
  4. Применим следующий код для восстановления связи (с учетом того, что у владельца версии — объекта Файлы — актуальный путь может быть сохранен в текущей версии):

// Пример алгоритма для групповой обработки
Объект.ПутьКФайлу = Объект.Владелец.ТекущаяВерсияПутьКФайлу;
Объект.Записать();

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

Шаг 4. Устранение проблем со статусом «Извлечен»

Иногда файлы не открываются, потому что они заблокированы самой системой. Проверим, не числятся ли файлы за пользователями. Если файл был «извлечен» (взят на редактирование) сотрудником, 1С:ДО перестает искать его в общем хранилище и пытается найти в рабочем каталоге этого пользователя на его локальном ПК.

Проанализируем список извлеченных файлов. Если мы видим там старые документы, которые никто реально не редактирует (например, сессия зависла или пользователь уволился), администратору необходимо выполнить действие «Отменить редактирование». После этого система снова начнет обращаться к файловому тому на сервере.

Шаг 5. Права доступа учетной записи сервера 1С

Не забудем проверить еще один важный технический аспект. Работа с томами осуществляется сервером приложений 1С. Рассмотрим ситуацию: системный администратор заходит на сервер под своей учетной записью «Admin» и видит все файлы в сетевой папке. Однако процесс rphost.exe запущен под учетной записью USR1CV8.

Проверим следующее:

Итоги

Проблема «Файл не найден» в 1С:Документооборот чаще всего связана с потерей относительного пути в базе данных после обновлений. Для решения мы рекомендуем сначала использовать отчет по целостности томов, затем проверить заполнение реквизитов в ВерсииФайлов и, при необходимости, восстановить их с помощью групповой обработки. Также всегда проверяйте статус «Извлечен» и права доступа учетной записи сервера 1С к сетевому ресурсу.

← На главную