04.08.2015, 15:33 | #1 |
Участник
|
Поиск источника исключения
Доброе время суток!
AX 2012, /Расчеты с поставщиками/Обычный/Заказы на покупку/Договоры покупки/Создать договор покупки, при включенной настройке ручного ввода НН, выдает такое сообщение в инфологе X++: (15:28:27) " Код договора покупки" . (15:28:27) " Код договора" . |
|
04.08.2015, 15:43 | #2 |
Гость
|
Может попробовать поставить брекпоинт в Info на метод add?
|
|
04.08.2015, 15:59 | #3 |
Участник
|
Поставил. Срабатывает 2 раза, но не понятно где. Делаю в дебаггере выход вверх, оно меня перебрасывает на метод validateWrite где, если верить тому же дебаггеру, все проверки проходят успешно.
|
|
04.08.2015, 16:07 | #4 |
Гость
|
|
|
04.08.2015, 16:20 | #5 |
Участник
|
X++: public boolean validateWrite() { boolean ret; if (countryRegion_RU) { if (purchAgreementHeader.AgreementClassification) { purchAgreementForm.formMethodDataSourceCreate(purchAgreementHeader_ds); } else { return checkFailed(strFmt("@SYS84753", fieldPName(PurchAgreementHeader, AgreementClassification))); } if (!purchAgreementHeaderExt_RU.AgreementDate) { return checkFailed(strFmt("@SYS84753", fieldPName(PurchAgreementHeaderExt_RU, AgreementDate))); } if (!purchAgreementHeaderExt_RU.checkAgreementUniqueness(purchAgreementHeader)) { return false; } } ret = super(); if (agreementHeaderDefault_ds.object(fieldNum(AgreementHeaderDefault, Project)).mandatory() && !agreementHeaderDefault.Project) { ret = checkFailed(strFmt("@SYS84753", fieldPName(AgreementHeaderDefault, Project))); } if (ret && !purchAgreementForm.formMethodDataSourceValidateWrite(purchAgreementHeader_ds)) { ret = false; } return ret; } Все поля заполнены! |
|
04.08.2015, 16:31 | #6 |
Гость
|
Если генерит инфолог на validateWrite то видимо не все нормально.
Может он возвращает в super false? |
|
04.08.2015, 16:40 | #7 |
Участник
|
Но где то же он должен записывать strFmt("@SYS84753", fieldPName(PurchAgreementHeader, AgreementClassification))
Причем точка останова на checkFailed не срабатывает. Последний раз редактировалось syl; 04.08.2015 в 16:43. |
|
04.08.2015, 16:52 | #8 |
Гость
|
Смотрим таблицу AgreementHeader которая является предком для PurchAgreementHeader:
в нем поле AgreementClassification mandatory соответственно возможен вызов infolog если не заполнено на уровне ядра с подобным сообщением. |
|
|
За это сообщение автора поблагодарили: syl (1). |
04.08.2015, 17:27 | #9 |
Участник
|
Изменил поле AgreementHeader.AgreementClassification mandatory = No. Результат тот же. Не похоже что проблема в нем. При чем данное поле заполняется в нашей форме...
|
|
04.08.2015, 17:36 | #10 |
Гость
|
Можете приложить то что видите в инфологе в дебагере:
стек вызывов и прочее.? И значения поля PurchNumberSequence таблицы PurchAgreementHeader которое обязательно к заполнению. Последний раз редактировалось axm2013; 04.08.2015 в 17:39. |
|
04.08.2015, 17:49 | #11 |
Участник
|
В кратце в PurchNumberSequence пишется произвольное значение, напр. "65498798456" (поскольку включена настройка "вручную" не имеет значения что там записано). В инфолог выводится только то что я написал выше. Ну а стек вызовов смогу предоставить завтра с утра.
|
|
05.08.2015, 10:37 | #12 |
Участник
|
Стек вызовов на info.add
X++: [c] \Classes\Info\add 1 [c] \Classes\xRecord\validateWrite [c] \Classes\FormDataSource\validateWrite [c] \Forms\PurchAgreement\Data Sources\PurchAgreementHeaderExt_RU\Methods\validateWrite 18 [c] \Classes\FormDataSource\leaveRecord [c] \Classes\FormRun\selectControl [c] \Classes\FormRun\canClose Последний раз редактировалось syl; 05.08.2015 в 10:41. |
|
05.08.2015, 10:49 | #13 |
Гость
|
Замечательно
У таблицы PurchAgreementHeaderExt_RU предок AgreementHeaderExt_RU: смотрим обязательные к заполнению поля для этой таблицы (AgreementId к примеру - это код договора). Заполнены ли они в purchAgreementHeaderExt_RU? |
|
05.08.2015, 11:15 | #14 |
Участник
|
(PurchAgreementHeader).PurchNumberSequence - наше произвольное значение, как раз и является AgreementId в AgreementHeaderExt_RU.
По сути все поля заполняются так же как и при автоматическом присвоении номера, за исключением самого номера, но если выключена опция "вручную" то все работает нормально, но значение в это поле присваивается на форме автоматически... |
|
05.08.2015, 16:53 | #15 |
Участник
|
На форме, внизу, есть кнопка закрыть. В дизайне ее нету, как узнать какие действия выполняются при ее нажатии? Можно ли отслеживать стек вызовов без точки останова, что бы проследить всю последовательность действий не зная точки входа?
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Как сделать в lookup поиск по нескольким полям | 6 | |||
Поиск набором в выпадающем списке.. | 0 | |||
"поиск" | 6 | |||
Поиск источника ошибки | 11 | |||
Поиск по подстроке | 8 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|