Справочники и Данные · 10 мин
Как добавить список файлов в 1С
Как добавить список файлов в 1С: присоединение документов к справочникам и объектам, механизм БСП, загрузка нескольких файлов, хранение и типичные ошибки.
Во многих задачах учёта к документу или элементу справочника нужно прикрепить не один файл, а целый список: сканы договоров, акты, фото товара, спецификации. В типовых конфигурациях на базе Библиотеки стандартных подсистем (БСП) для этого предусмотрен механизм присоединённых файлов, который хранит файлы либо в информационной базе, либо в томах на диске.
Способ добавления зависит от конфигурации. В типовых решениях («Управление торговлей», «Бухгалтерия предприятия», «ERP») механизм уже встроен: достаточно открыть объект и использовать команду «Присоединённые файлы» или кнопку со скрепкой. В самописных конфигурациях список файлов реализуют через табличную часть или справочник, и здесь потребуется доработка конфигуратора.
Перед началом работы важно понять, где будут храниться файлы и какой объём они займут. Загрузка сотен сканов прямо в базу данных быстро увеличивает её размер, замедляет резервное копирование и обмены. Поэтому выбор способа хранения — не формальность, а практическое решение, влияющее на производительность.
Где в 1С хранится список присоединённых файлов
Механизм присоединённых файлов в БСП построен на справочниках вида «ИмяОбъектаПрисоединенныеФайлы». Каждый файл — отдельный элемент такого справочника, связанный с конкретным документом или элементом основного справочника. Список файлов формируется автоматически по отбору «владелец файла».
Сами двоичные данные хранятся одним из двух способов. Первый — в информационной базе: файл помещается в хранилище значений внутри базы. Второй — в томах на диске: в базе остаётся только ссылка на путь, а сам файл лежит в сетевой папке. Тип хранения задаётся в настройках учётной политики присоединённых файлов.
Проверить текущий режим хранения можно в разделе администрирования: «Настройки работы с файлами» или аналогичный пункт в зависимости от конфигурации. Там же включается опция «Хранить файлы в томах на диске» и задаются сами тома.
Как добавить файлы к документу или справочнику в типовой конфигурации
Базовый сценарий одинаков для большинства типовых решений. Откройте нужный документ или карточку элемента справочника, найдите команду «Присоединённые файлы» — обычно это кнопка со значком скрепки в командной панели или пункт меню «Ещё». Откроется форма со списком уже добавленных файлов.
- 1Откройте документ или карточку элемента справочника
- 2Нажмите кнопку «Присоединённые файлы» (скрепка) или пункт меню «Ещё → Присоединённые файлы»
- 3В открывшемся списке нажмите «Добавить → Из файла на диске»
- 4Выберите один или несколько файлов в диалоге (удерживайте Ctrl для множественного выбора)
- 5Проверьте, что файлы появились в списке с корректными именами и размерами
Для добавления сразу нескольких файлов в диалоге выбора выделите их с зажатой клавишей Ctrl или Shift — 1С создаст отдельный элемент справочника для каждого файла. Имена файлов сохраняются автоматически, при необходимости их можно переименовать потом в карточке присоединённого файла.
Многие конфигурации поддерживают перетаскивание: файлы можно перетащить мышью из проводника Windows прямо в форму списка присоединённых файлов. Это удобно при загрузке десятков сканов подряд.
Добавление из сканера и из буфера обмена
Если конфигурация поддерживает работу со сканером, в меню «Добавить» будет пункт «Со сканера». После сканирования изображение сразу попадёт в список файлов. Аналогично работает вставка изображения из буфера обмена — например, скриншота.
Как организовать список файлов в самописной конфигурации
Если типового механизма нет, список файлов реализуют двумя путями. Первый — табличная часть объекта с реквизитами «ИмяФайла», «ПутьКФайлу» или «Данные» типа «Хранилище значения». Это простое решение для небольшого числа небольших файлов, но оно раздувает запись объекта и неудобно при большом количестве вложений.
Второй путь — отдельный справочник с реквизитом «Владелец», по аналогии с БСП. Для каждого файла создаётся элемент справочника, двоичные данные помещаются в реквизит типа «Хранилище значения», а список выводится на форму владельца динамическим списком с отбором.
Процедура ДобавитьФайл(Владелец, ПутьКФайлу)
ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу);
НовыйФайл = Справочники.ПрисоединенныеФайлы.СоздатьЭлемент();
НовыйФайл.Владелец = Владелец;
ФайлНаДиске = Новый Файл(ПутьКФайлу);
НовыйФайл.Наименование = ФайлНаДиске.Имя;
НовыйФайл.Данные = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
НовыйФайл.Записать();
КонецПроцедурыДля вывода списка на форму добавьте динамический список с произвольным запросом и отбором по владельцу, либо обновляйте таблицу значений при открытии формы. Команды «Добавить», «Открыть», «Сохранить на диск» реализуются через методы НачатьПомещениеФайла и НачатьПолучениеФайлов.
Выбор способа хранения: база или тома на диске
Хранение файлов в базе проще администрируется: резервная копия базы автоматически включает все вложения, не нужно настраивать права на сетевые папки. Минус — рост размера базы, увеличение времени выгрузки и обновления.
Тома на диске подходят для больших объёмов: сканов, фото, видео. База остаётся компактной, но появляются дополнительные задачи — резервное копирование томов, контроль прав доступа, мониторинг свободного места.
| Критерий | Хранение в базе | Хранение в томах |
|---|---|---|
| Размер и число файлов | Небольшие объёмы | Большие архивы сканов и фото |
| Резервное копирование | Вместе с базой | Отдельная копия томов |
| Скорость работы базы | Падает при росте объёма | Стабильнее |
| Настройка | Не требуется | Нужны тома и права доступа |
Как выбрать способ хранения
Массовая загрузка списка файлов
Когда нужно добавить список из десятков или сотен файлов сразу к разным объектам, ручное добавление неэффективно. Варианты автоматизации: внешняя обработка, которая обходит папку и прикрепляет файлы по правилу соответствия (например, по номеру документа в имени файла), либо загрузка через COM/веб-сервисы из внешней системы.
Простейшая логика обработки: обход каталога, поиск владельца по части имени файла, создание элемента справочника присоединённых файлов. Если владелец не найден — файл записывается в протокол ошибок, а не игнорируется молча.
При массовой загрузке задавайте файлам понятные имена до загрузки: после прикрепления переименование сотен элементов вручную займёт много времени. Удобный формат — «НомерДокумента_ТипФайла», тогда и сопоставление, и последующий поиск упрощаются.
Проверка результата и типичные ошибки
После добавления откройте список присоединённых файлов объекта и убедитесь, что каждый файл открывается двойным щелчком, имеет корректное имя и ненулевой размер. Файл нулевого размера — признак прерванной загрузки или проблем с правами доступа к исходному каталогу.
Как проверить результат
Файл открывается в связанной программе без ошибок
Ошибка открытия или пустое содержимое
Размер соответствует исходному файлу на диске
Нулевой или явно заниженный размер
Файл виден только у нужного документа
Файл отображается у чужих объектов или не отображается нигде
Отдельная проблема — конфликт имён при повторной загрузке. По умолчанию механизм создаст дубликаты. Если нужна замена, проверяйте существование элемента с таким именем у владельца и обновляйте его, а не создавайте новый.
Ограничения и границы самостоятельной работы
Пользовательские операции — добавление, открытие, переименование файлов — безопасны и не требуют особых навыков. Настройка томов, изменение типа хранения и доработка конфигурации относятся к задачам администратора или разработчика: ошибки здесь влияют на всю базу и всех пользователей.
Если конфигурация находится на поддержке, доработка форм и добавление собственных механизмов файлов может усложнить обновление. Предпочтительнее использовать расширения конфигурации — они не снимают решение с поддержки.
Что важно запомнить
Список файлов в типовой 1С добавляется через «Присоединённые файлы» с множественным выбором. Хранение в базе подходит для малых объёмов, тома на диске — для больших архивов. Массовую загрузку выполняйте обработкой и только после резервной копии, результат проверяйте открытием файлов и контролем размера.
Частые вопросы
Можно ли добавить несколько файлов одним действием?
Да. В диалоге выбора файлов выделите нужные файлы с зажатой клавишей Ctrl или Shift — для каждого будет создан отдельный присоединённый файл. Во многих конфигурациях работает и перетаскивание файлов мышью из проводника прямо в форму списка.
Почему кнопки «Присоединённые файлы» нет в форме документа?
Либо для этого вида объектов механизм присоединённых файлов не включён в конфигурации, либо у пользователя недостаточно прав. Проверьте права на добавление присоединённых файлов у администратора; если механизм не внедрён, потребуется доработка конфигурации или расширение.
Что лучше: хранить файлы в базе или на диске?
Для небольшого количества документов проще хранение в базе — вложения попадают в резервную копию автоматически. Для больших архивов сканов и фото предпочтительны тома на диске: база остаётся компактной, но потребуется отдельное копирование томов и настройка прав доступа.
Как избежать дублей при повторной загрузке одних и тех же файлов?
Перед созданием элемента проверяйте, существует ли у владельца присоединённый файл с таким же именем. Если существует — обновляйте его данные, а не создавайте новый элемент. В типовых конфигурациях при ручном добавлении дубликаты создаются без предупреждения, поэтому контроль нужно закладывать в обработку загрузки.
Файл добавился, но не открывается — в чём причина?
Чаще всего загрузка была прервана, и в базе оказались неполные данные, либо файл хранится в томе, к которому у пользователя нет доступа. Проверьте размер файла в списке: нулевой размер указывает на неудачную загрузку — удалите элемент и добавьте файл заново.
Можно ли выгрузить весь список файлов документа обратно на диск?
Да. В форме списка присоединённых файлов выделите нужные элементы и используйте команду сохранения («Сохранить как» или аналогичную). Для регулярной пакетной выгрузки по многим объектам потребуется отдельная обработка, которая обходит справочник присоединённых файлов и сохраняет данные в указанный каталог.