В бизнес-процессе нужно было обнулить у контрагента поле-ссылку на другого клиента, имеющее тип Id. Для этого выполнил запись в поле значения Guid.Empty. При этом поле пустым не стало, а в него записалось что-то вроде "00000-000000000-0000-00000". И все бы ничего, можно и такое значение считать пустой ссылкой. Но при слиянии этого контрагента с другим, система почему-то автоматически в поле ссылки результирующего контрагента проставила эти нули, а не вполне конкретную ссылку из второго контрагента. При этом не было даже запроса, какую из ссылок выбрать.
Вопрос: как в блоке Изменение данных бизнес-процесса записать в поле ссылки (ID) реально пустое значение?
Нравится
Илья, странно, что у Вас записалось «00000-000000000-0000-00000». Вы уверены, если посмотреть в базе, там тоже так?
Если именно так, то либо на этом поле отключена проверка целостности и в него можно писать любые Guid, либо в справочнике есть запись с Id «00000-000000000-0000-00000» и для системы такое значение не отличается от другого заполненного.
Дело в том, что в языке C# нет понятия NULL - для переменных разных типов NULL выражается по разному:
- Для справочных полей это Guid.Empty
- Для строковых полей это String.Empty
- Для полей с типом «Дата/время» это DateTime.MinValue
- Для логических полей «пустого»поля нет (нужно указывать значение false).
Но почему у Вас при вставке Guid.Empty реально в базу попал такой Guid, нужно разбираться. Если поле с ограничением целостности по связям и в справочнике такой записи нет, такого быть не должно.