Имя: Пароль:
1C
1C 7.7
v7: Проблема с переименованием файла
0 satoru
 
10.09.19
16:20
Платформа: 7.70.027
Не получается переименовать файл командой ФС.ПереименоватьФайл. 1С даже не выдаёт ошибку, просто остаётся исходный файл(ИмяФайла1). Код:

ИмяФайла = "text file 10.09.2019.txt";
ИмяФайла1 = "t0.txt";
ИмяНачКаталога = КаталогПользователя();
ФС.ПереименоватьФайл(ИмяНачКаталога+"\"+ИмяФайла1, ИмяНачКаталога+"\"+ИмяФайла,1);
1 Kigo_Kigo
 
10.09.19
16:24
КаталогПользователя(); возвращает C:\Base_1c\DB\
2 Kigo_Kigo
 
10.09.19
16:24
думаешь твоя дополнительная +"\"+ нужна?
3 Chum
 
10.09.19
16:25
text file 10.09.2019.txt - атрибут только для чтения?

Полное имя файла исходного проверь в отладчике или выведи в сообщить()
4 Chum
 
10.09.19
16:27
+(3) не уверен, но всякие пробелы и лишние точки в имени файла могут просто не понравится программе 20-летней давности.
5 satoru
 
10.09.19
16:30
(1) Нет, возвращает каталог пользователя.
6 satoru
 
10.09.19
16:31
(2) да. Смотрел, через отладчик.
7 satoru
 
10.09.19
16:32
(3) поясню:
Файл приемник "text file 10.09.2019.txt";
Файл источник = "t0.txt";
8 Kigo_Kigo
 
10.09.19
16:33
(5) это пример *рукаЛицо*, а так
ФС.ПереименоватьФайл(ИмяНачКаталога+ИмяФайла1, ИмяНачКаталога+ИмяФайла,1);
9 satoru
 
10.09.19
16:35
(8) результат тот же. И самое противное, что 1С даже не сообщает, в чем проблема.
10 vova1122
 
10.09.19
16:36
для начала проверь на простіх файлах. Типа переименовать aaa.txt в  bbb.txt
11 satoru
 
10.09.19
16:38
(10) заменил "text file 10.09.2019.txt" на "t1.txt" - результат тоже.
12 satoru
 
10.09.19
16:38
Если поможет ОС: Windows 10
13 Kigo_Kigo
 
10.09.19
16:44
а 1с ка от имени администратора запущена?
14 РусскийВедун
 
10.09.19
16:44
файл должен быть закрыт у всех. и пробуй через попытку исключение
15 satoru
 
10.09.19
16:45
(13) да
16 vova1122
 
10.09.19
16:48
Может еще дело в название каталога пользователя? Попробуй в корне диска переименовать
17 РусскийВедун
 
10.09.19
16:49
делай так
попытка
ФС.ПереименоватьФайл(ИмяНачКаталога+"\"+ИмяФайла1, ИмяНачКаталога+"\"+ИмяФайла,1);
исключение
солобщить(описаниеошибки);
конецпопытки

файл точно должен у всех быть закрыт, а может и каталог.
18 satoru
 
10.09.19
16:49
(14) Да! Файл был заблокирован самой 1С. Спасибо. Привет разрабам (платформа 1С), которые даже не думали о том, чтобы информировать пользователей об ошибках при выполнении кода.
Всем ещё раз спасибо за помощь. Хорошего дня.
19 РусскийВедун
 
10.09.19
16:51
(18) в свое время с этим долго разбирался, даже помню оказывается.
20 vova1122
 
10.09.19
16:54
А как 1С блокирует текстокый файл? С таким никогда не сталкивался.
21 piter3
 
10.09.19
16:55
(20) если его открыть и не закрыть.Так все делают
22 РусскийВедун
 
10.09.19
16:55
(20) я так понимаю, что 1с его наверное создает, а потом его хотят переименовать, через некоторое время.
23 РусскийВедун
 
10.09.19
16:56
(22) я сталкивался с такими поставками задач
24 vova1122
 
10.09.19
16:57
(21) Чтение из текстового файла никогда не закрываю.
25 piter3
 
10.09.19
16:58
(24) А редактирование:)
26 hhhh
 
10.09.19
17:10
(24) например запись файла идет 5 секунд. А он не дождавшись запускает переименование. Вот и занято. Надо ему задержку вставить, wait на несколько секунд, тогда точно переименуется.
27 Сияющий в темноте
 
12.09.19
00:22
делайте через Scripting.FileSystemObject