Справочники и Данные · 10 мин
Как изменить название файла в 1С
Как переименовать файл в 1С: через карточку присоединённого файла, на диске и программно встроенным языком. Пошаговые инструкции, код, ошибки и FAQ.
Под «изменением названия файла в 1С» обычно понимают три разные задачи: переименовать присоединённый файл, хранящийся в базе (скан договора, счёт, акт), переименовать файл на диске, с которым работает 1С, или изменить имя файла программно — в обработке или конфигурации. Каждая задача решается своим способом, и путать их не стоит: переименование в карточке вложения не меняет имя файла на диске, а переименование файла в проводнике может «оторвать» его от записи в базе.
Ниже разобраны все три сценария: работа через интерфейс типовых конфигураций (Бухгалтерия, Управление торговлей, ERP, ЗУП), переименование файлов на диске и программное переименование средствами встроенного языка. Отдельно описаны типичные ошибки, проверка результата и ограничения, о которых нужно знать до начала работы.
Как 1С хранит файлы и почему это важно понимать
В типовых конфигурациях файлы, прикреплённые к документам и справочникам, хранятся как «присоединённые файлы» — объекты внутреннего справочника (например, «СчетФактураПрисоединенныеФайлы»). У каждого такого объекта есть наименование, расширение и само содержимое — оно лежит либо в базе данных, либо в томах на диске, если включено хранение в томах.
Ключевой момент: наименование присоединённого файла в базе и имя физического файла на диске — не одно и то же. Если конфигурация хранит файлы в томах, физический файл на диске обычно имеет служебное имя, и переименовывать его вручную через проводник категорически нельзя — связь с записью в базе будет потеряна, и файл перестанет открываться из 1С.
Переименование присоединённого файла через интерфейс
Это самый частый сценарий: нужно изменить название скана, фото или документа, прикреплённого к объекту, чтобы пользователям было понятно, что внутри. Порядок действий в типовых конфигурациях практически одинаков.
- 1Откройте объект, к которому прикреплён файл: документ, элемент справочника «Номенклатура», «Контрагенты» и т.п.
- 2Перейдите к списку присоединённых файлов: кнопка со скрепкой на панели или команда «Присоединённые файлы» в меню «Ещё».
- 3Откройте нужный файл двойным щелчком — откроется его карточка.
- 4Измените поле «Наименование» (без расширения — его 1С подставляет автоматически).
- 5Нажмите «Записать и закрыть» и убедитесь, что в списке отображается новое название.
В некоторых конфигурациях наименование можно изменить прямо в списке присоединённых файлов: установите курсор на строку, нажмите F2 или выберите «Изменить» и отредактируйте колонку «Наименование». Если поле недоступно для редактирования, откройте карточку файла — там редактирование доступно почти всегда.
Расширение файла (docx, pdf, jpg) в поле наименования обычно не вводится: 1С хранит его в отдельном реквизите и добавляет при открытии или сохранении на диск. Если вы впишете расширение в наименование вручную, при выгрузке получите имя вида «договор.pdf.pdf» — это одна из самых распространённых мелких ошибок.
Если кнопка редактирования недоступна
Недоступность редактирования чаще всего означает нехватку прав: пользователю нужна роль, разрешающая изменение присоединённых файлов (в типовых — «Добавление и изменение файлов» или аналогичная). Также файл может быть «занят» другим пользователем, который открыл его на редактирование, — в карточке будет видно, кто занял файл. Дождитесь освобождения или попросите коллегу завершить редактирование.
Переименование файла на диске, с которым работает 1С
Если файл не загружен в базу, а просто лежит в папке (например, выгрузка для обмена, печатная форма, сохранённый отчёт), переименовать его можно обычными средствами Windows: проводником (клавиша F2), командной строкой или PowerShell. 1С здесь не участвует, но есть важный нюанс.
Если путь к файлу где-то зафиксирован — в настройках обмена, в обработке загрузки, в регистре сведений с путями к файлам — после переименования эти механизмы перестанут находить файл. Перед переименованием проверьте, не используется ли старое имя в настройках: каталогах обмена, расписаниях выгрузки, регламентных заданиях.
Программное переименование файла встроенным языком
Во встроенном языке 1С нет отдельного метода «ПереименоватьФайл». Переименование выполняется методом ПереместитьФайл: файл «перемещается» в ту же папку, но с новым именем. Метод работает и в тонком, и в толстом клиенте, и на сервере — с учётом того, что пути на сервере относятся к файловой системе сервера, а не компьютера пользователя.
&НаСервере
Процедура ПереименоватьФайлНаСервере()
СтароеИмя = "C:\Обмен\выгрузка.txt";
НовоеИмя = "C:\Обмен\выгрузка_архив.txt";
Попытка
ПереместитьФайл(СтароеИмя, НовоеИмя);
Исключение
Сообщить("Не удалось переименовать файл: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедурыПеред вызовом полезно проверить существование исходного файла и отсутствие файла с новым именем — иначе возможна ошибка или неожиданная перезапись. Для проверки используйте объект Файл с методом Существует(). Если файл с новым именем уже существует, ПереместитьФайл вызовет исключение, которое нужно обработать.
Для интерактивного выбора файла пользователем применяйте ДиалогВыбораФайла в режиме «Открытие», а для работы с путями — функции СтрЗаменить или разбор пути через объект Файл (свойства ИмяБезРасширения, Расширение, Путь). Это удобно, когда нужно, например, добавить к имени дату: имя собирается из частей, затем вызывается ПереместитьФайл.
Файл = Новый Файл("C:\Обмен\отчет.xlsx");
Если Файл.Существует() Тогда
НовоеИмя = Файл.Путь + Файл.ИмяБезРасширения + "_" + Формат(ТекущаяДата(), "ДФ=ггггММдд") + Файл.Расширение;
ПереместитьФайл(Файл.ПолноеИмя, НовоеИмя);
КонецЕсли;Массовое переименование присоединённых файлов обработкой
Когда переименовать нужно не один файл, а сотни (например, привести названия сканов к шаблону «НомерДокумента_Дата»), ручная работа не подходит. В этом случае пишется серверная процедура, которая перебирает элементы справочника присоединённых файлов и меняет реквизит «Наименование».
Логика проста: запросом выбираются нужные файлы (по владельцу, расширению, дате), для каждого формируется новое наименование и вызывается Записать(). Само содержимое файла при этом не трогается — меняется только реквизит, поэтому операция быстрая и безопасная для данных. Обязательно сделайте резервную копию базы перед массовой обработкой и сначала протестируйте её на копии.
При массовом переименовании удобно сначала вывести в табличный документ «старое имя — новое имя» без записи в базу. Пользователь проверяет соответствие глазами, и только после этого запускается реальная обработка. Это спасает от опечаток в шаблоне имён.
Типичные ошибки и ограничения
Отдельно учитывайте ограничения длины пути в Windows: полный путь длиннее примерно 260 символов может вызвать ошибку при работе с файлом. Если файлы лежат глубоко во вложенных папках, придумывайте короткие названия. Также помните, что в файловой базе одновременная работа с одним файлом нескольких пользователей может блокировать переименование.
Как проверить результат
Показывается новое наименование, файл открывается двойным щелчком
Старое имя или ошибка «файл не найден» при открытии
Файл сохраняется с новым именем и корректным расширением
Двойное расширение или усечённое имя
Регламентное задание находит файл, обмен проходит без ошибок
В журнале регистрации ошибки «файл не обнаружен»
FAQ
Можно ли переименовать файл, не открывая его карточку?
Да, во многих конфигурациях наименование редактируется прямо в списке присоединённых файлов: выделите строку, нажмите F2 и измените текст в колонке «Наименование». Если колонка не редактируется, откройте карточку файла — там поле доступно почти всегда.
Почему 1С не даёт переименовать файл и пишет, что он занят?
Файл открыт на редактирование вами или другим пользователем. В карточке файла видно, кто его занял. Завершите редактирование (кнопка «Закончить редактирование») или попросите коллегу освободить файл, затем повторите попытку.
Как программно переименовать файл, если метод с таким названием отсутствует?
Используйте ПереместитьФайл(Источник, Приёмник), указав в приёмнике ту же папку с новым именем. Предварительно проверьте существование исходного файла через объект Файл и отсутствие файла с новым именем, иначе получите исключение.
Изменится ли имя файла на диске, если я переименую его в карточке 1С?
Нет. Наименование в карточке — это реквизит записи в базе. Если файлы хранятся в томах, физическое имя файла на диске служебное и не совпадает с наименованием. Новое имя появится при сохранении файла из 1С на диск.
Какие символы нельзя использовать в имени файла?
Windows запрещает символы \ / : * ? " < > |. При программном формировании имён добавьте очистку строки от этих символов, иначе ПереместитьФайл или сохранение на диск завершится ошибкой. Также избегайте точки в конце имени и слишком длинных путей.
Нужно ли делать копию базы перед массовым переименованием?
Да. Хотя переименование меняет только реквизит «Наименование», ошибка в шаблоне обработки может испортить названия у сотен файлов, и откатить это вручную трудоёмко. Резервная копия и тестовый прогон на копии базы занимают минуты, но полностью снимают риск.
Что важно запомнить
Присоединённый файл переименовывается через карточку или список вложений — меняется только наименование в базе. Файл на диске переименовывается средствами Windows или методом ПереместитьФайл во встроенном языке. Никогда не переименовывайте файлы томов хранения через проводник, а перед массовой обработкой делайте резервную копию.