Вложение нескольких файлов к объекту 1С: от скрепки до массовой загрузки
Содержание
Несколько файлов к одному объекту в 1С цепляют через механизм присоединённых файлов: в форме документа или справочника жмёте команду-скрепку Присоединённые файлы, в открывшемся списке — Добавить и в диалоге выбираете сразу пачку файлов (удерживая Ctrl или Shift). Это работает в типовых конфигурациях на библиотеке стандартных подсистем — Бухгалтерии 3.0, ЗУП 3.1, УТ 11, ERP — без всякой доработки.
Способов добавить вложения несколько: вручную через форму, перетаскиванием мышью, массовой загрузкой каталога обработкой и программно из кода. Для пары файлов хватает скрепки, для сотен — обработки или кода. Ниже — когда какой выбрать, куда 1С кладёт сами файлы, как их хранить, чтобы база не распухала, и что делать, если прикрепить не удаётся.
Где в 1С можно вкладывать файлы без доработок
Присоединять файлы умеют не все объекты, а только те, для которых в конфигурации включена подсистема вложений. На практике скрепка есть у большинства документов и у многих справочников:
- 📄 документы — поступления, реализации, счета, платёжки, акты;
- 📁 справочники — контрагенты, номенклатура, сотрудники, договоры;
- 📝 бизнес-процессы и задачи — к поручению можно приложить скан.
Если у конкретного объекта команды Присоединённые файлы нет, значит для него вложения в типовой конфигурации не предусмотрены. Добавить их можно только доработкой — через расширение конфигурации
, не меняя типовую.
Команда вложений выглядит как скрепка в командной панели формы либо как пункт на панели навигации (слева или сверху, в зависимости от настройки интерфейса «Такси»). Если не видите — проверьте, что форма открыта в режиме редактирования, а не только для просмотра.
Для работы с файлами в веб-клиенте браузеру нужно расширение 1С:Предприятие. Работа с файлами — система сама предложит его установить при первом добавлении. В тонком клиенте всё работает без дополнений.
Доступ к вложениям наследует права на сам объект: кто видит документ, тот видит и его файлы, а добавлять и удалять вложения может тот, у кого есть право на изменение этого документа. Отдельно раздавать права на файлы не нужно.
Как добавить сразу несколько вложений к документу
Порядок действий одинаков для документа и справочника:
- Откройте нужный документ или элемент справочника.
- Нажмите команду
Присоединённые файлы(скрепка). - В списке вложений нажмите
Добавить→Файл с диска. - В диалоге выбора выделите несколько файлов: мышью с зажатым
Ctrl— вразнобой, сShift— диапазоном подряд. - Нажмите
Открыть— все выбранные файлы загрузятся за один раз.
Второй способ быстрее, когда файлы уже открыты в проводнике Windows: выделите их и перетащите мышью прямо в список присоединённых файлов 1С. Drag-and-drop загружает всю пачку целиком.
Третий вариант — сканер. Если к объекту нужно приложить многостраничный документ, в списке вложений есть команда добавления со сканера. Несколько страниц складывают в один файл PDF или в многостраничный TIFF — это удобнее, чем десяток отдельных картинок на один акт.
Каждому файлу 1С присваивает наименование по имени исходного файла, фиксирует расширение, размер, автора и дату. Наименование потом можно отредактировать, не трогая сам файл.
Размер одного файла ограничен настройкой. По умолчанию это обычно 50 МБ. Если грузите сканы или архивы крупнее, лимит сначала поднимают в настройках (см. ниже), иначе система отклонит файл с сообщением о превышении размера.
Куда 1С кладёт файлы — в базу или в тома на диске
Здесь кроется главный нюанс, который всплывает, когда вложений становится много.
В файловой базе все присоединённые файлы хранятся внутри самой базы — в файле 1Cv8.1CD. Пара десятков сканов роли не сыграет, но при массовой загрузке база быстро распухает: типична ситуация, когда рабочих данных на сотню мегабайт, а база весит гигабайты именно из-за вложений.
В клиент-серверной базе есть выбор: хранить файлы в самой базе (в таблицах СУБД) либо вынести их в тома хранения на диске. Тома — это обычные каталоги файловой системы, куда платформа складывает вложения, а в базе остаётся только ссылка.
| Где хранить | Когда выбирают | Минусы |
|---|---|---|
| В базе (файловая) | Мало файлов, одна рабочая станция | База растёт, резервная копия тяжелеет |
| В базе (СУБД) | Клиент-сервер, важна целостность бэкапа | Нагрузка на СУБД, дорогое хранилище |
| В томах на диске | Много файлов, сканы, архивы | Тома надо отдельно бэкапить |
Тома настраивают в разделе Администрирование, в группе настроек работы с файлами: включают хранение файлов в томах и добавляют том — каталог на диске сервера с указанием максимального объёма. Там же задают предельный размер одного файла.
Каталог тома должен быть доступен серверу 1С на запись — права даёт учётная запись, под которой работает служба 1C:Enterprise Server. И его обязательно включают в регламент резервного копирования: тома живут отдельно от базы, при бэкапе только базы вложения потеряются.
Массовая загрузка пачки файлов обработкой
Когда файлов сотни и каждый надо привязать к своему документу или контрагенту, вручную это не делают. Задачу закрывают обработкой групповой загрузки.
Варианты, в порядке предпочтения:
- 🔹 Типовая обработка из состава конфигурации. В ряде конфигураций есть встроенная «Загрузка файлов» или аналог в разделе работы с файлами — проверьте сервис дополнительных обработок.
- 🔹 Готовая обработка с диска ИТС или от вендора. Берёт каталог, читает имена файлов и привязывает их к объектам по совпадению кода, наименования или ИНН.
- 🔹 Своя внешняя обработка под конкретную схему именования — если готовая не подходит под ваш формат имён.
Принцип у всех один: обработка обходит каталог, по части имени файла (коду, номеру, ИНН) находит объект-владельца и создаёт вложение программно. Чтобы это сработало без ручной сверки, имена файлов заранее приводят к единому шаблону, например ИНН_датаакта.pdf.
Типовой порядок работы с такой обработкой:
- Сложите все файлы в один каталог и переименуйте по шаблону, где часть имени однозначно указывает на владельца.
- Запустите обработку и укажите этот каталог.
- Выберите, по какому полю искать владельца — коду, наименованию, ИНН или номеру документа.
- Прогоните предварительный разбор: обработка покажет, для каких файлов владелец найден, а для каких нет.
- Нераспознанные файлы отложите и обработайте вручную, остальные загрузите пачкой.
Шаг с предварительным разбором не пропускайте: он дешевле, чем потом искать, к какому контрагенту прицепился чужой скан.
Внешнюю обработку запускают через Файл → Открыть либо подключают в сервис дополнительных отчётов и обработок (Администрирование → Печатные формы, отчёты и обработки). Второй способ удобнее: обработка остаётся в базе и доступна всем пользователям с правами.
Программное добавление вложений из кода
Разработчикам массовую привязку удобнее делать кодом. Присоединённые файлы в библиотеке стандартных подсистем хранятся в отдельных справочниках-вложениях — по одному на каждый объект-владелец. Имя такого справочника строится из имени объекта, например ДокументПоступленияПрисоединённыеФайлы, а ссылка на владельца лежит в реквизите ВладелецФайла.
Прочитать список вложений объекта можно обычным запросом:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Ссылка, Наименование, Расширение, Размер
|ИЗ
| Справочник.ДокументПоступленияПрисоединённыеФайлы
|ГДЕ
| ВладелецФайла = &Владелец";
Запрос.УстановитьПараметр("Владелец", ДокументСсылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Наименование + "." + Выборка.Расширение);
КонецЦикла;
Для добавления файла руками справочник не создают — двоичные данные надо корректно разместить (в базе или в томе), а это берёт на себя сервер библиотеки стандартных подсистем. Поэтому новый файл создают штатной серверной процедурой подсистемы «Работа с файлами», передавая ей ссылку на владельца, имя, расширение и само двоичное содержимое (ДвоичныеДанные).
Точное имя процедуры и набор параметров зависят от версии библиотеки в вашей конфигурации — сверьтесь с её встроенной документацией или синтакс-помощником по подсистеме работы с файлами. Собственноручно писать запись в справочник вложений и раскладку файла по томам не нужно и опасно: легко получить «висящие» файлы без ссылок в базе.
Двоичные данные для вложения получают, прочитав файл с диска (Новый ДвоичныеДанные(ПутьКФайлу)), а затем передают серверной процедуре вместе с именем и расширением. Код выполняют на сервере в транзакции по списку объектов — так пачка привязывается за один проход, без ручного открытия каждой карточки.
Автоматическое прикрепление файлов по правилам
Если вложения приходят регулярно (сканы из почты, выгрузки от контрагентов), прикрепление автоматизируют, чтобы не делать это руками каждый день.
Рабочие схемы:
- 📥 Регламентное задание. Процедура по расписанию обходит заданный каталог (общую папку, сетевой диск), по шаблону имени находит владельца и создаёт вложения. Удобно для потока однотипных документов.
- 📨 Разбор почты. Встроенная работа с почтой в типовых конфигурациях позволяет сохранять вложения из писем; дальше их привязывают тем же регламентным заданием.
- 🔗 Интеграция через обмен. Если файлы приходят вместе с документами из другой системы, их принимают в правилах обмена и создают вложения на стороне приёма.
Автоматический разбор включайте, только когда схема именования файлов стабильна. Если имена произвольные, задание не поймёт, к какому объекту что привязать, и либо пропустит файл, либо прицепит не туда. Для таких случаев оставляют ручную проверку необработанной папки.
Ограничения и частые проблемы с вложениями
Прежде чем грузить большой объём, держите в голове ограничения механизма:
- файл крупнее лимита система не примет — лимит поднимают в настройках;
- в веб-клиенте без расширения работы с файлами добавление недоступно;
- вложения не версионируются сами по себе — заменить файл можно, но история правок хранится, только если в конфигурации включено хранение версий;
- скорость массовой загрузки в файловую базу ниже, чем в клиент-серверную;
- одновременно редактировать один файл двоим не дадут — на время правки система ставит на вложение занятость, и у остальных оно открывается только для просмотра.
Хранение версий включают там же, в настройках работы с файлами. После этого каждая замена файла сохраняется отдельной версией, к которой можно вернуться. Для сканов и готовых актов это обычно не нужно, а вот для шаблонов договоров и регламентов, которые правят, версии экономят от потери предыдущей редакции.
Частые вопросы
Сколько файлов можно прикрепить к одному объекту?
Можно ли прикрепить папку целиком?
.zip и приложить одним файлом.Куда физически попадают файлы при добавлении?
Почему база так выросла после загрузки сканов?
Как удалить сразу несколько вложений?
Ctrl и пометьте на удаление. Физически из тома файлы уберёт регламентное задание очистки по расписанию.