Error: "expression Out Of Range"

wowa

Well-known member
01.02.2007
845
0
#1
Подскажите, плз.....
После нажатия на кнопку, у пользователя выскочила ошибка "Expression out of range"...
У меня не получается повторить такую ошибку....

Подскажите, на что обратить внимание чтобы повторить ошибку? Из хелпа понимаю, что какое-то числовое значение слишком длинное.... Но у меня этих чисел много....
 

nvyush

Lotus team
22.04.2009
2 317
0
#2
Если код кнопки на ЛС, добавить обработчик ошибок On Error Goto ... В обработчике записывать отладочную информацию в служебный документ, например, по форме "(Error)". Нарисовать соответствующий документ и вьюху для просмотра. Можно также складывать сообщения об ошибках со всех баз в отдельной базе или слать себе по почте.
 

wowa

Well-known member
01.02.2007
845
0
#3
nvy, обработчик ошибок существует, логи создаются по нужной форме, вьюха есть.... С этим я хорошо знаком...
Но лог не был создан при ошибке....
Добавлю некоторые пояснения:
Нажали кнопку, код в кнопке маленький и не работает с числовыми значениями. Единственно, документ переходит в режим редактирования. Возможно тут причина с какими-н числовыми полями...
Далее с документом работали как нивчем не бывало
 

nvyush

Lotus team
22.04.2009
2 317
0
#5
Нажали кнопку, код в кнопке маленький и не работает с числовыми значениями. Единственно, документ переходит в режим редактирования. Возможно тут причина с какими-н числовыми полями...
Далее с документом работали как нивчем не бывало
Возможно в к-либо вычисляемом поле возник выход за границы массива. Нужно пытать пользователя, на каком документе возникла ошибка и глядеть всё вычисляемое, возможно и формулы скрытия.
 
K

Klido

#6
данная ошибка может возникнуть из-за конкретных данных в конкретном документе - надо просмотреть значения полей, хотя по факту вычисляемости уже можно предположить, что может быть...
 

wowa

Well-known member
01.02.2007
845
0
#7
Конкретный документ я знаю.... Там много полей...Хотелось бы ограничить круг полей для рассмотрения... Какие из полей можно спокойно вычеркнуть и на какие обратить внимание??
Не знаю за что принятся.....
 

nvyush

Lotus team
22.04.2009
2 317
0
#8
Конкретный документ я знаю.... Там много полей...Хотелось бы ограничить круг полей для рассмотрения... Какие из полей можно спокойно вычеркнуть и на какие обратить внимание??
Не знаю за что принятся.....
Думаю, в первую очередь кинуть форму в синопсис и поискать квадратные скобки в формулах. Смотреть, если есть фрагмент кода FieldX[5], сколько значений в поле FieldX. Если речь о почтовом шаблоне — сочуствую.
 

TIA

:-)
Lotus team
15.05.2009
790
3
#9
Единственно, документ переходит в режим редактирования.
При переходу в режим редактирования срабатывают события QueryModeChange (QMC) и PostModeChange (PMC). Возможно, что код в них генерит ошибку. Поставте обработчик с выводом имени функции и номером строки (GetThreadInfo(1) и Erl). Проверьте, что в полученной строке. Если сами не разберётесь, то строку "в студию".
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#10
Ото вы завелись ;)
ошибка частая у тех кто не умеет работать с массивами
например количество элементов узнают из одного массива и данные меняют в другом а то массив короче
И всё это вместо того, чтобы работать с классами
 

wowa

Well-known member
01.02.2007
845
0
#11
nvy , проверил, квадратных скобок нет

TIA, в данных событиях нет кода. ОБработчики стоят, но они не помогли....Такая ошибка возникла впервые за несколько лет.. Базой пользуются сотни раз в день.... Ошибку не могу повторить.....
 

nvyush

Lotus team
22.04.2009
2 317
0
#12
При переходу в режим редактирования срабатывают события QueryModeChange (QMC) и PostModeChange (PMC). Возможно, что код в них генерит ошибку. Поставте обработчик с выводом имени функции и номером строки (GetThreadInfo(1) и Erl). Проверьте, что в полученной строке. Если сами не разберётесь, то строку "в студию".
Также стоит посмотреть события Queryrecalc & Postrecalc.
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#15
У меня была подобная ошибка.
Возникала когда я обращался к определенной записи в мультизначном поле типа так field.values(i) и рассчитывал на то что данные там таки есть. А на самом деле возникла вот какая ситуация: поле фактически есть, свойство values тоже есть, а вот значений не было.
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#18
Оно то оно, вот только LS с массивом я не нахожу....
Возможно что-то где-то в полях не то
Ну а запустить код в отладчике??? он же вывалится в месте ошибки.... ну это конечно если у тебя кнопка не в диалоге или встроенном виде.
Тогда обработай ошибки
Код:
Print GetThreadInfo( 10 ) & " >> " & GetThreadInfo( 1 ) & " (Line " & CStr(Erl) & ") "