Полностью заданный трёхбайтный опыт показывает отдельный порог памяти и размер буфера без пользовательского имени файла.
Где и как запускать
Полный модуль собственной управляемой формы, локальный клиент Windows.
Подготовка
Собственная учебная база 8.5.1.1343, тонкий или толстый клиент Windows с разрешённой локальной файловой системой. Создайте внешнюю обработку с управляемой формой, командой Выполнить и кнопкой; вставьте весь модуль одного урока.
Это клиентский модуль, не серверный и не веб-клиентский: используются локальные файлы и операции потока, доступные этому окружению. Не отключайте профиль безопасности рабочей базы ради урока.
Именованные уроки получают новое временное имя, резервируют его через СоздатьНовый и только после этого показывают методы, способные перезаписать собственный файл. Ни один путь не вводится пользователем.
Автоматический временный поток создаётся менеджером без заданного имени. Не обещаем физический файл, его расположение или отсутствие файла на диске по одному свойству потока.
Не закрывайте форму в середине асинхронной цепочки. После нормального завершения проверяйте сообщения очистки; при аварийном завершении клиента платформа может оставить временный файл до штатной уборки.
&НаКлиенте
Процедура Выполнить(Команда)
Поток = Неопределено;
ОшибкаОперации = "";
Попытка
Поток = ФайловыеПотоки.СоздатьВременныйФайл(2, 8192);
Сообщить(ТипЗнч(Поток) = Тип("ФайловыйПоток"));
Сообщить(Поток.ДоступноЧтение И Поток.ДоступнаЗапись);
Буфер = ПолучитьБуферДвоичныхДанныхИзСтроки("ABC", КодировкаТекста.UTF8, Ложь);
Поток.Записать(Буфер, 0, 3);
Сообщить(Поток.Размер() = 3);
Поток.Перейти(0, ПозицияВПотоке.Начало);
Чтение = Новый БуферДвоичныхДанных(3);
Сообщить(Поток.Прочитать(Чтение, 0, 3) = 3);
Сообщить(Чтение.Получить(0) = 65 И Чтение.Получить(1) = 66 И Чтение.Получить(2) = 67);
Исключение
ОшибкаОперации = ОписаниеОшибки();
КонецПопытки;
ОшибкаЗакрытия = ЗакрытьПотокУрока(Поток);
Если Не ПустаяСтрока(ОшибкаОперации) Или Не ПустаяСтрока(ОшибкаЗакрытия) Тогда
ВызватьИсключение ОшибкаОперации + " " + ОшибкаЗакрытия;
КонецЕсли;
Сообщить("Собственный временный поток закрыт");
КонецПроцедуры
&НаКлиенте
Функция ЗакрытьПотокУрока(Поток)
Если Поток = Неопределено Тогда
Возврат "";
КонецЕсли;
Попытка
Поток.Закрыть();
Возврат "";
Исключение
Возврат "Не удалось закрыть собственный поток: " + ОписаниеОшибки();
КонецПопытки;
КонецФункцииРазбор по шагам
Создаём поток с лимитом памяти 2 байта и буфером 8192 байта. Лимит и размер буфера — разные параметры, не мегабайты.
Менеджер самостоятельно обслуживает переход на диск при превышении лимита. Записываем три байта ABC, то есть больше выбранного порога.
Имя физического файла и тип внутреннего хранилища не угадываем. Проверяем только документированный ФайловыйПоток и доступные чтение/запись.
Возвращаем позицию к началу перед чтением; иначе после записи поток находится на конце и чтение вернёт ноль.
Закрываем полученный поток при успехе и при исключении; ошибка закрытия не скрывается. Физическое удаление временного файла этим выводом не проверяется.
СоздатьВременныйФайл сразу возвращает поток. Он не возвращает путь к обычному чужому файлу.
Как проверить результат
Пять сравнений ожидаются Истина: фактический тип, обе возможности, размер 3, прочитано 3, байты 65/66/67.
После успешного закрытия показано сообщение о закрытом потоке. Оно не утверждает проверенное физическое удаление файла с диска.
Ожидаемый результат
Создан, заполнен, прочитан и закрыт собственный временный поток с маленьким порогом памяти.
На что обратить внимание
Лимит памяти 2 здесь выбран только для трёхбайтного опыта; в реальной задаче его определяют по ожидаемым размерам и нагрузке.
Размер буфера не ограничивает итоговый размер данных.
Не выводить имя потока как доказательство нахождения данных только в памяти.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.