К статье
Практический материал

Справочники и Данные · 10 мин

Как изменить название файла в 1С

Как переименовать файл в 1С: через карточку присоединённого файла, на диске и программно встроенным языком. Пошаговые инструкции, код, ошибки и FAQ.

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

Ниже разобраны все три сценария: работа через интерфейс типовых конфигураций (Бухгалтерия, Управление торговлей, ERP, ЗУП), переименование файлов на диске и программное переименование средствами встроенного языка. Отдельно описаны типичные ошибки, проверка результата и ограничения, о которых нужно знать до начала работы.

Как 1С хранит файлы и почему это важно понимать

В типовых конфигурациях файлы, прикреплённые к документам и справочникам, хранятся как «присоединённые файлы» — объекты внутреннего справочника (например, «СчетФактураПрисоединенныеФайлы»). У каждого такого объекта есть наименование, расширение и само содержимое — оно лежит либо в базе данных, либо в томах на диске, если включено хранение в томах.

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

Переименование присоединённого файла через интерфейс

Это самый частый сценарий: нужно изменить название скана, фото или документа, прикреплённого к объекту, чтобы пользователям было понятно, что внутри. Порядок действий в типовых конфигурациях практически одинаков.

Порядок действий
  1. 1
    Откройте объект, к которому прикреплён файл: документ, элемент справочника «Номенклатура», «Контрагенты» и т.п.
  2. 2
    Перейдите к списку присоединённых файлов: кнопка со скрепкой на панели или команда «Присоединённые файлы» в меню «Ещё».
  3. 3
    Откройте нужный файл двойным щелчком — откроется его карточка.
  4. 4
    Измените поле «Наименование» (без расширения — его 1С подставляет автоматически).
  5. 5
    Нажмите «Записать и закрыть» и убедитесь, что в списке отображается новое название.

В некоторых конфигурациях наименование можно изменить прямо в списке присоединённых файлов: установите курсор на строку, нажмите F2 или выберите «Изменить» и отредактируйте колонку «Наименование». Если поле недоступно для редактирования, откройте карточку файла — там редактирование доступно почти всегда.

Расширение файла (docx, pdf, jpg) в поле наименования обычно не вводится: 1С хранит его в отдельном реквизите и добавляет при открытии или сохранении на диск. Если вы впишете расширение в наименование вручную, при выгрузке получите имя вида «договор.pdf.pdf» — это одна из самых распространённых мелких ошибок.

Если кнопка редактирования недоступна

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

Переименование файла на диске, с которым работает 1С

Если файл не загружен в базу, а просто лежит в папке (например, выгрузка для обмена, печатная форма, сохранённый отчёт), переименовать его можно обычными средствами Windows: проводником (клавиша F2), командной строкой или PowerShell. 1С здесь не участвует, но есть важный нюанс.

Если путь к файлу где-то зафиксирован — в настройках обмена, в обработке загрузки, в регистре сведений с путями к файлам — после переименования эти механизмы перестанут находить файл. Перед переименованием проверьте, не используется ли старое имя в настройках: каталогах обмена, расписаниях выгрузки, регламентных заданиях.

Программное переименование файла встроенным языком

Во встроенном языке 1С нет отдельного метода «ПереименоватьФайл». Переименование выполняется методом ПереместитьФайл: файл «перемещается» в ту же папку, но с новым именем. Метод работает и в тонком, и в толстом клиенте, и на сервере — с учётом того, что пути на сервере относятся к файловой системе сервера, а не компьютера пользователя.

bsl
&НаСервере
Процедура ПереименоватьФайлНаСервере()
	СтароеИмя = "C:\Обмен\выгрузка.txt";
	НовоеИмя  = "C:\Обмен\выгрузка_архив.txt";
	Попытка
		ПереместитьФайл(СтароеИмя, НовоеИмя);
	Исключение
		Сообщить("Не удалось переименовать файл: " + ОписаниеОшибки());
	КонецПопытки;
КонецПроцедуры

Перед вызовом полезно проверить существование исходного файла и отсутствие файла с новым именем — иначе возможна ошибка или неожиданная перезапись. Для проверки используйте объект Файл с методом Существует(). Если файл с новым именем уже существует, ПереместитьФайл вызовет исключение, которое нужно обработать.

Для интерактивного выбора файла пользователем применяйте ДиалогВыбораФайла в режиме «Открытие», а для работы с путями — функции СтрЗаменить или разбор пути через объект Файл (свойства ИмяБезРасширения, Расширение, Путь). Это удобно, когда нужно, например, добавить к имени дату: имя собирается из частей, затем вызывается ПереместитьФайл.

bsl
Файл = Новый Файл("C:\Обмен\отчет.xlsx");
Если Файл.Существует() Тогда
	НовоеИмя = Файл.Путь + Файл.ИмяБезРасширения + "_" + Формат(ТекущаяДата(), "ДФ=ггггММдд") + Файл.Расширение;
	ПереместитьФайл(Файл.ПолноеИмя, НовоеИмя);
КонецЕсли;

Массовое переименование присоединённых файлов обработкой

Когда переименовать нужно не один файл, а сотни (например, привести названия сканов к шаблону «НомерДокумента_Дата»), ручная работа не подходит. В этом случае пишется серверная процедура, которая перебирает элементы справочника присоединённых файлов и меняет реквизит «Наименование».

Логика проста: запросом выбираются нужные файлы (по владельцу, расширению, дате), для каждого формируется новое наименование и вызывается Записать(). Само содержимое файла при этом не трогается — меняется только реквизит, поэтому операция быстрая и безопасная для данных. Обязательно сделайте резервную копию базы перед массовой обработкой и сначала протестируйте её на копии.

При массовом переименовании удобно сначала вывести в табличный документ «старое имя — новое имя» без записи в базу. Пользователь проверяет соответствие глазами, и только после этого запускается реальная обработка. Это спасает от опечаток в шаблоне имён.
ПЗ
Практическое замечание

Типичные ошибки и ограничения

Типичные ошибки
01
Переименование файлов тома через проводник — связь с записями в базе рвётся, файлы перестают открываться из 1С.
02
Ввод расширения в поле «Наименование» — при сохранении на диск получается двойное расширение вида «.pdf.pdf».
03
Использование запрещённых символов (\\ / : * ? " < > |) в программно формируемом имени — ПереместитьФайл завершается ошибкой.
04
Переименование файла обмена без правки настроек — регламентное задание перестаёт находить файл по старому пути.
05
Вызов ПереместитьФайл на клиенте с серверным путём или наоборот — файл ищется не на том компьютере, операция падает с ошибкой «файл не найден».

Отдельно учитывайте ограничения длины пути в Windows: полный путь длиннее примерно 260 символов может вызвать ошибку при работе с файлом. Если файлы лежат глубоко во вложенных папках, придумывайте короткие названия. Также помните, что в файловой базе одновременная работа с одним файлом нескольких пользователей может блокировать переименование.

Контрольные точки

Как проверить результат

Отображение в списке присоединённых файлов
Норма

Показывается новое наименование, файл открывается двойным щелчком

Тревожный признак

Старое имя или ошибка «файл не найден» при открытии

Сохранение файла на диск из 1С
Норма

Файл сохраняется с новым именем и корректным расширением

Тревожный признак

Двойное расширение или усечённое имя

Работа обмена после переименования файла на диске
Норма

Регламентное задание находит файл, обмен проходит без ошибок

Тревожный признак

В журнале регистрации ошибки «файл не обнаружен»

FAQ

Можно ли переименовать файл, не открывая его карточку?

Да, во многих конфигурациях наименование редактируется прямо в списке присоединённых файлов: выделите строку, нажмите F2 и измените текст в колонке «Наименование». Если колонка не редактируется, откройте карточку файла — там поле доступно почти всегда.

Почему 1С не даёт переименовать файл и пишет, что он занят?

Файл открыт на редактирование вами или другим пользователем. В карточке файла видно, кто его занял. Завершите редактирование (кнопка «Закончить редактирование») или попросите коллегу освободить файл, затем повторите попытку.

Как программно переименовать файл, если метод с таким названием отсутствует?

Используйте ПереместитьФайл(Источник, Приёмник), указав в приёмнике ту же папку с новым именем. Предварительно проверьте существование исходного файла через объект Файл и отсутствие файла с новым именем, иначе получите исключение.

Изменится ли имя файла на диске, если я переименую его в карточке 1С?

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

Какие символы нельзя использовать в имени файла?

Windows запрещает символы \ / : * ? " < > |. При программном формировании имён добавьте очистку строки от этих символов, иначе ПереместитьФайл или сохранение на диск завершится ошибкой. Также избегайте точки в конце имени и слишком длинных путей.

Нужно ли делать копию базы перед массовым переименованием?

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

Итог

Что важно запомнить

Присоединённый файл переименовывается через карточку или список вложений — меняется только наименование в базе. Файл на диске переименовывается средствами Windows или методом ПереместитьФайл во встроенном языке. Никогда не переименовывайте файлы томов хранения через проводник, а перед массовой обработкой делайте резервную копию.