|  13.01.2014, 14:33 | #1 | 
| Участник | Ошибка открытия файла Excel. 
			
			При попытке копирования файла Excel  выдает ошибку. Пробежался по форуму - ничего не нашел. Расшифровку ошибки тоже не смог найти. код: X++: void createNewFile() { #winAPI str _path = WinAPI::getFolderPath(#CSIDL_Profile) + "\\Local Settings\\Temp\\loadRP.xls"; str _pathFind = WinAPI::getFolderPath(#CSIDL_Profile) + "\\Local Settings\\Temp\\loadRPF.xls"; ; if (WinAPI::copyFile(fileName, _pathFind, true) == 0) { forFindPath = _pathFind; } else { error ('Îøèáêà êîïèðîâàíèÿ ôàéëà:'+fileName+";"+ _pathFind); error(Int2str(WinAPI::copyFile(fileName, _pathFind, true)) ) ; throw exception::Error; } if (WinAPI::copyFile(fileName, _path, true) == 0) { oldFilePath = fileName; fileName = _path; } else { error ('Îøèáêà êîïèðîâàíèÿ ôàéëà'); throw exception::Error; } } Ошибка копирования файла: бла бла код ошибки 3 на другом компьютере, нет такой ошибки. Что это кривая версия excel на пк? Последний раз редактировалось АртемМелихов; 13.01.2014 в 14:57. | 
|  | 
|  13.01.2014, 14:42 | #2 | 
| Участник | 
			
			Проверьте права доступа к папке
		 | 
|  | 
|  13.01.2014, 14:58 | #3 | 
| Участник | 
			
			проверял. Сохранял в разные места. Все равно такая же ошибка. Сейчас пробую другой офис поставить. 2003
		 | 
|  | 
|  13.01.2014, 15:07 | #4 | 
| Участник | 
			
			а код выполняется не на сервере случаем? Если да, то попробуйте указать сетевой путь
		 | 
|  | 
|  13.01.2014, 15:15 | #5 | 
| Участник | Цитата: 
		
			При попытке копирования файла Excel выдает ошибку.
		
	 Смотреть на права доступа. Полный путь (в обе стороны). | 
|  | 
|  13.01.2014, 15:16 | #6 | 
| Участник | 
			
			попробовал положить файл на сервер и указывать сетевой путь, не помогло. Поставил два офиса 2007 2003, ошибка не ушла.
		 | 
|  | 
|  13.01.2014, 15:20 | #7 | 
| Участник | 
			
			создал папку с общих доступом для всех(папка находится локально на диске D). Права и на чтение и на запись, положил туда файл. Аксапта запускается с сервера. Таже ошибка - ошибка копирования файла.
		 | 
|  | 
|  13.01.2014, 15:24 | #8 | 
| Участник | 
			
			посмотрите в отладчике где выполняется код. для сервера нужно использовать WinAPIServer::copyFile(...)
		 | 
|  | 
|  13.01.2014, 15:28 | #9 | 
| Участник | 
			
			А причем тут версия Excel? Копирование файла с Excel не связано. Скорее всего проблема в доступе к файлу. Попробуй через  X++: WinAPI::fileExists_RU Последний раз редактировалось maldini; 13.01.2014 в 15:33. | 
|  | 
|  13.01.2014, 15:38 | #10 | 
| Участник | 
			
			Рядом стоит такой же комп, в том же домене, у которого все работает. Тем более я нуб и не знаю как проверить место исполнения кода. Да еще веселость выяснилась. Поставил точки остановки, в параметрах аксапты указал вызывать отладчик, при наличие точек, в итоге отладчик даже не подумал запуститься. =(
		 | 
|  | 
|  13.01.2014, 15:43 | #11 | 
| Участник | Цитата:  X++: void createNewFile() { #winAPI str _path = WinAPI::getFolderPath(#CSIDL_Profile) + "\\Local Settings\\Temp\\loadRP.xls"; str _pathFind = WinAPI::getFolderPath(#CSIDL_Profile) + "\\Local Settings\\Temp\\loadRPF.xls"; ; if (WinAPI::fileExists_RU(fileName)) { info("Detaction file :"+fileName); } else { info("? file :"+_pathFind); } if (WinAPI::copyFile(fileName, _pathFind, true) == 0) { forFindPath = _pathFind; } else { error ('Îøèáêà êîïèðîâàíèÿ ôàéëà:'+fileName+";"+ _pathFind); error(Int2str(WinAPI::copyFile(fileName, _pathFind, true)) ) ; throw exception::Error; } | 
|  | 
|  13.01.2014, 15:52 | #12 | 
| Участник | Цитата: а определить место выполнения можно по иконке в окне стека в отладчике. или просто напишите в вашем методе if (isRunningOnServer()) { info("Выполняется на сервере"); } | 
|  | 
|  13.01.2014, 15:58 | #13 | 
| Участник | Цитата: 
		
			Сообщение от A_BAS
			   а версия аксапты какая? может у вас отладчик не установлен. а для AX2012 нужно добавится еще и в группу пользователей для отладки. а определить место выполнения можно по иконке в окне стека в отладчике. или просто напишите в вашем методе if (isRunningOnServer()) { info("Выполняется на сервере"); }  X++: void createNewFile() { #winAPI str _path = WinAPI::getFolderPath(#CSIDL_Profile) + "\\Local Settings\\Temp\\loadRP.xls"; str _pathFind = WinAPI::getFolderPath(#CSIDL_Profile) + "\\Local Settings\\Temp\\loadRPF.xls"; str _path_temp = "D:\\public\\Temp\\loadRPF.xls" ; if (isRunningOnServer()) { info("Âûïîëíÿåòñÿ íà ñåðâåðå"); } else { info("Âûïîëíÿåòñÿ ëîêàëüíî"); } if (WinAPI::fileExists_RU(fileName)) { info("Detaction file :"+fileName); } else { info("? file :"+_pathFind); } if (WinAPI::copyFile(fileName, _path_temp, true) == 0) { forFindPath = _pathFind; } else { error ('Îøèáêà êîïèðîâàíèÿ ôàéëà:'+fileName+";"+ _path_temp); error(Int2str(WinAPI::copyFile(fileName, _path_temp, true)) ) ; throw exception::Error; } | 
|  | 
|  13.01.2014, 16:20 | #14 | 
| Участник | 
			
			гм. а доступ на запись в целевую папку тоже есть?
		 | 
|  | |
| За это сообщение автора поблагодарили: АртемМелихов (1). | |
|  13.01.2014, 16:21 | #15 | 
| Участник | 
			
			Попробуй любой другой файл создать и скопировать. Например 1.txt в 2.txt
		 Последний раз редактировалось maldini; 13.01.2014 в 16:35. | 
|  | 
|  13.01.2014, 16:28 | #16 | 
| Участник | |
|  | 
|  13.01.2014, 16:29 | #17 | 
| Участник | 
			
			Добавьте в код выделенную строчку и скажите номер ошибки. X++: if (WinAPI::copyFile(fileName, _path_temp, true) == 0) { forFindPath = _pathFind; } else { [ ]error(Int2str(WinAPI::GetLastError()));[ ] error ('Îøèáêà êîïèðîâàíèÿ ôàéëà:'+fileName+";"+ _path_temp); error(Int2str(WinAPI::copyFile(fileName, _path_temp, true)) ) ; throw exception::Error; } Источник: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx Рус. яз. : http://www.delphisources.ru/pages/fa...in_errors.html Последний раз редактировалось LeonDerCom; 13.01.2014 в 16:35. | 
|  | |
| За это сообщение автора поблагодарили: АртемМелихов (1). | |
|  13.01.2014, 16:38 | #18 | 
| Участник | 
			
			Ошибка 3 из апишного copyFile - это: ERROR_PATH_NOT_FOUND 3 (0x3) The system cannot find the path specified. | 
|  | |
| За это сообщение автора поблагодарили: АртемМелихов (1). | |
|  13.01.2014, 16:40 | #19 | 
| Участник | 
			
			Нет доступа к папке куда копируется файл или она не существует. Посмотри от какого имени вызывается winApi X++: winApi::getUserName() Последний раз редактировалось maldini; 13.01.2014 в 16:46. | 
|  | |
| За это сообщение автора поблагодарили: АртемМелихов (1). | |
|  13.01.2014, 16:45 | #20 | 
| Участник | 
			
			Всем огромнейщее спасибо! Все эту ошибку победил. Оказывается не была создана папка Temp. Как только создал ее копирования пошло как по маслу. =) Вот такие пироги
		 | 
|  |