Двоичные данные в 1С используют для содержимого файлов, изображений, PDF и других бинарных форматов. Это не путь к файлу и не текст: объект содержит сами байты. В управляемом приложении двоичные данные обычно передают между клиентом и сервером через временное хранилище.
Не храните большой файл в обычной строке и не передавайте в серверную процедуру путь с компьютера пользователя. Серверу доступен свой диск, а веб-клиент вообще не предоставляет приложению прямой доступ к локальным папкам.
Временное хранилище отдаёт серверу адрес, по которому он получает данные. Адрес можно передать в процедуру формы, но он не является постоянной ссылкой для хранения вложения. Для долгого хранения используйте штатную подсистему файлов или специально спроектированный реквизит.
&НаСервереБезКонтекста
Функция ПроверитьФайл(АдресВременногоХранилища)
Данные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
Если Данные = Неопределено Тогда
Возврат Новый Структура("Успех,Текст", Ложь, "Файл недоступен");
КонецЕсли;
Возврат Новый Структура("Успех,Текст", Истина, "Файл получен");
КонецФункции
| Объект | Для чего |
|---|---|
| ДвоичныеДанные | Содержимое конкретного файла или бинарного потока |
| Временное хранилище | Передача данных между контекстами сеанса |
| ХранилищеЗначения | Сохранение сериализованного значения в данных 1С |
Выбор зависит от задачи. Для загрузки файла сначала используйте временное хранилище, а для долговременного прикрепления — штатный механизм файлов конфигурации или контролируемое хранилище.
Перед обработкой проверьте размер и формат. Не доверяйте расширению файла: файл с именем .xlsx может оказаться другим содержимым. Ограничьте доступ по организациям и ролям, не записывайте бинарные данные в журнал регистрации и очищайте временные данные после выполнения операции.
Если нужна загрузка вложений, передача файлов в личный кабинет или интеграция с ЭДО, лучше заранее определить формат, размер и права доступа. Опишите задачу — предложим безопасную обработку.
Станьте частью сообщества!
Войдите или зарегистрируйтесь, и вы сможете участвовать в обсуждениях.