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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.01.2014, 15:24   #1  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
посмотрите в отладчике где выполняется код. для сервера нужно использовать WinAPIServer::copyFile(...)
Старый 13.01.2014, 15:28   #2  
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:43   #3  
АртемМелихов 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:38   #4  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от A_BAS Посмотреть сообщение
посмотрите в отладчике где выполняется код. для сервера нужно использовать WinAPIServer::copyFile(...)
Рядом стоит такой же комп, в том же домене, у которого все работает. Тем более я нуб и не знаю как проверить место исполнения кода. Да еще веселость выяснилась. Поставил точки остановки, в параметрах аксапты указал вызывать отладчик, при наличие точек, в итоге отладчик даже не подумал запуститься. =(
Старый 13.01.2014, 15:52   #5  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
Поставил точки остановки, в параметрах аксапты указал вызывать отладчик, при наличие точек, в итоге отладчик даже не подумал запуститься. =(
а версия аксапты какая? может у вас отладчик не установлен. а для AX2012 нужно добавится еще и в группу пользователей для отладки.

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

if (isRunningOnServer())
{
info("Выполняется на сервере");
}
Старый 13.01.2014, 15:58   #6  
АртемМелихов 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   #7  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
гм. а доступ на запись в целевую папку тоже есть?
За это сообщение автора поблагодарили: АртемМелихов (1).
Старый 13.01.2014, 16:28   #8  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от A_BAS Посмотреть сообщение
гм. а доступ на запись в целевую папку тоже есть?
да есть. Полный доступ и чтение и запись для всех.
Теги
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, время: 20:31.