1с время создания файла

Обновлено: 07.07.2024

В 1С 8.3 (8.2) для работы с файлами существует два объекта: Файл и ДиалогВыбораФайла.

Рассмотрим каждый по отдельности.

Объект Файл служит для управления параметрами файлов.

Сразу стоит заметить, что данный объект не предназначен для чтения и записи из файлов.

Например, прочитаем параметры некоторого файла, находящегося на диске C:

В результате мы получим следующую информацию (если файл найден):

Параметры файла:
Полное имя файла: C:\Работа с файлами\статья.txt
Имя: статья.txt
Имя без расширения: статья
Расширение: .txt
Путь без имени: C:\Работа с файлами\
Размер: 899
Это файл: Да
Изменен: 18.05.2015 16:21:28
Только чтение: Нет
Невидимость: Нет

Запись в файл

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Теперь, когда мы выбрали и открыли файл, можно с ним работать, т.е. прочитать его содержимое или записать в него что-нибудь.
Рассмотрим пример:

Чтение файла в 1С

Часто бывает необходимо прочитать текст файла построчно, например, для анализа каждой строки. Для этого используем объект ЧтениеТекста.

Запись текста из 1С в файл

Заметим, что при записи текстового файла можно установить кодировку.

Копирование файла

Здесь все очень просто

Перемещение

Удаление

Диалог выбора файла

В указанных выше примерах есть одно неудобство. Путь к файлу прописан жестко в коде. Чтобы выбрать файл интерактивно, существует объект ДиалогВыбораФайла, о котором речь пойдет ниже.

Объект ДиалогВыбораФайла служит для открытия файла (файлов), сохранения файла или выбора каталога в диалоге специального вида.

Например, выберем и откроем некоторый файл с расширением txt:
Задаем режим диалога выбора. Доступны три варианта: ВыборКаталога, Открытие, Сохранение

Как изменить даты создания/изменения/доступа файла?
Обработка должна сохранять файл из хранилища и ставить требуемые даты.

Или как запаковать в zip не используя ЗаписьZipФайла?
Или как использовать ЗаписьZipФайла что-бы он не пихал в заголовок информацию по этим датам?
Через командную строку rarom рассматриваю в последнюю очередь, как крайний вариант.

Синтаксис:
УстановитьВремяИзменения(<ВремяИзменения>)
Параметры:
<ВремяИзменения> (обязательный)
Тип: Дата.
Устанавливаемое местное время изменения файла.
Описание:
Устанавливает время последнего изменения файла.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер).
Примечание:
Применим только к файлам, которые реально существуют.
Для работы метода на веб-клиенте необходимо предварительно подключить расширение работы с файлами.
В режиме совместимости конфигурации устанавливает местное время последней модификации файла с ошибкой NTFS. Если файл изменен летом, а устанавливается зимой, то установленное время опережает на 1 час. Если файл изменен зимой, а устанавливается летом, то установленное время отстает на 1 час.
Если установлен режим совместимости Версия8_2_13 или выше, то время выдается без ошибки.
При работе под управлением ОС Windows, если время изменения файла меньше 1 января 1601 года (UTC), генерируется исключение.
Пример:
ВыбФайл.УстановитьВремяИзменения(ТекущаяДата());
См. также:
Файл, метод НачатьУстановкуВремениИзменения
Использование в версии:
Доступен, начиная с версии 8.0.

Экспериментальным методом выявлено, что ЗаписьZipФайла создает идентичные побитно файлы если в содержимых файлах равны даты создания/изменения/доступа

winrar при упаковке в zip смотрит только на дату изменения. Побитно архивы получаются идентичными при разных других датах.

Распечатать

17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps  20
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2)  0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей. Google maps : вывод точек на карту и режим панорамы  7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Google maps, поиск оптимального маршрута  5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне Посмотреть все результаты поиска похожих

Еще в этой же категории

Полнотекстовый поиск в 1С (что это и пример использования)  22
Полнотекстовый поиск - позволит найти текстовую информацию, размещенную практически в любом месте используемой конфигурации. При этом искать нужные данные можно либо по всей конфигурации в целом, либо сузив область поиска до нескольких объектов Формат, функция форматирования значений  21
//Функция формирует удобное для чтения представление значений. // Примеры форматирования чисел ЗначФормат = Формат(123456.789, " ЧЦ=10; ЧДЦ=2" ); // ЗначФормат = " 123 456,79" ЗначФормат = Формат(123456.789, " ЧГ=0; ЧДЦ=2" ); // Знач УстановитьСсылкуНового  11
Установить ссылку нового это специальный механизм программиста, который позволяет присваивать новому объекту нужную ссылку. В основном это задача обмена, во многих типовых обменах используется синхронизация по UID объекта. Рассмотрим этот метод на к Обработчики событий при записи объектов. Зачем и что за чем?  11
Программисту, имеющего немного опыта на платформе 1С 8.2, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта, а-а-а-а-аааа. Именно такое сложное чувство непонимания МоментВремени, получение остатков до и после проведения  9
" Момент времени" - виртуальное поле, не хранится в базе данных. Содержит объект МоментВремени (который включает в себя дату и ССЫЛКУ НА ДОКУМЕНТ) В 7.7 было понятие ПозицияДокумента, а в 8.x Момент времени Для получения Остатков, Движений: М Посмотреть все в категории Встроенные Функции

ti, но она указывает только на дату изменения файла. А как узнать именно дату создания файла?

Заработало следующим образом

можно, например, извлечь отсюда :


хотя гораздо проще сделать на PowerShell:

и не надо мучаться с обработкой результата dir

А как достать только одно значение? Без лишнего вывода
Это нужно будет потом в файл, в виде одной даты вывести.

Пробовал так:
FOR /f %%i IN ('DIR "%

1" /tc ^| FINDSTR /E "%%

2"
Но будут повторения, т.к. в директории будут похожие по названию файлы.
Есть тут возможность указать файл напрямую?

MaxDukov

Михаил: FOR /F "tokens=1,2 skip=5" %%i IN ('DIR %1 /tc ') DO (echo %%i %%j && exit 0)
- батнику на вход подаете имя файла, на выходе имеете дату и время. Если время не нужно, просто в echo уберите %%j Дату получить удалось, но с ней ещё возвращаются другие данные, 1 и 0 всегда. Как убрать и откуда это?

MaxDukov

Михаил: странно. Как выглядит вывод? Возможно, это код возврата. Попробуйте заменить на
FOR /F "tokens=1,2 skip=5" %%i IN ('DIR %1 /tc ') DO (echo %%i && goto END)
:END Макс: не помогло, вывод выглядит, примерно, так:
15.09.2015
1
0
17.09.2015
1
0

MaxDukov

Другой вариант :
for /F "tokens=1,2" %%i IN ('dir имяфайла /TC ^| find "имяфайла"') do set z=%%i %%j

Просто в выводе найдем строку с именем файла - получим одну строку, из которой извлечем токенами первые две части : дату и время.

MaxDukov

yellowmew: нашел, в чем проблема. DIR вываливает несколько строк.
например:
C:\2CB\ISA>dir /tc 1.cmd
Том в устройстве C имеет метку System
Серийный номер тома: C29D-3BB0

Содержимое папки C:\2CB\ISA

22/09/2015 12:12 264 1.cmd
1 файлов 264 байт
0 папок 380,115,738,624 байт свободно
параметр skip=5 отрезает лишние 5 верхних, с описанием тома. остаются 3 последние.
22/09/2015 12:12 264 1.cmd
1 файлов 264 байт
0 папок 380,115,738,624 байт свободно
token=1 вырежет только первый блок до пробела из КАЖДОЙ строки. т.е. если первое же echo в этом FOR не заканчивать выходом из цикла, то цикл в ледующий раз вернет 1(из строки 1 файлов . ), а потом 0 (0 папок . )

Читайте также: