Почему 1С не может открыть или записать файл по указанному пути

· 10 мин

Содержание

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

Отсюда два способа решения. Первый — поправить сам путь: указать полный сетевой адрес \\server\share\..., создать недостающий каталог, убрать запрещённые символы. Второй — дать доступ тому, кто читает файл: учётной записи службы, пользователю терминала, исключению в антивирусе. Какой нужен вам, покажет диагностика ниже.

Как 1С строит путь к файлу и где он вычисляется

Платформа сама файлы не ищет. Она передаёт строку пути операционной системе и получает ответ: файл открыт, не найден или доступ запрещён. Ошибку в окне 1С формирует уже по этому ответу.

Главное — понять, на каком компьютере выполняется операция с файлом:

Режим работыГде открывается файлОт чьего имени
Файловая база, тонкий или толстый клиентНа компьютере пользователяПользователь Windows, который запустил 1С
Клиент-серверная база, код на клиентеНа компьютере пользователяПользователь Windows
Клиент-серверная база, код на сервереНа сервере 1СУчётная запись службы агента сервера (по умолчанию USR1CV8)
Веб-клиентВ браузере, через расширение работы с файламиПользователь браузера
Терминальный серверНа терминальном сервереПользователь терминальной сессии

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

💡 Пример. Бухгалтер указывает каталог выгрузки D:\Выгрузка\Банк. На его ноутбуке такая папка есть. На сервере 1С диска D: может не быть вовсе, или на нём нет такой папки. Результат — ошибка, хотя «папка же на месте».

Из-за чего возникает ошибка неправильного пути к файлу

Причины группируются в пять типов. Проверяйте сверху вниз — так быстрее.

  • 📁 Каталога нет. Платформа не создаёт промежуточные папки при записи файла. Путь C:\Обмен\2025\Март\file.xml упадёт, если нет папки Март.
  • 🔤 Недопустимые символы в имени. Windows не принимает в имени файла \ / : * ? " < > |. Чаще всего они попадают из названия контрагента или номера документа: «ООО “Ромашка”», «Счёт 15/3».
  • 📏 Слишком длинный путь. Классическое ограничение Windows — 260 символов на полный путь. Длинные кириллические имена вложенных папок исчерпывают его быстро.
  • 🌐 Буква сетевого диска. Подключённый диск Z: существует только в сеансе пользователя, который его подключил. Служба сервера 1С и другой пользователь терминала его не видят.
  • 🔒 Нет прав или файл занят. Сюда же относится блокировка антивирусом. Текст ошибки в этом случае часто другой — Ошибка доступа к файлу или Нарушение совместного доступа, — но ищут её обычно вместе с ошибкой пути.

Отдельная причина для серверов на Linux: регистр букв в имени имеет значение, а разделитель — /. Путь /home/Obmen/File.xml и /home/obmen/file.xml — разные файлы.

Диагностика: выберите симптом

Сетевые папки, сервер 1С и терминальный доступ

Почему не работает буква диска

Подключение сетевого диска — настройка конкретного пользователя Windows. Служба сервера 1С запускается до входа пользователя и про диск Z: не знает. Поэтому в настройках обменов, каталогов выгрузки и регламентных заданий указывайте только UNC-путь:

\\fileserver\obmen\bank\

Вместо имени сервера можно указать IP-адрес, но при смене адреса путь сломается. Имя надёжнее.

Права учётной записи службы

По умолчанию служба агента сервера 1С работает от локальной учётной записи USR1CV8. Локальная учётная запись сервера не может авторизоваться на общей папке другого компьютера в домене. Варианты:

  1. Перевести службу на доменную учётную запись (служебную, с бессрочным паролем) и выдать ей права на чтение и запись в общую папку.
  2. Разместить каталог обмена прямо на сервере 1С и дать права локальной учётной записи службы.

Учётную запись видно в оснастке services.msc: служба «Агент сервера 1С:Предприятия 8.3», вкладка «Вход в систему».

Смена учётной записи службы требует её перезапуска. Перезапуск агента обрывает все сеансы пользователей во всех базах кластера. Делайте это вне рабочего времени и предупредите пользователей заранее. Новой учётной записи нужны права на каталог кластера (по умолчанию srvinfo в папке установки) и право «Вход в качестве службы».

Терминальный сервер

На терминальном сервере у каждого пользователя свой профиль. Пути вида C:\Users\ivanova\Desktop\Выписка.txt в настройке, сохранённой одним пользователем, у другого не откроются. Для общих каталогов используйте папку вне профилей или UNC-путь.

Ещё одна ловушка — перенаправленные диски клиента в RDP. Внутри сессии они видны как \\tsclient\C\.... Работают они только в той сессии, где подключены, и только пока клиент на связи. Регламентное задание на сервере 1С их не увидит.

Диагностика: как найти, какой путь не устроил 1С

Сначала получите точный текст ошибки. В окне сообщения нажмите ссылку подробностей — там будет строка модуля и сам путь. Очень часто одного взгляда на путь хватает: в нём буква чужого диска или двойной обратный слеш в середине.

Дальше по шагам:

  1. Журнал регистрации. В типовых конфигурациях путь Администрирование → Обслуживание → Журнал регистрации. Отберите события с уровнем «Ошибка» за нужное время. Для регламентных заданий это единственное место, где виден текст ошибки.
  2. Проверка с сервера. Зайдите на сервер 1С под учётной записью службы (или через runas) и откройте путь в Проводнике. Не открывается — проблема не в 1С.
  3. Отладчик. Если есть доступ к Конфигуратору, включите остановку по ошибке и посмотрите значение переменной с путём в момент сбоя. Так видно, какую строку собрал код.
  4. Технологический журнал. Для серверных ошибок настройте файл logcfg.xml на сбор событий EXCP. В них попадает описание исключения с путём и именем процесса.
  5. Process Monitor. Утилита Sysinternals показывает каждое обращение процесса к файлам. Отфильтруйте по процессу rphost.exe (сервер) или 1cv8c.exe (тонкий клиент) и результату NAME NOT FOUND, PATH NOT FOUND или ACCESS DENIED.

Process Monitor собирает события очень быстро. Включайте запись, воспроизводите ошибку и сразу останавливайте — иначе журнал за минуту разрастётся до миллионов строк.

Технологический журнал при широком отборе тоже быстро растёт. Ограничьте его событием EXCP и сроком хранения в часах, а после диагностики отключите.

Права доступа и исключения в антивирусе

Когда путь правильный, а ошибка остаётся, проверяйте права и сторонние программы.

Какие права нужны

ОперацияМинимальные права на каталог
Загрузка из файлаЧтение
Выгрузка, обменЧтение, запись, создание файлов
Обмен с удалением обработанных сообщенийИзменение (включает удаление)

Для общей сетевой папки права выдаются в двух местах: на вкладке «Доступ» (права общего ресурса) и на вкладке «Безопасность» (права NTFS). Действуют самые строгие из двух. Частая ситуация — NTFS разрешает запись, а общий ресурс открыт только на чтение.

Что добавить в исключения антивируса

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

Добавьте в исключения:

  • 🗂 каталог информационной базы (для файлового варианта);
  • 🗂 каталог кластера сервера 1С (srvinfo);
  • 🗂 каталог обмена и каталоги выгрузок;
  • 🗂 кэш клиента в профиле пользователя — %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8;
  • 🗂 временный каталог учётной записи службы сервера.

Исключения настраивает администратор антивируса по согласованию со службой безопасности. Не отключайте защиту целиком «на проверку» на рабочем сервере.

Загрузка печатных форм, обновление и обмен данными

Ошибка пути чаще всего встречается в трёх типовых сценариях.

Внешние печатные формы и обработки

Внешние печатные формы подключают в Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки. Файл .epf загружается в базу, после чего путь к исходному файлу уже не нужен.

Ошибка возникает, если обработку открывают через Файл → Открыть и путь к ней сохранён в чьих-то настройках, а потом файл перенесли. Лекарство — загрузить обработку в справочник дополнительных обработок, а не открывать с диска. Ещё вариант: обработка сама обращается к шаблону или справочному файлу по жёсткому пути вроде C:\Шаблоны\. Тогда путь нужно вынести в настройку или макет.

Обновление конфигурации

При обновлении через Конфигуратор файл .cfu или .cf выбирается на том компьютере, где запущен Конфигуратор. Распаковка шаблонов идёт в каталог шаблонов конфигураций, который задаётся в окне запуска 1С через кнопку «Настройка». Если этот каталог указан на сетевом диске, которого нет, обновление остановится с ошибкой пути. Проверьте каталог шаблонов и свободное место на диске.

Обмен через каталог

В БП 3.0, ЗУП 3.1 и УТ 11 настройки обменов находятся в Администрирование → Синхронизация данных. Для обмена через локальный или сетевой каталог в настройке указывается путь. В клиент-серверной базе этот путь проверяется со стороны сервера 1С.

Порядок проверки:

  1. Откройте настройку синхронизации и посмотрите путь к каталогу.
  2. Если там буква диска — замените на UNC-путь.
  3. Убедитесь, что учётная запись службы сервера имеет права на запись в этот каталог.
  4. Запустите синхронизацию вручную и посмотрите журнал регистрации.
Перед запуском обмена через сетевой каталог
Выполнено: 0 / 5

Как написать код, который не падает на неправильном пути

Если вы дорабатываете конфигурацию или пишете внешнюю обработку, большую часть ошибок пути можно предотвратить в коде.

Собирайте путь, а не склеивайте вручную

Разделитель зависит от операционной системы сервера. Используйте ПолучитьРазделительПути() и проверяйте каталог перед записью:

Функция ПодготовитьПутьВыгрузки(Каталог, ИмяФайла) Экспорт

    Разделитель = ПолучитьРазделительПути();
    Если Не СтрЗаканчиваетсяНа(Каталог, Разделитель) Тогда
        Каталог = Каталог + Разделитель;
    КонецЕсли;

    ФайлКаталога = Новый Файл(Каталог);
    Если Не ФайлКаталога.Существует() Тогда
        СоздатьКаталог(Каталог);
    КонецЕсли;

    Возврат Каталог + ОчиститьИмяФайла(ИмяФайла);

КонецФункции

Функция ОчиститьИмяФайла(Знач Имя)

    Запрещенные = "\/:*?""<>|";
    Для Сч = 1 По СтрДлина(Запрещенные) Цикл
        Имя = СтрЗаменить(Имя, Сред(Запрещенные, Сч, 1), "_");
    КонецЦикла;
    Возврат СокрЛП(Имя);

КонецФункции

СоздатьКаталог() создаёт и промежуточные папки, поэтому отдельно создавать каждую не нужно.

Ловите исключение и пишите подробности в журнал

Попытка
    ТекстовыйДокумент.Записать(ПолноеИмяФайла, КодировкаТекста.UTF8);
Исключение
    Инфо = ИнформацияОбОшибке();
    ЗаписьЖурналаРегистрации("Выгрузка в файл",
        УровеньЖурналаРегистрации.Ошибка, , ,
        "Путь: " + ПолноеИмяФайла + Символы.ПС
            + ПодробноеПредставлениеОшибки(Инфо));
    ВызватьИсключение КраткоеПредставлениеОшибки(Инфо);
КонецПопытки;

В журнал попадает полный путь, и при следующем сбое не придётся гадать, какую строку собрал код. Пользователь при этом видит понятное сообщение.

Временные файлы и передача между клиентом и сервером

  • 🧩 Для временных файлов используйте ПолучитьИмяВременногоФайла("xml") — файл создастся там, где у процесса гарантированно есть права.
  • 🧩 Файл, выбранный пользователем на клиенте, передавайте на сервер через временное хранилище (ПоместитьФайл, НачатьПомещениеФайла), а не строкой пути.
  • 🧩 Не храните в константах и настройках пути к профилю пользователя и буквы сетевых дисков.
  • 🧩 После обработки удаляйте временные файлы через УдалитьФайлы(), иначе временный каталог сервера разрастается.

Частые вопросы

Почему путь работает в Проводнике, а 1С пишет, что он неправильный?
Проводник открыт от вашей учётной записи на вашем компьютере. В клиент-серверной базе файл может открывать служба сервера 1С на другом компьютере. Проверьте путь с сервера под учётной записью службы.
Можно ли указать путь с кириллицей и пробелами?
Да, платформа 8.3 работает с кириллическими путями и пробелами. Проблемы создают не они, а запрещённые символы, длина пути и кодировка, если путь передаётся во внешнюю программу через командную строку — там его нужно брать в кавычки.
Ошибка только в веб-клиенте, в тонком клиенте всё работает. Что делать?
Проверьте, установлено ли в браузере расширение для работы с файлами 1С. Без него веб-клиент не может читать и писать файлы на диске пользователя напрямую.
Почему регламентное задание не видит папку, если вручную обмен проходит?
Вручную обмен мог выполняться в файловой базе или с клиента. Регламентное задание всегда работает на сервере от имени службы, без подключённых сетевых дисков и без вашего профиля.
Как обойти ограничение в 260 символов?
Проще всего укоротить путь: перенести каталог ближе к корню диска или общего ресурса и сократить имена вложенных папок. Снимать ограничение на уровне Windows для решения этой задачи не стоит.