#0
by Гипервизор
Помогите разобраться вот с такими взаимоисключающими параграфами (тут я вынужден выборочно процитировать СП): Параметры: <Расширение> Если параметр не задан, то СОЗДАЕТСЯ временный файл с расширением по умолчанию. Описание: При выполнении метода файл НЕ СОЗДАЕТСЯ. Удаление временных файлов НЕ ОБЯЗАТЕЛЬНО. Если этот файл, по каким либо причинам, НЕ БЫЛ УДАЛЕН, программа УДАЛИТ его при следующем запуске. Примечание: РЕКОМЕНДУЕТСЯ УДАЛЯТЬ временный файл самостоятельно после его использования. Уместен ли тут мем с Джеки Чаном?
#2
by User_Agronom
Если параметр не задан, то СОЗДАЕТСЯ временный файл с расширением по умолчанию Имя временного файла.
#3
by H A D G E H O G s
Файл не создается, создается имя. Удалять не обязательно, 1С удалит его само. Ну либо винда при перезагрузке.
#4
by User_Agronom
...вынужден выборочно процитировать СП... На форуме где СП продают это не этично.
#8
by Провинциальный 1сник
Вообще конечно получать имя временного файла без одновременного создания - некомильфо. Ибо в промежутке между получением имени и открытием файла на запись кто-то другой может занять это же имя. И будет ошибка. Вероятность маленькая, но она есть. Почему 1с не позволяет создать временный файл с открытием при указании расширения - тайна великая в том. Я бы еще отметил в недостатках отсутствие возможности указать путь для файла..
#10
by Провинциальный 1сник
В свойствах системы указывается путь к каталогу временных файлов. Приложениям ничто не запрещает использовать свои каталоги, однако..
#12
by User_Agronom
1С берет путь временного каталога пользователя. Даже если 100500 пользователей работают в терминале, то у каждого этот каталог свой.
#13
by dmpl
+ Хотя эксперимент показал, что, видимо, 1С изобрела свой велосипед. В этом смысле становится понятной фраза "При выполнении метода файл НЕ СОЗДАЕТСЯ", т.к. штатным методом Windows файл именно создается и закрывается (что гарантирует незанятость имени файла). В случае с 1С они полагаются на однопоточность исполнения кода: у каждого экземпляра программы свой диапазон имен временных файлов (не пересекающийся с диапазонами имен файлов других процессов). Тут речь про то, что если пользователь одновременно запустит 10 экземпляров программы...
#14
by MM
Временные файлы 1С содержат в себе PID процесса, их создавшего, который уникален в каждый момент времени на компьютере, диапазон из определяется именно так. Каталог может быть свой у каждой сессии или общий зависит от настройки терминала (в ОС). 1С корректном закрытии удаляет временные файлы со своим PID. При запуске клиент проверяет все временные файлы (там используются файлы блокировок, если они заняты значит процесс с их PID выполняется), если они не принадлежат работающим экземплярам 1С, то они удаляются. Это, конечно, если именование временных файлов производится ПолучитьИмяВременногоФайла.
#15
by Провинциальный 1сник
"Временные файлы 1С содержат в себе PID процесса, их создавшего, который уникален в каждый момент времени на компьютере" Тем не менее, вероятность того, что совершенно другая программа случайно сгенерит такое же имя файла, отлична от нуля)
#17
by Провинциальный 1сник
Вероятность падения метеорита на Челябинск была крайне небольшой, очевидно он туда преднамеренно упал)
#19
by MM
какая другая программа? 1С так не сделает, а зачем посторонней программе начинать имя временного файла с "v8_". А общий шаблон выглядит так: v8_(PID)_(порядковый номер).(tmp или указанное расширение)
#22
by MM
У каждого экземпляра свой уникальный PID, он может быть выдан повторно, но только после завершения процесса. Когда процесс начинает работу он удаляет старые данные, если этот PID уже использовался другим 1С, за ним всё приберут.
#23
by Torquader
Это всё так, только некоторые "умники" могут каталог временных файлов с клиента на сервере проецировать - и вот тогда начинается "кто первый - того и тапки".
#24
by Serg_1960
"Если параметр не задан, то СОЗДАЕТСЯ временный файл с расширением по умолчанию." - читать как "Если параметр не задан, то используется расширение "по умолчанию" для временных файлов."
#25
by tridog
На сервере очень даже надо. Потому что "следующий запуск программы" на сервере может быть очень не скоро) В типовых почти везде удаляют после использования (в серверном коде).
#26
by Serg_1960
Имхо, корректнее было писать более абстрактно. Типа: "Временный файл удаляется ОС после использования, а также при последующем запуске программы. Программно удалять файл после использования не обязательно, но рекомендуется."
#27
by MM
при корректном закрытии программы временные файлы тоже удаляются. А вот серверный процесс может жить долго и "добра" у него, соответственно, много скопится. не ОС, а 1С
#28
by Torquader
В стандартной функции Windows для временных файлов ставился специальный атрибут, что файл временный, и он должен быть быть удалён при следующей загрузке системы, но, во-первых, не всегда удаляет, во-вторых, для сервера, например, следующий запуск будет ой как не скоро. Конечно, можно ставить DELETE_ON_CLOSE, но для многих случаев, когда в файл пишут что-то для передачи между процессами, такой способ не подходит. Слава богу, что в Windows-системе Pid-ы могут повторно использоваться, не дожидаясь переполнения счётчика. Но, всё же, не лишним будет удалять временный файл за собой сразу после того, как он оказался не нужен, и не ждать, пока кто-то "вынесет мусор".
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Получить id и получить объект по id
- Как программно получить получить пароль пользователя в текущем сеансе работ
- Как получить имя ИБ?
- Как получить программно имя 1С:сервера и имя базы, в которой работаю?
- Как получить разность дат (Нужно получить количество дней)
- Как получить имя формы, как оно задано в конфигураторе?
- Как получить имя домена конкретного компа?
- Как получить ГУИД элемента по OLE, записать и получить по нему ссылку?
- Получить имя колонки таблицы значений?
- /Out<Имя файла> можно ли в момент отладки получить содержимое файла?
- как узнать имя текущего пользователя (не полное имя, а просто имя?)
В этой группе 1С
- 1C Розница Акциз + ФР Мария-301МТМ
- в клиент-серверном варианте не работает "В (&СписокСчетов)" в тексте запроса
- Бух 3.0 (УСН 15%) Некоторые расходы не принимаются к вычету, почему?
- Медок. Выгрузка входящих налоговых в ХМЛ-файл. Что за пи-пи-пи?
- СКД Как программно установить параметр во вложенной схеме при компоновке резуль?
- Проблема с лицензией 1С
- Как обновить правила обмена УТ11 БП3.0
- Табличный документ - ячейка
- Загрузка XML-шаблона в БГУ
- Параметры виртуальных таблиц Движения с субконто
- УТ Продажа с нулевой ценой
- Ошибка при выполнении с информационной базой 1С 8.3
- Проверка контрагентов ФНС - как проверить, что ошибается не 1С, а сама ФНС?
- Отладка синхронизации данных УТ11.1 - БП3.0
- Программно добавить на панель табличное поле и вызвать форму списка
- Обновление конфигурации 1С:Предприятие 8.2
- Не стартует PostgreSQL
- УПП 1.3 Страховые взносы - Допустимый, подкласс условий труда - 2.
- Начальные остатки по 69 счету в ЕРП 2.0 (УП 2.0, ERP 2.0)
- 1С ERP производство без планирования