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

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

Как вытащить файл из 1С: все рабочие способы

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

Файлы в 1С хранятся по-разному: вложения писем и документов, картинки товаров, печатные формы, файлы, присоединённые к справочникам и документам через механизм «ПрисоединенныеФайлы». В зависимости от того, где лежит файл и какая у вас конфигурация (УТ 11, ERP, Бухгалтерия 3.0, ЗУП и другие), порядок извлечения отличается. Ниже разобраны основные сценарии — от простого сохранения через интерфейс до массовой выгрузки программным способом.

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

Где 1С хранит файлы и как это влияет на извлечение

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

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

Как сохранить один файл через интерфейс

Самый частый сценарий — вытащить скан договора, счёт или картинку, прикреплённую к конкретному объекту. Действия одинаковы для большинства типовых конфигураций на управляемых формах.

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

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

Как вытащить картинку товара или изображение из справочника

Картинки номенклатуры в УТ, ERP и рознице — это те же присоединённые файлы, привязанные к карточке товара. Откройте карточку номенклатуры, найдите область с изображением или список файлов, выделите картинку и сохраните её через «Сохранить как». Основное изображение обычно помечено в списке отдельно.

Если картинка хранится не как присоединённый файл, а в реквизите типа «ХранилищеЗначения» (так бывает в старых или самописных конфигурациях), извлечь её через интерфейс не получится — понадобится программный способ, описанный ниже.

Как выгрузить печатную форму или документ в файл

Если под «вытащить файл» имеется в виду получить документ в PDF, Excel или Word, используйте сохранение печатной формы. Сформируйте печатную форму документа, затем в табличном документе выберите «Файл → Сохранить как» и укажите нужный формат: PDF, XLSX, MXL, HTML и другие доступные варианты.

Для пакетной выгрузки печатных форм в типовых конфигурациях есть групповая печать: в списке документов выделите несколько строк, вызовите команду печати и сохраните результат. Учтите, что при выгрузке в Excel форматирование может отличаться от экранного вида — это ограничение конвертации табличных документов, а не ошибка.

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

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

bsl
Запрос = Новый Запрос("ВЫБРАТЬ Ссылка, Наименование, Расширение ИЗ Справочник.ДоговорыКонтрагентовПрисоединенныеФайлы ГДЕ НЕ ПометкаУдаления");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Данные = РаботаСФайлами.ДвоичныеДанныеФайла(Выборка.Ссылка);
    Если Данные <> Неопределено Тогда
        Данные.Записать("D:\Выгрузка\" + Выборка.Наименование + "." + Выборка.Расширение);
    КонецЕсли;
КонецЦикла;

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

Выгрузка файлов из томов на диске напрямую

Если файлы хранятся в томах, технически их можно скопировать из папки тома средствами операционной системы. Однако имена там служебные, и восстановить соответствие «файл — документ» без базы невозможно. Поэтому прямое копирование подходит только как способ аварийного забора всего массива файлов, а не выборочного извлечения.

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

Типичные ошибки
01
Удаление или переименование файлов в папке тома — вложения в 1С перестают открываться
02
Выгрузка на сервере в папку, недоступную пользователю службы 1С — файлы не создаются, ошибка не всегда видна
03
Использование неправильного имени справочника присоединённых файлов — запрос падает с ошибкой
04
Игнорирование пометки удаления — в выгрузку попадают файлы, удалённые пользователями
05
Сохранение без проверки результата — часть файлов оказывается пустой или обрезанной из-за прерывания

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

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

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

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

Количество файлов в папке выгрузки
Норма

Совпадает с числом непомеченных записей в справочнике

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

Файлов меньше — есть пропуски, нужен разбор журнала ошибок

Открытие случайных файлов
Норма

Файлы открываются в штатных программах, содержимое читается

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

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

Имена и расширения
Норма

Имена читаемые, расширения соответствуют типу содержимого

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

Расширения не совпадают с реальным форматом, файлы-близнецы перезаписали друг друга

Особое внимание уделите файлам с одинаковыми наименованиями: при массовой выгрузке они могут перезаписывать друг друга. Добавьте в имя файла уникальный идентификатор ссылки, если такие дубли возможны.

FAQ

Почему кнопка «Сохранить как» неактивна в списке присоединённых файлов?

Чаще всего не хватает прав: роль пользователя не включает доступ к справочнику присоединённых файлов. Обратитесь к администратору для настройки ролей. Реже причина в том, что файл пустой или повреждён в хранилище.

Можно ли вытащить файл из 1С без доступа к конфигуратору?

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

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

Откройте конфигуратор, найдите в дереве справочники с суффиксом «ПрисоединенныеФайлы» и посмотрите свойство «Владелец» — оно указывает, к какому объекту привязано хранилище. Имя обычно совпадает с именем объекта-владельца.

Файл выгрузился, но не открывается. Что делать?

Проверьте расширение и размер файла. Нулевой размер означает, что данные не были записаны — повторите выгрузку. Если расширение не соответствует содержимому, попробуйте открыть файл в программе, подходящей под реальный формат, или посмотрите сигнатуру файла в hex-редакторе.

Как выгрузить все вложения из писем встроенной почты 1С?

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

Итог

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

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