08.11.2011, 16:09 | #1 |
Участник
|
Ax2009 Процедура создания времен
Создала время и нажала обновить табель. Но вместо маленькой буквы поставила большую. Переименовала время, чтобы с маленькой буквы. Изменила в таблице RPayTblTrans время тоже на маленькую букву. И теперь в методе таблицы
transdayHour он не может определить fieldId, хотя название поля он ищет правильно. Уже и откомпилировала, синхронизировала. Не видит он поле с конкретно этим кодом. Почему так? |
|
08.11.2011, 16:45 | #2 |
Модератор
|
Попробуйте удалить поле и создать заново.
С Уважением, Георгий |
|
08.11.2011, 16:48 | #3 |
Участник
|
Было, с тем же названием создала и не вышло. Удалила этот тайм и без него считаю. Другой тайм не видит. Причем какие-то таймы у него созданные нормально определяются, а другие нет.
Последний раз редактировалось Arahnid; 08.11.2011 в 16:58. |
|
08.11.2011, 16:59 | #4 |
Участник
|
Попробуйте следующее :
Надо в коде перевыбрать поле. Компиляции не достаточно. Ну т.е. если стоит в Коде X++: InventTable.MyField = ........ X++: InventTable.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
08.11.2011, 17:06 | #5 |
Участник
|
X++: fieldId = _payDayHourCalc == RPayDayHourCalc::Day ? fieldname2id(tablenum(RPayTblTrans), #DayFieldPrefix + _payTblTimeCode) : fieldname2id(tablenum(RPayTblTrans), #TimeFieldPrefix + _payTblTimeCode); |
|
08.11.2011, 17:32 | #6 |
Участник
|
Цитата:
Сообщение от Arahnid
X++: fieldId = _payDayHourCalc == RPayDayHourCalc::Day ? fieldname2id(tablenum(RPayTblTrans), #DayFieldPrefix + _payTblTimeCode) : fieldname2id(tablenum(RPayTblTrans), #TimeFieldPrefix + _payTblTimeCode);
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
08.11.2011, 17:41 | #7 |
Участник
|
Это стандартный код программы. Только что-то он у меня не срабатывает
|
|
08.11.2011, 18:05 | #8 |
Участник
|
Попробуйте еще такое :
1) Во- первых почистите КЭШ. 2) Если там есть fieldid, значит там должно быть что-то типа this.(fieldid); Здесь выдает ошибку? Сравните через дебаггер fieldid в коде и с реальным fieldid в таблице через репозитарий объектов в свойствах поля. Попробуйте здесь this.(fieldid); проделать ту же процедуру, о которой я говорил раньше. 3)Можно еще попробовать закомментить весь метод и все тоже самое написать ниже, таким образом просто перекинув его на USR слой. 4)А что произойдет если вы вернете Большую букву?
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
08.11.2011, 18:11 | #9 |
Участник
|
4) Оказалось что дело не только в том времени. Так что большая буква не причем.
2) Да здесь 3) не помогло 1 буду пробовать |
|
08.11.2011, 18:14 | #10 |
Участник
|
Попробуйте еще такое
X++: if (_payTblTimeCode== 'MyField') fieldId = _payDayHourCalc == RPayDayHourCalc::Day ? fieldname2id(tablenum(RPayTblTrans), #DayFieldPrefix + 'MyField') : fieldname2id(tablenum(RPayTblTrans), #TimeFieldPrefix + 'MyField'); else fieldId = _payDayHourCalc == RPayDayHourCalc::Day ? fieldname2id(tablenum(RPayTblTrans), #DayFieldPrefix + _payTblTimeCode) : fieldname2id(tablenum(RPayTblTrans), #TimeFieldPrefix + _payTblTimeCode);
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 08.11.2011 в 18:17. |
|
08.11.2011, 19:58 | #11 |
Участник
|
кэш не помог, а последнее тоже не видит fieldId
Причем не видит только 2 тайма из всех созданных Я удалила тайм, а он его все равно тянет и говорит, что не нашел. В таблице нет, через собственно базу - поля нет. Откуда он его взял в RPayTblTrans? Кэш чистила. Последний раз редактировалось Arahnid; 08.11.2011 в 20:34. |
|
08.11.2011, 20:56 | #12 |
Участник
|
У меня есть подозрения, что Ваше созданное поле залегло еще в какой-то таблице(map-e), кроме RPayTblTrans. Или еще куда прописался его идентификатор(Имя). Надо найти. Ведь в этот метод Ахарта может попадать откуда угодно. Попробуйте стандартным поиском поискать его(по названию), хотя бы в таблицах(map-ах) семейства Rpay.....
Хотя, я бы, не пожалел времени и поискал по всему репозитарию. P.S. Предположим в таблице последний идентификатор поля на USR слое был 10. Вы решили создать новое поле. Создали. Его идентификатор будет 11. Логично. Но, если Вы удалили это поле( с идентификатором 11) и вдруг захотели создать новое поле, идентификатор у нового поля будет уже 12.Таким образом образовалась дырка между 10 и 12.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 08.11.2011 в 21:32. |
|
08.11.2011, 22:55 | #13 |
Участник
|
Ответ оказался до глупости прост. Подняла код и выяснилось, что каким -то странным образом при переносе строк счетчиков именно данное время как - то странно встало в значение. После его перевыбора в счетчиках это заработало. Странно конечно, эксель между тем что было и тем что я перевыбрала разницы не показывает, а Аксапте приятно.
Последний раз редактировалось Arahnid; 08.11.2011 в 22:57. |
|
Теги |
расчеты с персоналом |
|
|