При попытке получения значения OwnerID таблицы контактов выскакивает ошибка

При попытке получения значения OwnerID таблицы контактов выскакивает ошибка:
Ошибка выполнения метода 'ButtonOnClick'. Поле 'Ответственный' не активно «Call Stack»

При нажатии на кнопку на панели реестра записей раздела "Контрагенты" вызывается следующая функция, в которой выскакивает эта ошибка:

function ButtonOnClick(Control) {
var Dataset = dlData.Dataset
var RecordID = Dataset.Values('ID');
var OwnerID = Dataset.Values('OwnerID');
ShowWarningDialog(OwnerID);    
var AccessDataset = GetItemRightsDatasetByItemDataset(Dataset)
UpdateParentItemRights(RecordID, OwnerID, AccessDataset, true);
}

Эта функция выполняет добавление права доступа на выделенную запись реестра записей раздела Контрагента для Ответсвенного в выбранной записи. Он должен потом появиться на детали "Доступ".

Подскажите в чем проблема, почему я не могу получить OwnerID выделенной записи?

Нравится

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

"Кошкаров Андрей Викторович" написал:var OwnerID = Dataset.Values('OwnerID');

вот это заменяете на

var OwnerID = GetFieldValueFromDisabledField(Dataset, 'OwnerID');

функция GetFieldValueFromDisabledField описана в scr_DB

ООО "Лайнсервис"
www.ls-crm.ru

Дело в том, что список полей запросе для датасета создается динамически, в реестре у Вас, очевидно, не отображается значение поля "Ответственный", поэтому сформированный датасет просто не содержит этого поля ("Поле 'Ответственный' не активно"). Кстати, если в запросе данного датасета для OwnerID поставить галку "Всегда выбирать в запросе" то можно пользоваться будет и методом Dataset.Values('OwnerID'), так как поле будет включаться в запрос всегда

[update] если из контрагентов обращение идет - тогда либо, как верно заметил Сергей, поставить галку в sq_Contact, либо пользоваться упомянутой мной функцией

ООО "Лайнсервис"
www.ls-crm.ru

Проверьте чтобы в запросе на поле OwnerID было активно свойство "всегда выбирать в запросе".

Спасибо за помощь. Заработало :)

Показать все комментарии