Временные файлы в 1С
В языке программирования 1С реализован механизм создания временных файлов. Порядок создания и хранения временных файлов обеспечивает система 1С Предприятие. При создании временного файла, для него нужно сгенерировать уникальное имя. Временные файлы удаляются при запуске платформы. Кроме того механизм удаления может быть реализован средствами встроенного языка. Если создается большое количество временных файлов, то рекомендуется самостоятельно отслеживать их удаление. Иначе это может привести к тому, что будет занят большой объем дискового пространства. Если создавать файлы в клиент серверном варианте на сервере, то на сервере при редком перезапуске, может скопиться большое количество временных файлов.
Создание временного файла
Для генерации уникального имени временного файла используется функция ПолучитьИмяВременногоФайла(<Расширение>). Данный метод на вход принимает параметр "Расширение" типа строка. В нем можно задать с каким расширением нужно создать файл. Формат расширения ".txt" или "txt". Если данный параметр не задан, то по умолчанию используется расширение ".tmp". Сам файл при вызове метода ПолучитьИмяВременногоФайла(<Расширение>) не создается.
Удаление временного файла
Как было сказано выше, временные файлы удаляются системой 1С при перезапуске программы. Если требуется самостоятельно удалять временные файлы, то это можно сделать средствами языка программирования.
Комментарии (0)
Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться
Создание произвольного временного файла
ПолучитьИмяВременногоФайла (GetTempFileName)
Синтаксис:
Тип: Строка. Указывает желаемое расширение имени временного файла. Если параметр не задан, то создается временный файл с расширением по умолчанию (.tmp). Желаемое расширение задается строкой, которая и будет использована в качестве расширения. Указание точки в начале расширения не обязательно. Например, при указании «.xml» или «xml» результат будет одинаковый.
Возвращаемое значение:
Создание и использование временных файлов в 1С:Предприятие 8
Расскажу случай из своей практики. Однажды мне пришлось наладить выгрузку данных в 1С:Бухгалтерия из не тиражируемой конфигурации. Выгрузка была в виде отдельной обработки, работающей по правилам обмена. Сами правила были прикреплены в виде макета двоичных данных. Алгоритм работы типичный – правила выгружаются во временный файл, а затем подтягиваются обработкой « Универсальный обмен данными в формате XML».
Разработчик правил и обработки переноса бил себя в грудь и клялся, что у него все работает отлично. На практике же, во время выгрузки данных постоянно возникала ошибка. Текст сообщение об ошибке в открытую заявлял, что проблема кроется в правилах обмена. «Нет больше такого свойства у документа, выгружать отказываюсь» — гласил текст сообщения. Ковыряться в правилах обмена мне не хотелось, т.к. работа это не моя. Вместо этого я открыл код обработки и решил посмотреть, как организован процесс выгрузки правил обмена во временный файл.
Оказалось, что проблема была именно в этом. Дело в том, что программист не удосужился сделать уникальное имя файла для правил обмена (во временной директории), да еще и вставил проверку: «Если файл существует, то выгрузка не требуется». Само собой, все работало пока обработка, а точнее макет с правилами не обновился. В итоге, пользователи постоянно пытались осуществлять выгрузку с помощью морально устаревших правил обмена. «Временный файл» в директории «temp» стал постоянным и пока его не удалишь вручную, для выгрузки всегда будет использоваться всегда он.
Создавать временные файлы нужно правильно
Чтобы не возникло таких курьезных ситуаций, нужно не пытаться изобретать велосипеды и костыли в виде «хитрых» функций, использующих COM-объекты. Достаточно воспользоваться встроенной в платформу функцией – ПолучитьИмяВременногоФайла(), которая автоматом решает многие проблемы:
— Гарантирует, что имя файла будет действительно уникально;
— Если разработчик забудет удалить файл самостоятельно, то он обязательно удалится при следующем запуске платформы.
Автоматическое удаление временных файлов во время перезапуска платформа – весьма интересная фича, теоретически позволяющая разработчику забить на необходимость удалять файлы самостоятельно. Правда злоупотреблять ей все же не стоит. Если код выполняется на сервере, то нужно понимать, что сервер может долго не перезапускаться, а значит, папка temp будет забиваться ненужными файлами. В связи с этим, не стоит полностью доверять «грязную» работу платформе. Лучше использовать эту возможность как запасной вариант, а в свой код добавлять одну лишнюю строчку кода для принудительного удаления временного файла.
Как создать временный файл 1с
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
- Как записать произвольное значение в файл
- Как восстановить произвольное значение из файла
- Как записать текстовый файл
- Как прочитать текстовый файл
- Как проверить существование файла
- Как скопировать файл
- Как переместить файл
- Как найти файлы в каталоге
- Как удалить файл
- Как удалить файлы в каталоге по маске
- Как получить имя временного файла
- Как прочитать атрибуты файла
- Как установить атрибуты файла
- Как узнать размер файла
- Как вытащить расширение файла из его пути
- Как вытащить имя файла без расширения
- Как создать каталог
- Как проверить существование каталога
- Как удалить каталог вместе с содержимым
- Как получить каталог временных файлов
- Как сохранить произвольное значение во временное хранилище
- Как прочитать произвольное значение из временного хранилища
- Как перезаписать уже сохраненное значение во временном хранилище
- Сколько времени хранится значение, сохраненное во временном хранилище
- Как сохранить значение во временное хранилище на всё время жизни формы
- Как сохранить значение во временное хранилище на всё время сеанса пользователя
- Как удалить значение из временного хранилища
- Как узнать является ли строка адресом во временном хранилище
- Как передать файл с клиента на сервер
- Как прочитать файл на сервере из временного хранилища
- Как передать файл с сервера на клиент
- Скачать и выполнить эти примеры на компьютере
Работа с файловой системой в языке 1С 8.3, 8.2 (в примерах)
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.