Администрирование · 9 мин
1С: как открыть файл из хранилища
Как открыть файл из хранилища в 1С: подключение к хранилищу конфигурации, получение файлов, работа с хранилищем значений и типичные ошибки.
Под «хранилищем» в 1С обычно понимают три разные вещи: хранилище конфигурации, через которое разработчики совместно изменяют конфигурацию; хранилище значений — поле в базе данных, где лежат файлы, картинки и вложения; и хранилище файлов в типовых конфигурациях (например, «Присоединенные файлы»). Способ открыть файл зависит от того, о каком именно хранилище идёт речь.
Чаще всего запрос «открыть файл из хранилища» означает одну из двух задач: разработчику нужно получить файл конфигурации или обработку из хранилища конфигурации, либо пользователю нужно открыть файл, сохранённый в базе (скан договора, фото товара, вложение письма). Ниже разобраны оба сценария, а также программный способ через встроенный язык.
Перед любыми действиями с хранилищем конфигурации убедитесь, что у вас есть актуальная копия базы: захват объектов и изменение конфигурации при ошибке могут нарушить работу всей команды разработки.
Определите, о каком хранилище идёт речь
Первый шаг — понять, где физически лежит файл. Если вы разработчик и файл — это конфигурация, внешняя обработка или отчёт, которые команда дорабатывает совместно, то используется хранилище конфигурации. Оно находится в отдельном каталоге на сервере и доступно только через конфигуратор.
Если файл — это документ Word, скан, картинка товара или вложение, которое пользователь прикрепил к элементу справочника или документу, то он хранится в самой информационной базе: в реквизите типа «Хранилище значения» или в справочнике присоединённых файлов. Такой файл открывается из пользовательского интерфейса либо извлекается программно.
Как подключиться к хранилищу конфигурации
Откройте базу в конфигураторе под пользователем с правами на работу с хранилищем. Перейдите в меню «Конфигурация → Хранилище конфигурации → Подключиться к хранилищу». Если пункт неактивен, проверьте, что конфигурация не находится на поддержке с блокировкой и что у вашей учётной записи есть права администратора хранилища.
В диалоге укажите путь к каталогу хранилища (сетевой путь вида \\server\storage или локальный), имя пользователя хранилища и пароль. Учётные записи хранилища создаёт администратор отдельно — они не совпадают с пользователями информационной базы.
После подключения в конфигураторе появятся признаки захвата объектов: замочки и галочки рядом с элементами дерева конфигурации. Это признак того, что подключение выполнено успешно.
- 1Откройте базу в конфигураторе под учётной записью с нужными правами
- 2Выберите «Конфигурация → Хранилище конфигурации → Подключиться к хранилищу»
- 3Укажите путь к каталогу хранилища, имя пользователя и пароль
- 4Подтвердите подключение и дождитесь синхронизации состояния объектов
- 5Проверьте, что в дереве конфигурации появились значки захвата
Как получить файл или объект из хранилища
Чтобы открыть актуальную версию конфигурации из хранилища, используйте команду «Конфигурация → Хранилище конфигурации → Получить из хранилища» или «Обновить конфигурацию из хранилища». Платформа сравнит версии и загрузит изменённые объекты в вашу базу.
Если нужна конкретная старая версия, откройте «Хранилище конфигурации → История хранилища». В списке версий выберите нужную, откройте её двойным щелчком — вы увидите состав изменений. Через контекстное меню можно сравнить версии или получить конфигурацию выбранной версии в файл .cf.
Сохранение версии в файл .cf
Для передачи файла конфигурации коллеге или развёртывания на тестовой базе: в истории хранилища выделите версию, вызовите команду «Сохранить конфигурацию в файл» и укажите путь. Полученный .cf-файл открывается в конфигураторе через «Конфигурация → Загрузить конфигурацию из файла».
Как открыть файл, сохранённый в базе (хранилище значений и присоединённые файлы)
В типовых конфигурациях файлы прикрепляются к объектам: номенклатуре, контрагентам, документам. Откройте карточку объекта и найдите кнопку со скрепкой или ссылку «Присоединенные файлы» (иногда «Файлы», «Изображения»). В открывшемся списке двойной щелчок по файлу открывает его в ассоциированной программе, а команда «Сохранить как» выгружает файл на диск.
Если файл хранится в реквизите типа «Хранилище значения» в самописной конфигурации, пользовательский интерфейс может отсутствовать. Тогда файл извлекается программно: значение реквизита возвращает объект ХранилищеЗначения, у которого метод Получить() возвращает двоичные данные или картинку.
ДвоичныеДанные = Объект.ФайлХранилище.Получить();
Если ДвоичныеДанные <> Неопределено Тогда
ДвоичныеДанные.Записать("C:\Temp\file.pdf");
КонецЕсли;Программное открытие файла из хранилища
Для массовой выгрузки файлов удобно написать небольшую обработку. Логика одинакова: перебрать элементы справочника присоединённых файлов или записи с реквизитом-хранилищем, получить двоичные данные и записать их на диск с корректным расширением. Расширение обычно хранится в отдельном реквизите (например, «Расширение» у присоединённого файла).
В типовых конфигурациях для этого есть программный интерфейс общего модуля работы с файлами (в БСП — РаботаСФайлами): функция ДвоичныеДанныеФайла() возвращает данные по ссылке на присоединённый файл. Прямые запросы к таблицам в обход этих механизмов нежелательны — структура хранения может меняться между версиями конфигурации.
Типичные ошибки и ограничения
Ошибка «Хранилище конфигурации недоступно» чаще всего означает, что закрыт сетевой доступ к каталогу хранилища или изменился путь. Проверьте доступность каталога в проводнике и права учётной записи, под которой работаете.
Сообщение о несовместимости версий хранилища возникает, когда хранилище создано более новой версией платформы, чем та, из-под которой вы подключаетесь. Обновите платформу до версии не ниже той, что использовалась при создании хранилища.
При работе с файлами в базе распространена ситуация, когда файл «есть, но не открывается»: данные были записаны без расширения или повреждены при нештатной загрузке. Проверьте размер двоичных данных — нулевой размер означает, что сохранять нечего.
Как проверить результат
После получения конфигурации из хранилища откройте «Конфигурация → Проверка конфигурации» и убедитесь в отсутствии критических ошибок. Статус объектов в дереве конфигурации должен соответствовать ожиданиям: захваченные вами объекты отмечены, остальные синхронизированы.
Для выгруженного файла проверка проста: откройте его штатной программой (PDF-просмотрщиком, Word, графическим редактором). Если файл открывается и содержимое читаемо — выгрузка выполнена корректно. Если программа сообщает о повреждении — проверьте, полностью ли записаны двоичные данные и верно ли определён формат.
Как проверить результат
В дереве конфигурации нет значков расхождения версий
Объекты помечены как изменённые, хотя вы их не трогали
Открывается в штатной программе, содержимое корректно
Нулевой размер, ошибка формата при открытии
Последняя версия содержит ваши изменения с вашим именем
Версии нет или автор чужой
FAQ
Можно ли открыть хранилище конфигурации без конфигуратора?
Нет, штатный доступ к хранилищу возможен только через конфигуратор или пакетный режим его запуска. Файлы в каталоге хранилища имеют внутренний формат платформы и не читаются напрямую.
Что делать, если забыт пароль пользователя хранилища?
Пароль сбрасывает администратор хранилища: в конфигураторе под учётной записью администратора откройте «Администрирование → Пользователи хранилища конфигурации», выберите пользователя и задайте новый пароль.
Как выгрузить все присоединённые файлы из базы разом?
Штатной кнопки «выгрузить всё» в типовых конфигурациях обычно нет. Используется обработка, которая перебирает присоединённые файлы и сохраняет двоичные данные на диск через РаботаСФайлами.ДвоичныеДанныеФайла(). Перед массовой выгрузкой сделайте копию базы.
Почему файл из базы открывается пустым или с ошибкой?
Чаще всего причины: данные не были записаны при прикреплении (нулевой размер), неверное расширение при сохранении или повреждение при нештатной загрузке. Проверьте размер двоичных данных и попробуйте сохранить файл с правильным расширением из реквизита объекта.
Можно ли получить старую версию объекта, не откатывая всю конфигурацию?
Да. В истории хранилища выберите нужную версию и используйте сравнение с текущей конфигурацией — в режиме объединения можно перенести изменения только по выбранным объектам, не затрагивая остальные.
Что важно запомнить
Сначала определите тип хранилища: конфигурация открывается через конфигуратор и подключение к хранилищу, файлы из базы — через присоединённые файлы или программно методом Получить(). Перед загрузкой конфигурации и массовой выгрузкой всегда делайте резервную копию, а результат проверяйте открытием файла или проверкой конфигурации.