В процессе эксплуатации системы 1С:Документооборот администраторы часто сталкиваются с неприятной ситуацией: при попытке открыть документ, добавленный в систему давно, программа выдает критическую ошибку: «Не найден файл, возможно файл удален антивирусной программой». При этом системный администратор видит, что физически файлы присутствуют на сетевом диске (в файловом хранилище), а новые документы, созданные сегодня, открываются и сохраняются без каких-либо проблем. Рассмотрим подробно, почему так происходит и как восстановить связь между информационной базой и файловым томом.
Первым делом проанализируем ситуацию. Если новые файлы успешно записываются в том и открываются, значит, права доступа на сетевую папку у учетной записи, под которой запущен сервер 1С (обычно USR1CV8), настроены корректно. Проблема локализована именно в «старых» записях. Существует три основные причины такого поведения:
ВерсииФайлов очистился или некорректно заполнился реквизит ПутьКФайлу после обновления конфигурации или сбоя.Прежде чем приступать к программным исправлениям, воспользуемся штатным инструментом системы. Разберем, как это сделать. Перейдем в раздел Настройка и администрирование, выберем пункт Тома хранения файлов. В контекстном меню или на панели инструментов найдем отчет «Проверка целостности томов».
Проанализируем результаты отчета. Он покажет два типа ошибок:
Если отчет подтверждает массовое отсутствие старых файлов, значит, 1С ищет их не по тем путям, где они лежат физически.
Рассмотрим подробнее, как 1С:ДО хранит информацию о расположении данных. Путь к файлу не хранится целиком. Он собирается из Пути к тому (например, \\Server\1C_Storage) и Относительного пути (например, 2023\05\12\v_12345.pdf).
Проанализируем ситуацию через «Функции для технического специалиста». Откроем справочник ВерсииФайлов и найдем одну из проблемных версий (возможно, она была создана через дополнительный обработчик для бизнес-события "Поступление входящей почты" в 1С Документооборот 2.1). Посмотрим на реквизит ПутьКФайлу. Если этот реквизит пуст для старых файлов, но заполнен для новых — мы нашли причину. Программа просто не знает, в какой подпапке внутри тома искать конкретную версию документа.
Если мы выяснили, что проблема в очистке реквизита ПутьКФайлу, нам необходимо восстановить его программно. Для этого воспользуемся обработкой «Групповое изменение реквизитов».
Важно: Перед выполнением любых массовых манипуляций обязательно создайте резервную копию информационной базы!
Выполним следующие шаги:
Версии файлов.Том заполнен, а ПутьКФайлу пуст.Файлы — актуальный путь может быть сохранен в текущей версии):
// Пример алгоритма для групповой обработки
Объект.ПутьКФайлу = Объект.Владелец.ТекущаяВерсияПутьКФайлу;
Объект.Записать();
Этот метод поможет, если информация о пути сохранилась в связанных объектах. Если же путь полностью утерян в базе, но файлы на диске лежат в стандартной иерархии (по датам), может потребоваться более сложный скрипт, который будет обходить дерево каталогов на диске и сопоставлять имена файлов с идентификаторами версий в 1С.
Иногда файлы не открываются, потому что они заблокированы самой системой. Проверим, не числятся ли файлы за пользователями. Если файл был «извлечен» (взят на редактирование) сотрудником, 1С:ДО перестает искать его в общем хранилище и пытается найти в рабочем каталоге этого пользователя на его локальном ПК.
Проанализируем список извлеченных файлов. Если мы видим там старые документы, которые никто реально не редактирует (например, сессия зависла или пользователь уволился), администратору необходимо выполнить действие «Отменить редактирование». После этого система снова начнет обращаться к файловому тому на сервере.
Не забудем проверить еще один важный технический аспект. Работа с томами осуществляется сервером приложений 1С. Рассмотрим ситуацию: системный администратор заходит на сервер под своей учетной записью «Admin» и видит все файлы в сетевой папке. Однако процесс rphost.exe запущен под учетной записью USR1CV8.
Проверим следующее:
USR1CV8 должна иметь права «Изменение» (Read/Write/Modify) на уровне NTFS в папке хранилища.Проблема «Файл не найден» в 1С:Документооборот чаще всего связана с потерей относительного пути в базе данных после обновлений. Для решения мы рекомендуем сначала использовать отчет по целостности томов, затем проверить заполнение реквизитов в ВерсииФайлов и, при необходимости, восстановить их с помощью групповой обработки. Также всегда проверяйте статус «Извлечен» и права доступа учетной записи сервера 1С к сетевому ресурсу.