Тема: UserInfo
Показать сообщение отдельно
Старый 25.11.2019, 09:46   #7  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,654 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Мда... Тут даже и не понятно с чего начинать... Ликбез по теории реляционных баз данных читать как-то глупо...

Ну, для начала, сообщение об ошибке надо понимать буквально. Вот, что написано, то и есть. У Вас в Вашей таблице среди записей есть поле с пустым значением Вашего поля. По этому пустому значению предпринимается попытка найти запись в подчиненной таблице. Ничего не находит, и выводит соответствующее предупреждение.

Как так получилось - Вам лучше знать. Ищите, где такая пустота образовалась. Можно, конечно, разными настройками подавить это сообщение, но!

Так связь между таблицами не делают. В теории (и практике) реляционных баз данных связь между таблицами осуществляют по специальным полям, на которые накладывают специфические ограничения. Прежде всего, по уникальности. А у таблицы UserInfo поле Name не уникально. Т.е. связь не однозначна

Вторая проблема - поле Name может быть в любой момент изменено. Как следствие, Вы потеряете связь. Т.е. совершенно непредсказуемо для пользователя образуется связь с "левой" записью таблицы или наоборот, такая связь пропадет

Поэтому, делают следующим образом.

1. В Вашей таблице в обязательном порядке создают поле Id с кодом записи из таблицы UserInfo.

2. Заполнение поля Id
2.1 Если значение поля Name приходит "из вне" системы, то при вводе имени в modifiedField выполняют поиск записи в таблице UserInfo по указанному пользователем имени и программно заполняют поле id

В результате имеем 2 поля - значение пришедшие из вне для контроля и код записи справочника Axapta

2.2. Если в Вашей таблице надо просто выбрать запись из таблицы UserInfo, то просто Lookup для выбора Id и отображение поле Name, но уже из таблицы UserInfo
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: GSP (1).