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

Администрирование · 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
    Откройте в 1С форму объекта: документ, карточку контрагента или номенклатуры — тот объект, к которому нужен файл.
  2. 2
    Расположите рядом окно проводника Windows с нужным файлом.
  3. 3
    Зажмите файл левой кнопкой мыши и перетащите его на форму объекта в 1С (на свободную область формы или панель присоединённых файлов).
  4. 4
    Отпустите кнопку мыши и дождитесь появления файла в списке присоединённых.
  5. 5
    Откройте файл двойным щелчком и убедитесь, что он сохранился корректно и открывается.

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

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

Почему перетаскивание не работает: диагностика

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

Сначала убедитесь, что работаете в тонком или толстом клиенте, а не в браузере. Затем проверьте права: у пользователя должно быть право на добавление присоединённых файлов к данному типу объектов. В типовых конфигурациях это регулируется профилями групп доступа. Если файл добавляется через кнопку «Присоединить», но не перетаскиванием — права в порядке, проблема в самом механизме drag-and-drop на форме.

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

Проверить, тонкий ли это клиент, и есть ли drag-and-drop на данной форме в принципе

Не добавляется ни кнопкой, ни перетаскиваниемОграничение прав или отключён механизм присоединённых файлов

Проверить профиль доступа пользователя и настройки хранения файлов

Не работает только у одного пользователяЛокальная проблема клиента или прав

Сравнить права и версию платформы с рабочим местом, где всё работает

Не работает в браузере, работает в тонком клиентеОграничение веб-клиента

Использовать тонкий клиент для загрузки файлов

Отдельный случай — запуск 1С с повышенными привилегиями. Если клиент 1С запущен «от имени администратора», а проводник — с обычными правами, Windows блокирует перетаскивание между окнами с разным уровнем прав. Решение: запускать 1С без повышения привилегий.

Реализация перетаскивания в своей конфигурации

Если вы разрабатываете или дорабатываете конфигурацию, перетаскивание добавляется через обработчики формы. Для элемента формы (или формы целиком) включается свойство «Разрешить перетаскивание», затем описываются события «ПроверкаПеретаскивания» и «Перетаскивание». В первом вы проверяете тип перетаскиваемых данных и разрешаете операцию, во втором — обрабатываете файл.

Перетаскиваемый файл приходит как объект типа «Файл» в параметрах события. Типовой подход — передать двоичные данные во временное хранилище на клиенте, затем вызвать серверную процедуру, которая создаст присоединённый файл через механизм БСП (например, «ПрисоединенныеФайлы.ДобавитьФайл»), если библиотека используется, либо запишет данные в собственный регистр или справочник хранения.

bsl
&НаКлиенте
Процедура СписокФайловПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
    СтандартнаяОбработка = Ложь;
    Для Каждого Файл Из ПараметрыПеретаскивания.Значение Цикл
        НачатьПомещениеФайла(Новый ОписаниеОповещения("ПослеПомещенияФайла", ЭтотОбъект), , Файл.ПолноеИмя, Ложь, УникальныйИдентификатор);
    КонецЦикла;
КонецПроцедуры

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

Удобно ограничивать приём файлов списком допустимых расширений (pdf, jpg, png, xlsx, docx) и разумным пределом размера. Это защищает базу от случайной загрузки видео или установщиков программ, которые пользователи перетаскивают по ошибке.
ПЗ
Практическое замечание

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

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

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

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

Файл в списке присоединённых
Норма

Файл виден сразу после перетаскивания, имя и размер корректны

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

Файл отсутствует или появился с нулевым размером

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

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

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

Ошибка открытия или пустое содержимое — загрузка прервана

Повторный вход
Норма

Файл на месте после перезахода в базу

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

Файл исчез — данные не записаны в базу

Типичные ошибки
01
Перетаскивание на форму списка вместо формы объекта — файл игнорируется, потому что у списка нет обработчика приёма.
02
Запуск 1С от имени администратора при обычном проводнике — Windows блокирует drag-and-drop между окнами с разными правами.
03
Перетаскивание ярлыка вместо самого файла — в базу попадает файл .lnk, а не документ.
04
Закрытие формы до завершения загрузки большого файла — файл не сохраняется, операцию приходится повторять.
05
Отсутствие проверки расширений в собственной доработке — пользователи загружают исполняемые файлы и видео, раздувая базу.

Альтернативы перетаскиванию

Если drag-and-drop недоступен (веб-клиент, ограничения формы), файл можно добавить штатными командами. В типовых конфигурациях это кнопка «Присоединить» в панели присоединённых файлов или пункт «Добавить файл» в меню «Ещё» формы объекта. Откроется стандартный диалог выбора файла — результат будет тем же, что и при перетаскивании.

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

Сравнение вариантов

Перетаскивание (drag-and-drop)

Быстро для 1–5 файлов в тонком клиенте. Не работает в ряде сценариев веб-клиента и на формах без обработчика.

Кнопка «Присоединить»

Работает везде, где есть присоединённые файлы, включая веб-клиент. Требует больше кликов.

Обработка массовой загрузки

Оптимально для десятков и сотен файлов. Требует наличия такой обработки в конфигурации.

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

Почему в веб-клиенте файл не перетаскивается, а в тонком клиенте всё работает?

Веб-клиент обрабатывает перетаскивание через браузер, и поддержка зависит от браузера и версии платформы. В ряде сценариев drag-and-drop в браузере недоступен. Используйте кнопку «Присоединить» или перейдите на тонкий клиент для задач с активной загрузкой файлов.

Можно ли перетащить сразу несколько файлов?

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

Куда физически сохраняются перетащенные файлы?

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

Перетаскивание не работает, хотя раньше работало. Что случилось?

Частые причины: клиент стали запускать от имени администратора (Windows блокирует drag-and-drop между окнами с разными правами), изменились права доступа пользователя, обновили конфигурацию и форма объекта изменилась. Проверьте права и способ запуска ярлыка 1С.

Можно ли перетащить файл из 1С на рабочий стол?

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

Как ограничить типы файлов, которые пользователи перетаскивают в базу?

Штатно в типовых конфигурациях ограничения задаются настройками присоединённых файлов (допустимые расширения, максимальный размер). В собственной доработке проверяйте расширение и размер в обработчике перетаскивания до помещения файла в хранилище и отклоняйте неподходящие с понятным сообщением пользователю.

Итог

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

Перетаскивание файлов в 1С работает в тонком и толстом клиенте на формах объектов с присоединёнными файлами. Если drag-and-drop не срабатывает, проверяйте клиент, права доступа, запуск от имени администратора и наличие обработчика в форме. Для массовой загрузки и веб-клиента используйте кнопку «Присоединить» или специальные обработки.