07.08.2009, 09:32 | #1 |
Участник
|
При переименованни записи в таблице 5200 Employee получаю сообщение "Поле но. 12450 не определено в таблице Сотрудник". Дебаггер не наводит на код, ссылающийся в пустоту
Просмотрел архивные базы на несколько месяцев назад - поля с этим номером в таблице не было, раньше подобной проблемы не возникало. Была мысль создать поле с таким номером произвольного типа, чтобы или получить другую ошибку с указанием конкретного места ссылки, или чтобы дебаггер хоть отловил её. Но навижен говорит, что лицензия не позволяет создать поле в этом диапазоне. Если выгружать таблицу в текст и создавать поле в текстовом файле, а затем импортировать, то тоже пишет про лицензию. Если запускать тестирование базы средствами навижен, то по моему опыту это занимает целые сутки и при этом база блокируется. На крайний случай воспользоваться можно на выходных конечно. Какие еще есть варианты? |
|
07.08.2009, 10:34 | #2 |
Участник
|
А сама таблица компилируется? Дебагером нельзя отследить, в каком месте вылетает?
|
|
07.08.2009, 10:43 | #3 |
Участник
|
А ошибка вылетает из формы или таблицы?
Может в поле выставлен TableRelation на несуществующее поле 12450. Или же может при редактировании Table5200 происходит Validate какого-нибудь поля, которое содержит неверный TableRelation. |
|
07.08.2009, 10:51 | #4 |
Участник
|
PS. В выгруженном файле в текст будет проше отыскать поле 12450
|
|
07.08.2009, 11:10 | #5 |
Участник
|
Выделите все объекты в Object Designer и откомпилируйте через F11. Где-то должно выпасть с ошибкой. Мест где идет вызов не из кода не мало. Всякие флоуфилды, свойства. Но в принципе найти можно. Тем более через выгрузку "больного" объекта
|
|
07.08.2009, 11:21 | #6 |
Участник
|
Уважаемый Fordewind!
К сожалению, если в TableRelation любого поля выставить запись типа Employee.Field12450, то он на ура все скомпилирует. А вот при переименовании записи выдаст эту самую ошибку. |
|
07.08.2009, 12:17 | #7 |
Участник
|
Цитата:
В таком случае, действительно, лучше всего выгрузить в текст все объекты и поиском... |
|
07.08.2009, 14:47 | #8 |
Участник
|
Вобщем попробовал на тестовой базе способ с перекомпиляцией всех объектов. В конце выдало сообщение "Компилятор обнаружил ошибки в объектах: 39" но все объекты оказались скомпилироваными кроме 1 моего самодельного недописанного отчета (но он никак не может участвовать в процедуре переименования записи в таблице 5200. Он должен был выводить на печать данные из совершенно иной таблицы). Сейчас его удалил,попробую еще раз перекомпилировать все оставшиеся объекты.
Спустя неск минут. Попробовал компилировать только таблицы. Нав написал, что обнаружены ошибки в 4 объектах.А как определить в каких из них??? Их же там больше тысячи. Както это помечается? И еще я думаю у меня не будут компилироваться объекты в которых объявлены переменные automation которые у меня не установлены.Я прав? |
|
07.08.2009, 15:02 | #9 |
Участник
|
VasVovec, можно попробовать поискать связи через Developer’s Toolkit Source Finder
|
|
07.08.2009, 15:35 | #10 |
Участник
|
я тулкитом обычно ищу выбирая поле и нажимая в меню Where Used. А тут каким образом искать ссылку на то, чего нет?
|
|
07.08.2009, 16:02 | #11 |
Участник
|
|
|
07.08.2009, 18:24 | #12 |
MCTS
|
Цитата:
Соотвественно по этой отметке можно фильтровать: Вид / Только отмеченные. |
|
08.08.2009, 16:40 | #13 |
Administrator
|
ошибка в 90% в каком-то поле, типа Flowfield, Lookup(Employee, WHERE(something = Field12450))
к огромнейшему сожалению она ловится только при попытке открытия таблицы (поскольку поле найти не может), но, возможно, и при переименовании. КОМПИЛЯТЫР ТАКИЕ ОШИБКИ НЕ ЛОВИТ, зараза. что делать. 1. выделить все таблицы (формы, отчеты и юниты при переименовании точно не отругаются) 2. выгрузить в ТЕКСТ 3. поискать Field12450, Поле12450, просто 12450, мать его возьми! 4. после обнаружения попытаться понять в каком это объекте 5. после обнаружения объекта, имхо, достаточно снять гайку активности в этом поле. или переделать ему лукап... по месту разберетесь. |
|
10.08.2009, 10:02 | #14 |
Участник
|
Спасибо Ivan Lapteev, apanko и Sancho узнал новые фичи Поискал Source Finder' ом текст 12450 и нашел откуда ноги растут. Внедренцы нам видимо подогнали гранулу из каких-то своих запасов, где в таблицах находятся ссылки на несуществующее в таблице 5200 поле 12450 типа Boolean. Буду их трясти теперь.
|
|