Тема: UserInfo
Показать сообщение отдельно
Старый 25.11.2019, 13:31   #8  
GSP is offline
GSP
Участник
 
34 / 10 (1) +
Регистрация: 14.10.2019
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Мда... Тут даже и не понятно с чего начинать... Ликбез по теории реляционных баз данных читать как-то глупо...

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

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

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

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

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

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

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

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

2.2. Если в Вашей таблице надо просто выбрать запись из таблицы UserInfo, то просто Lookup для выбора Id и отображение поле Name, но уже из таблицы UserInfo
Там нет пустых значений, такая ошибка выходит на выбор любого ФИО. Связь есть по id, но ошибка та же