Работа с файлами в 1С программно: чтение, запись и временное хранилище

Дата: 21.09.2026 10:02:05
Файлы 1С
Обработки
Интеграции
Программирование 1С
Комментарий:
0
Платформа:
8.3
Конфигурация:
Любая
Формы:
Управляемые

Работа с файлами в 1С в управляемом приложении всегда разделяется между клиентом и сервером. Пользователь выбирает файл на своём компьютере на клиенте; обработка, проверка и запись данных обычно выполняются на сервере. Нельзя передавать серверу путь вроде C:\Загрузки\товары.xlsx: этот путь существует только на компьютере пользователя.

Правильная схема загрузки

  1. Пользователь выбирает файл в форме.
  2. Клиент помещает содержимое во временное хранилище.
  3. На сервер передаётся адрес временного хранилища, а не локальный путь.
  4. Сервер получает двоичные данные, читает файл и возвращает результат проверки.
  5. Только после подтверждения пользователя данные записываются в объекты или регистры.

Зачем нужно временное хранилище

Временное хранилище передаёт данные между контекстами 1С без открытия доступа к диску пользователя. Адрес хранилища — короткая служебная строка. По нему сервер получает файл, а клиент показывает пользователю сообщения об ошибках. Это работает в тонком и веб-клиенте, где прямой доступ сервера к локальным папкам невозможен.

&НаСервереБезКонтекста
Функция ПроверитьЗагруженныйФайл(АдресФайла)
    ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(АдресФайла);
    Если ДвоичныеДанныеФайла = Неопределено Тогда
        Возврат Новый Структура("Успех,Текст", Ложь, "Файл не найден во временном хранилище");
    КонецЕсли;

    // Дальше — чтение формата файла и проверка структуры данных.
    Возврат Новый Структура("Успех,Текст", Истина, "Файл принят");
КонецФункции

Текст, Excel и изображения

Для CSV и текстовых файлов сначала договоритесь о кодировке и разделителе. Для Excel проверьте, есть ли в файле обязательные колонки, прежде чем создавать документы. Для изображений и PDF ограничьте размер и список допустимых типов. Внешний файл нельзя считать доверенным: он может быть повреждён, иметь неправильную структуру или содержать миллионы строк.

Проверка перед записью

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

Если КоличествоОшибок > 0 Тогда
    Сообщить("Исправьте ошибки в файле перед загрузкой.");
    Возврат;
КонецЕсли;

// Запись документов или регистра выполняется только после проверки.

Типичные ошибки

  • Передают серверу путь к файлу пользователя. В веб-клиенте и на сервере этот путь недоступен.
  • Сразу записывают строки. Ошибка в одной записи оставляет базу в частично изменённом состоянии.
  • Не ограничивают размер файла. Большой файл может занять память и замедлить сеанс.
  • Не проверяют права. Пользователь получает возможность загрузить данные в чужую организацию или склад.
  • Хранят временный файл постоянно. После обработки нужны правила очистки и хранения вложений.

Когда нужна доработка

Если требуется загрузка прайс-листа, заказов, остатков или вложений из личного кабинета, подготовим обработку с журналом ошибок, сопоставлением колонок и контролем дублей. Опишите формат файла — оценим задачу до начала работ.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

Станьте частью сообщества!
Войдите или зарегистрируйтесь, и вы сможете участвовать в обсуждениях.


1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.