06.12.2007, 11:49
|
#5
|
Участник
Регистрация: 28.11.2005
Адрес: Москва
|
Цитата:
Сообщение от ledenezz
Меня интересует, например таблица RpayHRMOrganization у неё есть поля CorrAccount и CorrAccount_Tax которые ссылаются на таблицу LedgerTable. Так вот можно ли проверить, есть ли такая запись в LedgerTable?
Есть стандартный механизм проверки целостности данных компании (класс SysConsistencyCheck). Для многих модулей есть проверки, реализованные с его помощью, но даже если для интересующих вас таблиц таких проверок нет, их легко приделать самостоятельно. Метод SysConsistencyCheck.kernelCheckTable() для всех полей каждой записи проверяемой таблицы вызывает метод validateField(), который в общем случае (если он не перекрыт на таблице) проверяет содержимое поля на основе relation'ов таблицы и EDT этого поля. Соотв., к примеру, если у EDT для указанных полей RpayHRMOrganization или у тех EDT, от которых EDT полей наследуются (sorry, я указанных полей не нашел, видимо, это ваши доработки), прописан relation на поле LedgerTable, то при проверке в validateField() Аксапта по значениям этих полей будет искать, согласно с relation'ам, соотв. записи в LedgerTable - и ругаться, если таковых не найдет. Примеры создания наследников SysConsistencyCheck и использования метода kernelCheckTable() вы легко найдете по перекрестным ссылкам.
|
|
За это сообщение автора поблагодарили: gefr (1), ledenezz (1). |