Справочники и Данные · 8 мин
Как вытащить файл из 1С: все рабочие способы
Как извлечь файл из 1С: выгрузка документов, картинок и вложений, встроенные средства платформы, обработки и типичные ошибки при извлечении файлов.
Файлы в 1С хранятся по-разному: вложения писем и документов, картинки товаров, печатные формы, файлы, присоединённые к справочникам и документам через механизм «ПрисоединенныеФайлы». В зависимости от того, где лежит файл и какая у вас конфигурация (УТ 11, ERP, Бухгалтерия 3.0, ЗУП и другие), порядок извлечения отличается. Ниже разобраны основные сценарии — от простого сохранения через интерфейс до массовой выгрузки программным способом.
Перед любыми действиями с базой, особенно программными, сделайте резервную копию. Выгрузка файлов сама по себе не меняет данные, но ошибка в самописной обработке может повредить хранилище или удалить присоединённые файлы вместе со ссылками.
Где 1С хранит файлы и как это влияет на извлечение
Платформа 1С поддерживает два режима хранения присоединённых файлов: в информационной базе (в справочниках-хранилищах вида «ДокументыПрисоединенныеФайлы») и в томах на диске. Режим задаётся в настройках учётной политики присоединённых файлов. Если файлы хранятся в томах, их можно забрать напрямую из папки на сервере — но делать это нужно аккуратно, не переименовывая и не удаляя ничего вручную.
Узнать режим хранения можно в разделе администрирования: «Настройки работы с файлами» или аналогичный пункт, зависящий от конфигурации. Если включены тома, там же указан путь к папке. Имена файлов в томах обычно заменены служебными, поэтому поиск по исходному имени не сработает — ориентируйтесь на размер и дату изменения.
Как сохранить один файл через интерфейс
Самый частый сценарий — вытащить скан договора, счёт или картинку, прикреплённую к конкретному объекту. Действия одинаковы для большинства типовых конфигураций на управляемых формах.
- 1Откройте документ или элемент справочника, к которому прикреплён файл
- 2Найдите панель или команду «Присоединенные файлы» — обычно это скрепка в командной панели или ссылка в форме
- 3Выделите нужный файл в списке
- 4Нажмите «Сохранить как» (значок дискеты) или используйте правую кнопку мыши
- 5Укажите папку на компьютере и подтвердите сохранение
- 6Откройте сохранённый файл и убедитесь, что он читается и не обрезан
Если файл открывается для просмотра прямо в 1С, но кнопки сохранения нет, значит, у вашей роли ограничены права на работу с присоединёнными файлами. Попросите администратора выдать право «Изменение» или «Просмотр» на соответствующий справочник присоединённых файлов.
Как вытащить картинку товара или изображение из справочника
Картинки номенклатуры в УТ, ERP и рознице — это те же присоединённые файлы, привязанные к карточке товара. Откройте карточку номенклатуры, найдите область с изображением или список файлов, выделите картинку и сохраните её через «Сохранить как». Основное изображение обычно помечено в списке отдельно.
Если картинка хранится не как присоединённый файл, а в реквизите типа «ХранилищеЗначения» (так бывает в старых или самописных конфигурациях), извлечь её через интерфейс не получится — понадобится программный способ, описанный ниже.
Как выгрузить печатную форму или документ в файл
Если под «вытащить файл» имеется в виду получить документ в PDF, Excel или Word, используйте сохранение печатной формы. Сформируйте печатную форму документа, затем в табличном документе выберите «Файл → Сохранить как» и укажите нужный формат: PDF, XLSX, MXL, HTML и другие доступные варианты.
Для пакетной выгрузки печатных форм в типовых конфигурациях есть групповая печать: в списке документов выделите несколько строк, вызовите команду печати и сохраните результат. Учтите, что при выгрузке в Excel форматирование может отличаться от экранного вида — это ограничение конвертации табличных документов, а не ошибка.
Массовая выгрузка присоединённых файлов программным способом
Когда файлов десятки или тысячи, сохранять каждый вручную нереально. В этом случае используют консоль кода или внешнюю обработку, которая перебирает справочник присоединённых файлов и сохраняет двоичные данные на диск. В конфигурациях на БСП за это отвечает модуль «РаботаСФайлами» (в новых версиях — аналогичный программный интерфейс).
Запрос = Новый Запрос("ВЫБРАТЬ Ссылка, Наименование, Расширение ИЗ Справочник.ДоговорыКонтрагентовПрисоединенныеФайлы ГДЕ НЕ ПометкаУдаления");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Данные = РаботаСФайлами.ДвоичныеДанныеФайла(Выборка.Ссылка);
Если Данные <> Неопределено Тогда
Данные.Записать("D:\Выгрузка\" + Выборка.Наименование + "." + Выборка.Расширение);
КонецЕсли;
КонецЦикла;Замените имя справочника на актуальное для вашей конфигурации: оно строится по шаблону «ИмяОбъектаПрисоединенныеФайлы». Проверьте точное имя в конфигураторе, иначе запрос вернёт ошибку. Папка выгрузки должна существовать и быть доступна тому пользователю, под которым работает сервер 1С, если код выполняется на сервере.
Выгрузка файлов из томов на диске напрямую
Если файлы хранятся в томах, технически их можно скопировать из папки тома средствами операционной системы. Однако имена там служебные, и восстановить соответствие «файл — документ» без базы невозможно. Поэтому прямое копирование подходит только как способ аварийного забора всего массива файлов, а не выборочного извлечения.
Правильный путь для томов — та же программная выгрузка через «РаботаСФайлами»: платформа сама обратится к тому и вернёт двоичные данные с корректным именем и расширением. Копируйте папку тома только в режиме чтения и никогда не удаляйте файлы из неё вручную — это приведёт к ошибкам «файл не найден» при открытии вложений в 1С.
Как проверить результат выгрузки
После выгрузки сравните количество файлов в папке с количеством записей в справочнике присоединённых файлов (без пометки удаления). Расхождение означает, что часть файлов не выгрузилась — чаще всего из-за битых ссылок или отсутствия данных в хранилище.
Как проверить результат
Совпадает с числом непомеченных записей в справочнике
Файлов меньше — есть пропуски, нужен разбор журнала ошибок
Файлы открываются в штатных программах, содержимое читается
Файл не открывается или имеет нулевой размер
Имена читаемые, расширения соответствуют типу содержимого
Расширения не совпадают с реальным форматом, файлы-близнецы перезаписали друг друга
Особое внимание уделите файлам с одинаковыми наименованиями: при массовой выгрузке они могут перезаписывать друг друга. Добавьте в имя файла уникальный идентификатор ссылки, если такие дубли возможны.
FAQ
Почему кнопка «Сохранить как» неактивна в списке присоединённых файлов?
Чаще всего не хватает прав: роль пользователя не включает доступ к справочнику присоединённых файлов. Обратитесь к администратору для настройки ролей. Реже причина в том, что файл пустой или повреждён в хранилище.
Можно ли вытащить файл из 1С без доступа к конфигуратору?
Да, для одиночных файлов достаточно пользовательского режима: откройте объект, найдите присоединённые файлы и сохраните нужный. Конфигуратор или консоль кода нужны только для массовой выгрузки и нестандартных хранилищ.
Как узнать, в каком справочнике хранятся файлы нужного документа?
Откройте конфигуратор, найдите в дереве справочники с суффиксом «ПрисоединенныеФайлы» и посмотрите свойство «Владелец» — оно указывает, к какому объекту привязано хранилище. Имя обычно совпадает с именем объекта-владельца.
Файл выгрузился, но не открывается. Что делать?
Проверьте расширение и размер файла. Нулевой размер означает, что данные не были записаны — повторите выгрузку. Если расширение не соответствует содержимому, попробуйте открыть файл в программе, подходящей под реальный формат, или посмотрите сигнатуру файла в hex-редакторе.
Как выгрузить все вложения из писем встроенной почты 1С?
Вложения электронных писем хранятся в справочнике «ЭлектронноеПисьмоВходящееПрисоединенныеФайлы» (и аналогичном для исходящих). Используйте тот же программный подход с выборкой по этому справочнику, либо сохраняйте вложения вручную из формы письма.
Что важно запомнить
Один файл сохраняйте через интерфейс объекта, массовую выгрузку делайте программно через механизм присоединённых файлов, а папку томов не трогайте напрямую. Перед любыми экспериментами делайте копию базы и проверяйте результат выгрузки по количеству и открываемости файлов.