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

Администрирование · 9 мин

1С: как открыть файл из хранилища

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

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

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

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

Определите, о каком хранилище идёт речь

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

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

Как подключиться к хранилищу конфигурации

Откройте базу в конфигураторе под пользователем с правами на работу с хранилищем. Перейдите в меню «Конфигурация → Хранилище конфигурации → Подключиться к хранилищу». Если пункт неактивен, проверьте, что конфигурация не находится на поддержке с блокировкой и что у вашей учётной записи есть права администратора хранилища.

В диалоге укажите путь к каталогу хранилища (сетевой путь вида \\server\storage или локальный), имя пользователя хранилища и пароль. Учётные записи хранилища создаёт администратор отдельно — они не совпадают с пользователями информационной базы.

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

Подключение к хранилищу конфигурации
  1. 1
    Откройте базу в конфигураторе под учётной записью с нужными правами
  2. 2
    Выберите «Конфигурация → Хранилище конфигурации → Подключиться к хранилищу»
  3. 3
    Укажите путь к каталогу хранилища, имя пользователя и пароль
  4. 4
    Подтвердите подключение и дождитесь синхронизации состояния объектов
  5. 5
    Проверьте, что в дереве конфигурации появились значки захвата

Как получить файл или объект из хранилища

Чтобы открыть актуальную версию конфигурации из хранилища, используйте команду «Конфигурация → Хранилище конфигурации → Получить из хранилища» или «Обновить конфигурацию из хранилища». Платформа сравнит версии и загрузит изменённые объекты в вашу базу.

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

Сохранение версии в файл .cf

Для передачи файла конфигурации коллеге или развёртывания на тестовой базе: в истории хранилища выделите версию, вызовите команду «Сохранить конфигурацию в файл» и укажите путь. Полученный .cf-файл открывается в конфигураторе через «Конфигурация → Загрузить конфигурацию из файла».

Как открыть файл, сохранённый в базе (хранилище значений и присоединённые файлы)

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

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

bsl
ДвоичныеДанные = Объект.ФайлХранилище.Получить();
Если ДвоичныеДанные <> Неопределено Тогда
    ДвоичныеДанные.Записать("C:\Temp\file.pdf");
КонецЕсли;

Программное открытие файла из хранилища

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

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

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

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

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

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

Типичные ошибки
01
Подключение к хранилищу по локальному пути вместо сетевого — коллеги не видят ваших изменений, история расходится
02
Загрузка конфигурации из файла поверх рабочей базы без копии — при ошибке данные и доработки теряются
03
Выгрузка файлов без расширения — пользователь не может открыть файл двойным щелчком
04
Работа в хранилище под чужой учётной записью — история изменений теряет достоверность

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

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

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

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

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

Синхронизация с хранилищем
Норма

В дереве конфигурации нет значков расхождения версий

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

Объекты помечены как изменённые, хотя вы их не трогали

Выгруженный файл
Норма

Открывается в штатной программе, содержимое корректно

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

Нулевой размер, ошибка формата при открытии

История хранилища
Норма

Последняя версия содержит ваши изменения с вашим именем

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

Версии нет или автор чужой

FAQ

Можно ли открыть хранилище конфигурации без конфигуратора?

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

Что делать, если забыт пароль пользователя хранилища?

Пароль сбрасывает администратор хранилища: в конфигураторе под учётной записью администратора откройте «Администрирование → Пользователи хранилища конфигурации», выберите пользователя и задайте новый пароль.

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

Штатной кнопки «выгрузить всё» в типовых конфигурациях обычно нет. Используется обработка, которая перебирает присоединённые файлы и сохраняет двоичные данные на диск через РаботаСФайлами.ДвоичныеДанныеФайла(). Перед массовой выгрузкой сделайте копию базы.

Почему файл из базы открывается пустым или с ошибкой?

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

Можно ли получить старую версию объекта, не откатывая всю конфигурацию?

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

Итог

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

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