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

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

Как добавить список файлов в 1С

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

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

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

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

Где в 1С хранится список присоединённых файлов

Механизм присоединённых файлов в БСП построен на справочниках вида «ИмяОбъектаПрисоединенныеФайлы». Каждый файл — отдельный элемент такого справочника, связанный с конкретным документом или элементом основного справочника. Список файлов формируется автоматически по отбору «владелец файла».

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

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

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

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

Порядок добавления файлов
  1. 1
    Откройте документ или карточку элемента справочника
  2. 2
    Нажмите кнопку «Присоединённые файлы» (скрепка) или пункт меню «Ещё → Присоединённые файлы»
  3. 3
    В открывшемся списке нажмите «Добавить → Из файла на диске»
  4. 4
    Выберите один или несколько файлов в диалоге (удерживайте Ctrl для множественного выбора)
  5. 5
    Проверьте, что файлы появились в списке с корректными именами и размерами

Для добавления сразу нескольких файлов в диалоге выбора выделите их с зажатой клавишей Ctrl или Shift — 1С создаст отдельный элемент справочника для каждого файла. Имена файлов сохраняются автоматически, при необходимости их можно переименовать потом в карточке присоединённого файла.

Многие конфигурации поддерживают перетаскивание: файлы можно перетащить мышью из проводника Windows прямо в форму списка присоединённых файлов. Это удобно при загрузке десятков сканов подряд.

Добавление из сканера и из буфера обмена

Если конфигурация поддерживает работу со сканером, в меню «Добавить» будет пункт «Со сканера». После сканирования изображение сразу попадёт в список файлов. Аналогично работает вставка изображения из буфера обмена — например, скриншота.

Как организовать список файлов в самописной конфигурации

Если типового механизма нет, список файлов реализуют двумя путями. Первый — табличная часть объекта с реквизитами «ИмяФайла», «ПутьКФайлу» или «Данные» типа «Хранилище значения». Это простое решение для небольшого числа небольших файлов, но оно раздувает запись объекта и неудобно при большом количестве вложений.

Второй путь — отдельный справочник с реквизитом «Владелец», по аналогии с БСП. Для каждого файла создаётся элемент справочника, двоичные данные помещаются в реквизит типа «Хранилище значения», а список выводится на форму владельца динамическим списком с отбором.

bsl
Процедура ДобавитьФайл(Владелец, ПутьКФайлу)
    ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу);
    НовыйФайл = Справочники.ПрисоединенныеФайлы.СоздатьЭлемент();
    НовыйФайл.Владелец = Владелец;
    ФайлНаДиске = Новый Файл(ПутьКФайлу);
    НовыйФайл.Наименование = ФайлНаДиске.Имя;
    НовыйФайл.Данные = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
    НовыйФайл.Записать();
КонецПроцедуры

Для вывода списка на форму добавьте динамический список с произвольным запросом и отбором по владельцу, либо обновляйте таблицу значений при открытии формы. Команды «Добавить», «Открыть», «Сохранить на диск» реализуются через методы НачатьПомещениеФайла и НачатьПолучениеФайлов.

Выбор способа хранения: база или тома на диске

Хранение файлов в базе проще администрируется: резервная копия базы автоматически включает все вложения, не нужно настраивать права на сетевые папки. Минус — рост размера базы, увеличение времени выгрузки и обновления.

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

КритерийХранение в базеХранение в томах
Размер и число файловНебольшие объёмыБольшие архивы сканов и фото
Резервное копированиеВместе с базойОтдельная копия томов
Скорость работы базыПадает при росте объёмаСтабильнее
НастройкаНе требуетсяНужны тома и права доступа
Маршрут решения

Как выбрать способ хранения

Файлов немного, это преимущественно документы до нескольких мегабайтХраните в базе — это проще и безопаснее
Планируется загрузка тысяч сканов или фото большого размераНастройте тома на диске и регулярное копирование томов
Уже накоплен большой объём в базе и она раздуласьРассмотрите перенос файлов в тома штатными средствами конфигурации

Массовая загрузка списка файлов

Когда нужно добавить список из десятков или сотен файлов сразу к разным объектам, ручное добавление неэффективно. Варианты автоматизации: внешняя обработка, которая обходит папку и прикрепляет файлы по правилу соответствия (например, по номеру документа в имени файла), либо загрузка через COM/веб-сервисы из внешней системы.

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

При массовой загрузке задавайте файлам понятные имена до загрузки: после прикрепления переименование сотен элементов вручную займёт много времени. Удобный формат — «НомерДокумента_ТипФайла», тогда и сопоставление, и последующий поиск упрощаются.
ПЗ
Практическое замечание

Проверка результата и типичные ошибки

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

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

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

Открытие файла из списка
Норма

Файл открывается в связанной программе без ошибок

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

Ошибка открытия или пустое содержимое

Размер файла в списке
Норма

Размер соответствует исходному файлу на диске

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

Нулевой или явно заниженный размер

Привязка к владельцу
Норма

Файл виден только у нужного документа

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

Файл отображается у чужих объектов или не отображается нигде

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

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

Ограничения и границы самостоятельной работы

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

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

Итог

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

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

Частые вопросы

Можно ли добавить несколько файлов одним действием?

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

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

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

Что лучше: хранить файлы в базе или на диске?

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

Как избежать дублей при повторной загрузке одних и тех же файлов?

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

Файл добавился, но не открывается — в чём причина?

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

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

Да. В форме списка присоединённых файлов выделите нужные элементы и используйте команду сохранения («Сохранить как» или аналогичную). Для регулярной пакетной выгрузки по многим объектам потребуется отдельная обработка, которая обходит справочник присоединённых файлов и сохраняет данные в указанный каталог.