Администрирование · 12 мин
Способ перетаскивания файлов в 1С: как работает drag-and-drop и что делать при ошибках
Как работает перетаскивание файлов в 1С: drag-and-drop в тонком клиенте, прикрепление к документам, настройка в конфигурации, типичные ошибки и их решение.
Перетаскивание файлов (drag-and-drop) в 1С — это способ добавить файл в базу, просто перетянув его мышью из проводника Windows в окно программы. Механизм поддерживается платформой 1С:Предприятие в тонком и толстом клиенте и активно используется в типовых конфигурациях: к документу можно прикрепить скан, к элементу справочника — изображение, а в список файлов — сразу несколько документов.
При этом поведение drag-and-drop зависит от трёх факторов: режима работы клиента (тонкий, толстый, веб-клиент), настроек конкретной конфигурации и того, как разработчик описал обработчики перетаскивания в формах. Поэтому в одной базе файл «прилипает» к карточке контрагента, а в другой перетаскивание молча игнорируется — и это не сбой, а ограничение встроенного механизма.
Ниже разобрано, как именно работает перетаскивание файлов в 1С, где его искать в типовых конфигурациях, что проверить, если файл не добавляется, и как реализовать собственный обработчик, если вы дорабатываете конфигурацию самостоятельно.
Как устроено перетаскивание файлов в платформе 1С
На уровне платформы drag-and-drop реализован через стандартные события управляемой формы: «Перетаскивание» и «ПроверкаПеретаскивания». Когда пользователь тянет файл поверх окна 1С, платформа определяет, есть ли под курсором элемент формы, которому разрешено принимать файлы. Если обработчик предусмотрен, содержимое файла передаётся в программу, дальше конфигурация решает, что с ним делать — сохранить в информационную базу, во временное хранилище или открыть для просмотра.
Важно понимать: платформа предоставляет только транспорт. Логика «куда положить файл и как его назвать» всегда находится на стороне конфигурации. В типовых решениях (Бухгалтерия предприятия, Управление торговлей, Зарплата и управление персоналом) эта логика уже встроена в механизм присоединённых файлов. В самописных конфигурациях перетаскивание может отсутствовать полностью, пока разработчик его не добавит.
Ещё одно ограничение: перетаскивание работает только извне внутрь — из проводника Windows или рабочего стола в окно 1С. Вытащить файл из базы на рабочий стол перетаскиванием в обратную сторону в большинстве конфигураций нельзя: для этого используют команду «Сохранить как» из карточки присоединённого файла.
Где drag-and-drop работает в типовых конфигурациях
В конфигурациях на базе БСП перетаскивание файлов поддерживается в формах объектов, у которых есть присоединённые файлы. Типичный сценарий: открыть карточку контрагента или документ «Поступление товаров», перетащить на форму PDF со счётом или скан накладной — файл сразу появится в списке присоединённых (обычно это отдельная панель или команда «Присоединённые файлы» в меню «Ещё»).
Также перетаскивание часто работает в специализированных списках: «Файлы» в разделе документов, форма подбора изображений в карточке номенклатуры, обработки загрузки данных. Если перетащить сразу несколько файлов, типовые механизмы обычно добавляют их все, создавая отдельный присоединённый файл для каждого.
В веб-клиенте поведение отличается: браузер сам обрабатывает перетаскивание, и поддержка drag-and-drop зависит от браузера и версии платформы. В ряде случаев вместо перетаскивания доступна только кнопка «Добавить» с выбором файла через диалог. Если перетаскивание критично для рабочих мест, ориентируйтесь на тонкий клиент.
Пошагово: как прикрепить файл перетаскиванием
Базовый сценарий одинаков для большинства типовых конфигураций. Он не требует настройки, если механизм присоединённых файлов в базе включён и у пользователя есть права на добавление.
- 1Откройте в 1С форму объекта: документ, карточку контрагента или номенклатуры — тот объект, к которому нужен файл.
- 2Расположите рядом окно проводника Windows с нужным файлом.
- 3Зажмите файл левой кнопкой мыши и перетащите его на форму объекта в 1С (на свободную область формы или панель присоединённых файлов).
- 4Отпустите кнопку мыши и дождитесь появления файла в списке присоединённых.
- 5Откройте файл двойным щелчком и убедитесь, что он сохранился корректно и открывается.
Если файл большой (десятки мегабайт), добавление может занять заметное время, особенно при клиент-серверной работе или медленном канале. Не закрывайте форму, пока файл не появился в списке — прерванная передача не создаёт присоединённый файл, и операцию придётся повторять.
Обратите внимание на то, где хранятся файлы. В настройках информационной базы присоединённые файлы могут храниться в самой базе или в томах на диске. От этого зависит рост размера базы и порядок резервного копирования: файлы в томах не попадают в выгрузку .dt стандартным образом, их нужно архивировать отдельно.
Почему перетаскивание не работает: диагностика
Самая частая жалоба — «перетаскиваю файл, а ничего не происходит». Причин несколько, и проверять их стоит в порядке от простого к сложному: клиент, права, конфигурация, окружение.
Сначала убедитесь, что работаете в тонком или толстом клиенте, а не в браузере. Затем проверьте права: у пользователя должно быть право на добавление присоединённых файлов к данному типу объектов. В типовых конфигурациях это регулируется профилями групп доступа. Если файл добавляется через кнопку «Присоединить», но не перетаскиванием — права в порядке, проблема в самом механизме drag-and-drop на форме.
Проверить, тонкий ли это клиент, и есть ли drag-and-drop на данной форме в принципе
Проверить профиль доступа пользователя и настройки хранения файлов
Сравнить права и версию платформы с рабочим местом, где всё работает
Использовать тонкий клиент для загрузки файлов
Отдельный случай — запуск 1С с повышенными привилегиями. Если клиент 1С запущен «от имени администратора», а проводник — с обычными правами, Windows блокирует перетаскивание между окнами с разным уровнем прав. Решение: запускать 1С без повышения привилегий.
Реализация перетаскивания в своей конфигурации
Если вы разрабатываете или дорабатываете конфигурацию, перетаскивание добавляется через обработчики формы. Для элемента формы (или формы целиком) включается свойство «Разрешить перетаскивание», затем описываются события «ПроверкаПеретаскивания» и «Перетаскивание». В первом вы проверяете тип перетаскиваемых данных и разрешаете операцию, во втором — обрабатываете файл.
Перетаскиваемый файл приходит как объект типа «Файл» в параметрах события. Типовой подход — передать двоичные данные во временное хранилище на клиенте, затем вызвать серверную процедуру, которая создаст присоединённый файл через механизм БСП (например, «ПрисоединенныеФайлы.ДобавитьФайл»), если библиотека используется, либо запишет данные в собственный регистр или справочник хранения.
&НаКлиенте
Процедура СписокФайловПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
СтандартнаяОбработка = Ложь;
Для Каждого Файл Из ПараметрыПеретаскивания.Значение Цикл
НачатьПомещениеФайла(Новый ОписаниеОповещения("ПослеПомещенияФайла", ЭтотОбъект), , Файл.ПолноеИмя, Ложь, УникальныйИдентификатор);
КонецЦикла;
КонецПроцедурыПри самостоятельной доработке учитывайте: помещение файлов выполняется асинхронно, поэтому вся логика строится на оповещениях. Также проверяйте расширение и размер файла до сохранения — иначе пользователи смогут загрузить в базу что угодно, включая исполняемые файлы и архивы огромного размера, что раздует базу и создаст риски безопасности.
Удобно ограничивать приём файлов списком допустимых расширений (pdf, jpg, png, xlsx, docx) и разумным пределом размера. Это защищает базу от случайной загрузки видео или установщиков программ, которые пользователи перетаскивают по ошибке.
Проверка результата и типичные ошибки
После добавления файла перетаскиванием убедитесь, что он действительно сохранился: откройте список присоединённых файлов объекта, запустите файл двойным щелчком и проверьте, что открывается именно то содержимое. Если конфигурация хранит файлы в томах на диске, дополнительно убедитесь, что файл физически появился в каталоге тома.
Как проверить результат
Файл виден сразу после перетаскивания, имя и размер корректны
Файл отсутствует или появился с нулевым размером
Файл открывается в ассоциированной программе без ошибок
Ошибка открытия или пустое содержимое — загрузка прервана
Файл на месте после перезахода в базу
Файл исчез — данные не записаны в базу
Альтернативы перетаскиванию
Если drag-and-drop недоступен (веб-клиент, ограничения формы), файл можно добавить штатными командами. В типовых конфигурациях это кнопка «Присоединить» в панели присоединённых файлов или пункт «Добавить файл» в меню «Ещё» формы объекта. Откроется стандартный диалог выбора файла — результат будет тем же, что и при перетаскивании.
Для массовой загрузки удобнее специализированные обработки: многие конфигурации включают обработку загрузки файлов из папки, а для номенклатуры — загрузку изображений по шаблону имени файла. Это быстрее, чем перетаскивать сотни файлов по одному.
Сравнение вариантов
Быстро для 1–5 файлов в тонком клиенте. Не работает в ряде сценариев веб-клиента и на формах без обработчика.
Работает везде, где есть присоединённые файлы, включая веб-клиент. Требует больше кликов.
Оптимально для десятков и сотен файлов. Требует наличия такой обработки в конфигурации.
Частые вопросы
Почему в веб-клиенте файл не перетаскивается, а в тонком клиенте всё работает?
Веб-клиент обрабатывает перетаскивание через браузер, и поддержка зависит от браузера и версии платформы. В ряде сценариев drag-and-drop в браузере недоступен. Используйте кнопку «Присоединить» или перейдите на тонкий клиент для задач с активной загрузкой файлов.
Можно ли перетащить сразу несколько файлов?
Да, если обработчик формы это поддерживает. В типовых конфигурациях на базе БСП множественное перетаскивание обычно работает: каждый файл становится отдельным присоединённым файлом объекта. Если добавился только один файл — значит, обработчик в данной форме рассчитан на одиночную загрузку.
Куда физически сохраняются перетащенные файлы?
Зависит от настройки информационной базы: либо внутрь самой базы данных, либо в тома на диске (каталоги, указанные администратором). Посмотреть режим хранения можно в настройках присоединённых файлов конфигурации. При хранении в томах включайте эти каталоги в резервное копирование отдельно.
Перетаскивание не работает, хотя раньше работало. Что случилось?
Частые причины: клиент стали запускать от имени администратора (Windows блокирует drag-and-drop между окнами с разными правами), изменились права доступа пользователя, обновили конфигурацию и форма объекта изменилась. Проверьте права и способ запуска ярлыка 1С.
Можно ли перетащить файл из 1С на рабочий стол?
В большинстве конфигураций — нет, обратное перетаскивание не поддерживается. Используйте команду «Сохранить как» в карточке присоединённого файла или контекстное меню списка файлов.
Как ограничить типы файлов, которые пользователи перетаскивают в базу?
Штатно в типовых конфигурациях ограничения задаются настройками присоединённых файлов (допустимые расширения, максимальный размер). В собственной доработке проверяйте расширение и размер в обработчике перетаскивания до помещения файла в хранилище и отклоняйте неподходящие с понятным сообщением пользователю.
Что важно запомнить
Перетаскивание файлов в 1С работает в тонком и толстом клиенте на формах объектов с присоединёнными файлами. Если drag-and-drop не срабатывает, проверяйте клиент, права доступа, запуск от имени администратора и наличие обработчика в форме. Для массовой загрузки и веб-клиента используйте кнопку «Присоединить» или специальные обработки.