|  27.11.2006, 14:41 | #1 | 
| Участник | 
			
			NAV 3.6 Таблица 5717 Item Cross Reference поле Cross-Reference Type No. Тригер Cross-Reference Type No. - OnValidate() Стоит код Код: IF ("Cross-Reference Type No." <> '') AND
   (("Cross-Reference Type" = "Cross-Reference Type"::" ") OR
   ("Cross-Reference Type" =  "Cross-Reference Type"::"4"))
THEN"Cross-Reference Type"::"3". Обнаружил, что система не ругается на любое число "Cross-Reference Type"::"N". Нормлаьно компилится и работает. Вопрос: 1) В NAV > 3.6 сколько значений принимает "Cross-Reference Type" 2) В NAV > 3.6 - код на вышеупомянутом тригере такой же, как и у меня? | 
|  | 
|  27.11.2006, 15:04 | #2 | 
| Участник | 
			
			в 4.0 у меня тоже 4 значения, только этот код стоит на триггере OnRename
		 | 
|  | 
|  27.11.2006, 15:13 | #3 | 
| Moderator | 
			
			В Navision поле типа Option представляет собой обычное поле типа Integer, а сама реализация напоминает нумерованные множества (enum) в C++. Каждой цифре начиная с 0 соответствует текст, прописанный в свойствах поля и хранящийся в таблице Object.  Различные сравнения типа Field.Pole::"Option" в конечном счете приводятся к сравнению чисел. Поэтоиу "Cross-Reference Type"::"4" - это просто цифра 4. А по поводу ошибки - видимо в компиляторе нави не сделали проверки на диапазон допустимых значений Option-поля. Под option в компиляторе выделено всего два байта, поэтому записать туда число >65535 не получится. Но напрямую в таблице SQL это значение можно выставить любым - там доступно 4 байта | 
|  | 
|  27.11.2006, 15:22 | #4 | 
| Участник | 
			
			Понял. Всем спасибо.... | 
|  |