bpm 5.4 on-site

не присваивается идентификатор полю в карточке

В Карточке Есть поле "Контрагент". В объекте системы это соответствует "Account", в базе "AccountID".

Пишу код

Page.DataSource.ActiveRow.SetColumnValue("AccountID", firma);

либо

Page.DataSource.ActiveRow.SetColumnValue("Account", firma);

получаю следующую ошибку:

Exception Message: Значение с именем "AccountID" не найдено
Exception Type: Terrasoft.Common.ItemNotFoundException
Exception Source: Terrasoft.Core

Подскажите, пожалуйста, как исправить ошибку.

Нравится

3 комментария

Здравствуйте, Илья!
Название справочного поля в БД формируется как название поля в объекте + постфикс "Id". Именно "Id", а не "ID". То есть, правильно писать так:

Page.DataSource.ActiveRow.SetColumnValue("AccountId", firma);

если в объекте поле называется "Account".

Нет, так не работает.

Здравствуйте, Илья!
Как Вы поняли, что функция не работает? Если Вы ожидаете, что на странице изменится значение справочного поля, то Вы этого не увидите, так как Id меняется, но отображаетмое значение остается старое, новое нужно подгружать вручную, например так:

Page.DataSource.ActiveRow.SetColumnValue("AccountId", new Guid("8F2E3098-932C-49A8-8D06-B40462DA98CD"));
Page.DataSource.ActiveRow.LoadLookupDisplayValues("Account");
Показать все комментарии