В этой статье мы подробно разберем проблему, с которой сталкиваются администраторы и разработчики 1С в клиент-серверных вариантах работы. Речь пойдет об ошибке, возникающей при попытке записи документа, элемента справочника или формировании печатной формы. Текст ошибки обычно выглядит так: «Ошибка при работе в базе... Файл не обнаружен 'C:\Users\USR1CV8\AppData\Local\Temp\v8_XXXX_XXX.tmp'. 2(0x00000002): Не удается найти указанный файл».
Давайте проанализируем причины этого поведения, рассмотрим временные решения, найденные сообществом, и углубимся в системные настройки для полного устранения сбоя.
Ситуация выглядит следующим образом: пользователи работают в базе (чаще всего это БИТ.Финанс, Бухгалтерия или ЗУП на платформе 8.3), и в какой-то момент при сохранении данных или попытке печати возникает ошибка доступа к временному файлу.
Характерные признаки:
Temp пользователя, под которым запущен сервер 1С (обычно USR1CV8).Если ошибка парализовала работу офиса и времени на глубокую диагностику прямо сейчас нет, самым быстрым способом восстановления работоспособности является перезапуск службы сервера приложения. Чтобы не делать это вручную каждый раз, можно настроить автоматический перезапуск рабочих процессов (rphost) кластера 1С при достижении определенных лимитов или по расписанию.
В штатном режиме мы должны выполнить следующие действия:
rphost.exe, rmngr.exe.Для более гибкого управления сервером, особенно если доступ к консоли сервера ограничен, удобно использовать WEB приложение для управления сеансами (поможет WEB-интерфейс для управления сеансами и процессами), которое позволяет удалять проблемные сеансы и завершать зависшие процессы rphost через браузер.
Почему это помогает? При перезапуске службы сбрасываются кэшированные данные процессов, освобождаются файловые дескрипторы и пересоздаются сеансовые данные. Для этой задачи есть утилита для принудительного завершения процессов rphost. Платформа "забывает" старое имя временного файла, которого уже не существует, и начинает работу с чистого листа.
Разберем одну из самых частых причин исчезновения временных файлов. Операционная система или антивирусное ПО могут удалять файлы с расширением .tmp, считая их мусором или угрозой, в то время как процесс сервера 1С все еще держит на них ссылку. При выстраивании защиты сервера важно опираться на концепцию защищенной IT инфраструктуры, которая учитывает специфику работы бизнес-приложений и баз данных.
Особое внимание стоит уделить Windows Defender (Защитник Windows) на серверных ОС (Server 2016/2019/2022). Он может блокировать или удалять временные файлы, содержащие динамический код (что часто бывает при компиляции модулей или формировании печатных форм).
Давайте настроим исключения безопасности. Нам необходимо добавить в исключения антивируса:
Обычно это путь вида:
C:\Users\USR1CV8\AppData\Local\Temp\
Убедитесь, что вы добавляете именно ту папку, которая указана в тексте ошибки.
Добавьте в доверенные процессы или исключения по имени файла:
ragent.exermngr.exerphost.exeЭто предотвратит блокировку и внезапное удаление файлов, которые сервер 1С считает активными. Для мониторинга этих процессов и удобного администрирования всего кластера рекомендуем использовать OneS Cluster Admin — мультиверсионную консоль администрирования, которая значительно функциональнее стандартной утилиты от 1С.
В обсуждениях специалистов часто упоминается, что в версиях платформы 8.3.22 и 8.3.23 был изменен механизм работы с временными файлами для оптимизации производительности. Платформа может "запоминать" имя временного файла, чтобы использовать его повторно, не обращаясь к ОС за генерацией нового имени.
Суть конфликта:
v8_A929_366.tmp.v8_A929_366.tmp, полагая, что файл на месте (или что она владеет этим именем), но не проверяет его наличие перед записью.0x00000002 (File not found).Что мы можем сделать:
Давайте проверим, не настроена ли в вашей операционной системе агрессивная политика очистки временных папок. В Windows Server существует механизм Storage Sense (Контроль памяти) или старые добрые скрипты очистки Temp, настроенные через Планировщик заданий.
Мы должны убедиться в следующем:
del /q /s %TEMP%\*.TEMP и TMP для пользователя USR1CV8 указывают на корректную папку.Если ошибка возникает преимущественно при печати или открытии определенных отчетов (как упоминалось в контексте ЗУП), проблема может быть связана с механизмом выгрузки внешних компонент или макетов.
Когда вы формируете печатную форму, 1С выгружает макет из базы во временный файл. Если имя файла формируется некорректно или путь слишком длинный, может возникнуть сбой. Также, если используется "папка для временных файлов" в настройках профиля пользователя 1С, попробуйте очистить её.
Посмотрим на код, который гипотетически мог бы вызывать подобные проблемы при работе с временными файлами, и как делать правильно (поможет мониторинг ошибок 1С и оповещение в Telegram):
// Плохой пример: Жестко заданное имя или предположение, что файл существует
ИмяФайла = КаталогВременныхФайлов() + "my_report.tmp";
ТекстовыйДок = Новый ТекстовыйДокумент;
ТекстовыйДок.Записать(ИмяФайла); // Если файл заблокирован или удален в процессе - ошибка
// Хороший пример: Получение уникального имени от системы
ИмяФайла = ПолучитьИмяВременногоФайла("tmp");
Попытка
ТекстовыйДок = Новый ТекстовыйДокумент;
ТекстовыйДок.Записать(ИмяФайла);
Исключение
// Обработка ошибки, если файл не удалось создать
ЗаписьЖурналаРегистрации("ОшибкаЗаписиФайла", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;
Для устранения ошибки «Файл не обнаружен» в папке Temp сервера 1С, мы рекомендуем действовать по следующему алгоритму:
Temp пользователя службы 1С и процессы rphost/rmngr/ragent в исключения антивируса.