Цитата:
Сообщение от
Владимир Максимов
Возможные варианты:
угу. а еще есть? а можно всех посмотреть?
Цитата:
Сообщение от
Владимир Максимов
Каким образом будет построен интерфейс с пользователем, чтобы пользователь мог понять, где значение будет интерпретировано как null, а где - как указанное значение? Пусть даже пользователь и "не трогал" этого значения. Или "потрогал", но вернул назад

Вот!
Для примера возьмем MS SQL и Аксапту 2012, которые умеют отображать null значение, полученное из базы. там в поле отображается специальное значение null, а поле становится недоступным для редактирования.
В аксапте 2012 со специальным значением напряжно. Но, думаю, что надо делать поле недоступным для пользователя.
Но, опять же, хотелось бы выслушать варианты.
Цитата:
Сообщение от
Владимир Максимов
Вообще-то, мне приходит в голову только один вариант на подобный случай. Это когда речь идет о полях, которые пользователь изменить не может. Максимум посмотреть. Та же контрольная сумма. Но это значит, что речь идет о неких расчетных значениях, которые, очевидно, зависят от других реквизитов. Так может, можно эти самые "другие реквизиты" и использовать как признак значения NULL?
другие реквизиты могут находится за тысячу
километров таблиц от данного места и метода, где пара значений применяется. я уже приводил примеры
"если для данного клиента включен контроль кредитного лимита, то спросить и хранить этот кредитный лимит"
Цитата:
Сообщение от
Владимир Максимов
Очень ограниченно можно использовать (prmIsDefault() == 1) как признак того, что параметр передан не был. Т.е. интерпретировать это как передачу null.
не совсем.
чтобы срабатывал prmIsDefault в вызывающем классе параметр не должен быть указан.
если же у нас есть каскад методов с параметрами по-умолчанию, то параметр отсутствует только в самом внешнем. остальные передают тот параметр, который получили. и в каскаде prmIsDefaul сработает только один раз в каскаде.
Цитата:
Сообщение от
Владимир Максимов
В среде Axapta значение NULL физически может быть сохранено в переменной типа ComVariant.
Ну... Насколько я помню он не pack/unpack-совместимый.
И как он передается между клиентом и сервером?