Имя: Пароль:
1C
 
Как удостоверится, что запись внешнего файла завершена?
0 RomaH
 
naïve
25.11.21
08:32
Взаимодействие с внешней программой

Пользователь во внешней программе делает экспорт файла в каталог

В 1С делаю БП ожидания и обработки экспортируемого файла.
Как начать работу с появившимся в каталоге файлом только после того как этот файл полностью записан?
1 dubolom
 
25.11.21
08:50
Из внешней программы сигнал никак не передать?
2 RomaH
 
naïve
25.11.21
08:55
(1) нет
3 ДенисЧ
 
25.11.21
08:56
Как вариант - пытаться открыть файл на запись в цикле с паузой...
4 ChMikle
 
25.11.21
08:56
+(3) или скопировать
5 ДедМорроз
 
25.11.21
08:58
Если программа при записи блокирует файл,то можно попробовать его прочитать.
А так Scripting.FileSystemObject и OpenTextFile с параметром 8 - это открытие на дозапись,если кто-то пишет,то будет сгенерировано исключение.
6 Мимохожий Однако
 
25.11.21
08:58
Положи рядом файл-флажок после записи и ориентируйся на него. После чтения полученного файла стирай оба файла
7 ДедМорроз
 
25.11.21
08:59
Если программа "отпускает" во время записи файл,то никак,если его "подхватить", то будет ошибка в той программе.
8 Мимохожий Однако
 
25.11.21
09:01
Однажды делал так для больших файлов. Записываю файл с особенным расширением. А после полной записи переименовываю в нужное расширение.
9 Смотрящий
 
25.11.21
09:01
Счиитывать параметры файла дважды, трижды и т.п.
Пока они не уравняются, считать файл
10 ДедМорроз
 
25.11.21
09:17
Вопрос другой - внешняя программа после записи завершается или нет?
И на этой же она машине?
Просто,увидеть завершение процесса гораздо проще,чем мониторить файл.
Если доступа к изменению внешней программы нет,то следить за процессом - один из вариантов.
11 ДедМорроз
 
25.11.21
09:20
Можно у процесса получить список дескрипторов файлов и поискать наш файл,но,если файл закрывается,а потом открывается снова,то не выйдет.
12 acanta
 
25.11.21
09:20
Внешняя программа на другом компьютере и пишет по сети? Или как сейчас модно, сервер дата центра и виртуалка, вообще неизвестно, это тот же компьютер или другой.
13 ДедМорроз
 
25.11.21
09:21
Файл,открытый по сети,на сервере можно увидеть в списке открытых файлов,но опять же,смотрим предыдущее сообщение.