|  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 | |||
| 
 |