AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.01.2014, 14:33   #1  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Ошибка открытия файла 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  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
Проверьте права доступа к папке
Старый 13.01.2014, 14:58   #3  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
проверял. Сохранял в разные места. Все равно такая же ошибка. Сейчас пробую другой офис поставить. 2003
Старый 13.01.2014, 15:07   #4  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
а код выполняется не на сервере случаем? Если да, то попробуйте указать сетевой путь
Старый 13.01.2014, 15:15   #5  
LeonDerCom is offline
LeonDerCom
Участник
 
45 / 20 (1) +++
Регистрация: 08.10.2012
Цитата:
При попытке копирования файла Excel выдает ошибку.
Это не Excel выдает ошибку. Так что от переустановки версий ничего не зависит.
Смотреть на права доступа. Полный путь (в обе стороны).
Старый 13.01.2014, 15:16   #6  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
попробовал положить файл на сервер и указывать сетевой путь, не помогло. Поставил два офиса 2007 2003, ошибка не ушла.
Старый 13.01.2014, 15:20   #7  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от LeonDerCom Посмотреть сообщение
Это не Excel выдает ошибку. Так что от переустановки версий ничего не зависит.
Смотреть на права доступа. Полный путь (в обе стороны).
создал папку с общих доступом для всех(папка находится локально на диске D). Права и на чтение и на запись, положил туда файл. Аксапта запускается с сервера. Таже ошибка - ошибка копирования файла.
Старый 13.01.2014, 15:24   #8  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
посмотрите в отладчике где выполняется код. для сервера нужно использовать WinAPIServer::copyFile(...)
Старый 13.01.2014, 15:28   #9  
maldini is offline
maldini
Участник
 
103 / 30 (2) +++
Регистрация: 06.03.2007
Адрес: москва
А причем тут версия Excel? Копирование файла с Excel не связано. Скорее всего проблема в доступе к файлу. Попробуй через
X++:
WinAPI::fileExists_RU
проверить есть ли файла.

Последний раз редактировалось maldini; 13.01.2014 в 15:33.
Старый 13.01.2014, 15:38   #10  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от A_BAS Посмотреть сообщение
посмотрите в отладчике где выполняется код. для сервера нужно использовать WinAPIServer::copyFile(...)
Рядом стоит такой же комп, в том же домене, у которого все работает. Тем более я нуб и не знаю как проверить место исполнения кода. Да еще веселость выяснилась. Поставил точки остановки, в параметрах аксапты указал вызывать отладчик, при наличие точек, в итоге отладчик даже не подумал запуститься. =(
Старый 13.01.2014, 15:43   #11  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от maldini Посмотреть сообщение
А причем тут версия Excel? Копирование файла с Excel не связано. Скорее всего проблема в доступе к файлу. Попробуй через
X++:
WinAPI::fileExists_RU
проверить есть ли файла.


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  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
Поставил точки остановки, в параметрах аксапты указал вызывать отладчик, при наличие точек, в итоге отладчик даже не подумал запуститься. =(
а версия аксапты какая? может у вас отладчик не установлен. а для AX2012 нужно добавится еще и в группу пользователей для отладки.

а определить место выполнения можно по иконке в окне стека в отладчике.
или просто напишите в вашем методе

if (isRunningOnServer())
{
info("Выполняется на сервере");
}
Старый 13.01.2014, 15:58   #13  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от A_BAS Посмотреть сообщение
а версия аксапты какая? может у вас отладчик не установлен. а для AX2012 нужно добавится еще и в группу пользователей для отладки.

а определить место выполнения можно по иконке в окне стека в отладчике.
или просто напишите в вашем методе

if (isRunningOnServer())
{
info("Выполняется на сервере");
}
сделал. Версия: Аксапта 3.0

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  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
гм. а доступ на запись в целевую папку тоже есть?
За это сообщение автора поблагодарили: АртемМелихов (1).
Старый 13.01.2014, 16:21   #15  
maldini is offline
maldini
Участник
 
103 / 30 (2) +++
Регистрация: 06.03.2007
Адрес: москва
Попробуй любой другой файл создать и скопировать. Например 1.txt в 2.txt

Последний раз редактировалось maldini; 13.01.2014 в 16:35.
Старый 13.01.2014, 16:28   #16  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от A_BAS Посмотреть сообщение
гм. а доступ на запись в целевую папку тоже есть?
да есть. Полный доступ и чтение и запись для всех.
Старый 13.01.2014, 16:29   #17  
LeonDerCom is offline
LeonDerCom
Участник
 
45 / 20 (1) +++
Регистрация: 08.10.2012
Добавьте в код выделенную строчку и скажите номер ошибки.
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  
Krasher is offline
Krasher
Участник
Аватар для Krasher
 
48 / 37 (2) +++
Регистрация: 14.05.2005
Ошибка 3 из апишного copyFile - это:

ERROR_PATH_NOT_FOUND
3 (0x3)
The system cannot find the path specified.
За это сообщение автора поблагодарили: АртемМелихов (1).
Старый 13.01.2014, 16:40   #19  
maldini is offline
maldini
Участник
 
103 / 30 (2) +++
Регистрация: 06.03.2007
Адрес: москва
Нет доступа к папке куда копируется файл или она не существует.
Посмотри от какого имени вызывается winApi
X++:
winApi::getUserName()

Последний раз редактировалось maldini; 13.01.2014 в 16:46.
За это сообщение автора поблагодарили: АртемМелихов (1).
Старый 13.01.2014, 16:45   #20  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Всем огромнейщее спасибо! Все эту ошибку победил. Оказывается не была создана папка Temp. Как только создал ее копирования пошло как по маслу. =) Вот такие пироги
Теги
copyfile, excel, winapi

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка COM Excel propeller DAX: Администрирование 5 28.11.2013 12:20
Ошибка открытия файла *.auc mikki_messer DAX: Администрирование 7 14.05.2013 18:44
Создание файла-xlsx (Excel 2007) из файла - xltx (шаблон Excel 2007) не работает 111andrei DAX: Программирование 2 11.11.2010 17:57
Ошибка при открытии диалога открытия файла (AX40sp2) Alexx7 DAX: Программирование 3 01.03.2010 12:38
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:20.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.