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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.08.2005, 15:01   #1  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
Здравствуйте !
При использовании конструкции if codeunit.run подавляется сообщение об ошибке. Нет ли какого либо способа получить это сообщение без изменения данной конструкции
Старый 23.08.2005, 15:08   #2  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
А какой смысл тогда использовать конструкцию?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 23.08.2005, 15:15   #3  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
Цитата:
Сообщение от Дуд
А какой смысл тогда использовать конструкцию?
В 81 таблице создаются записи для учета, подаются на учет и может возникнуть ситуация когда в записи есть ошибка, вот это и надо поймать
Старый 23.08.2005, 16:50   #4  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Я, наверное, чего-то не понимаю.
Ну дык и пишите тогда не
IF CodeUnit.RUN, а
CodeUnit.RUN
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 23.08.2005, 17:09   #5  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
Цитата:
Сообщение от Дуд
Я, наверное, чего-то не понимаю.
Ну дык и пишите тогда не
IF CodeUnit.RUN, а
CodeUnit.RUN
Наверное я не совсем точно объяснил.
Есть пачка документов, каждый документ учитывается отдельно. В этом случае констукция if codeunit.run позволяет отсечь документы которые не прошли учет и продолжить учитывать остальные, но ведь надо знать пользователю, что послужило причиной ошибки учета в документе который не прошел учет, а то максимум что получит пользователь это уведомление об ошибке в документе, а его естесвенно будет интересовать и причина .
Старый 23.08.2005, 17:18   #6  
Jackal1 is offline
Jackal1
Участник
 
54 / 10 (1) +
Регистрация: 29.07.2005
Адрес: Киев
На практике таких документов (которые не прошли учет) должно быть не много. Поэтому думаю не случится ничего страшного если они просто получат список проблемных документов и вручную проверят где они лапухнулись
Старый 23.08.2005, 17:25   #7  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
Цитата:
Сообщение от Jackal
На практике таких документов (которые не прошли учет) должно быть не много. Поэтому думаю не случится ничего страшного если они просто получат список проблемных документов и вручную проверят где они лапухнулись
Абсолютно с Вами согласен, но если есть возможность то все таки лучше ее предоставить. Разумеется, что если нет возможности то тогда надо будет решать это другим путем.
А пока меня интересует нет ли возможности добраться до ошибки, неважно где и как, лищь бы получить эту текстовку.
Старый 23.08.2005, 18:14   #8  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Будет ошибка - будет откат.
Не хотите отката - не будет ошибки.
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 23.08.2005, 18:36   #9  
DID is offline
DID
Участник
 
6 / 10 (1) +
Регистрация: 22.08.2003
Адрес: Moscow
Посмотрите Automation 'Navision Timer 1.0'.Timer. Не забудьте включить свойство WithEvents.
Текст ошибки можно получить в событии TimerError()
Запуск защищаемого кода надо будет оформить в событии Timer()
Старый 23.08.2005, 18:42   #10  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
Цитата:
Сообщение от DID
Посмотрите Automation 'Navision Timer 1.0'.Timer. Не забудьте включить свойство WithEvents.
Текст ошибки можно получить в событии TimerError()
Запуск защищаемого кода надо будет оформить в событии Timer()
Спасибо, попробую
Старый 23.08.2005, 19:10   #11  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
Цитата:
Сообщение от DID
Посмотрите Automation 'Navision Timer 1.0'.Timer. Не забудьте включить свойство WithEvents.
Текст ошибки можно получить в событии TimerError()
Запуск защищаемого кода надо будет оформить в событии Timer()
Еще раз спасибо,
я нашел решение, не очень симпатичное, но вполне приемлемое и благодоряя идеи Timer()
Старый 01.09.2005, 11:33   #12  
SVG is offline
SVG
Участник
 
201 / 10 (1) +
Регистрация: 15.11.2004
А нельзя после учета документа делать COMMIT?
Тогда учитываем до первой ошибки, после получения ошибки продолжаем с места остановки, какие проблемы?
Старый 01.09.2005, 13:50   #13  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
Цитата:
Сообщение от SVG
А нельзя после учета документа делать COMMIT?
Тогда учитываем до первой ошибки, после получения ошибки продолжаем с места остановки, какие проблемы?
При использовании конструкции if codeunit.run, в случае ошибки внутри codeunit, блокируется сообщение об ошибки, если использовать просто codeunit.run то при ошибки не будет возврата к продолжению обработки после codeunit, а оно нужно. Поэтому и была дилема, получить ошибку но вернуться черти знает куда, или неполучить ошибку, но обработать как надо.
Старый 02.09.2005, 10:09   #14  
SVG is offline
SVG
Участник
 
201 / 10 (1) +
Регистрация: 15.11.2004
Цитата:
Сообщение от zub
если использовать просто codeunit.run то при ошибки не будет возврата к продолжению обработки после codeunit, а оно нужно. Поэтому и была дилема, получить ошибку но вернуться  черти знает куда, или неполучить ошибку, но обработать как надо.
собственно вам надо текст всех ошибок на всех непрошедших документах?
или можно например сделать так -
IF not codeunit.run then
запомнить номер документа, обработать следующий
...................
COMMIT;
codeunit.run(ОшибочныйДокумент);

Получите текст ошибки собственно....
Старый 02.09.2005, 10:22   #15  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
Цитата:
Сообщение от SVG
Цитата:
Сообщение от zub
если использовать просто codeunit.run то при ошибки не будет возврата к продолжению обработки после codeunit, а оно нужно. Поэтому и была дилема, получить ошибку но вернуться  черти знает куда, или неполучить ошибку, но обработать как надо.
собственно вам надо текст всех ошибок на всех непрошедших документах?
или можно например сделать так -
IF not codeunit.run then
запомнить номер документа, обработать следующий
...................
COMMIT;
codeunit.run(ОшибочныйДокумент);

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


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:45.