При попытке получения значения OwnerID таблицы контактов выскакивает ошибка
При попытке получения значения OwnerID таблицы контактов выскакивает ошибка:
Ошибка выполнения метода 'ButtonOnClick'. Поле 'Ответственный' не активно «Call Stack»
При нажатии на кнопку на панели реестра записей раздела "Контрагенты" вызывается следующая функция, в которой выскакивает эта ошибка:
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 выделенной записи?
Нравится
"Кошкаров Андрей Викторович" написал: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 было активно свойство "всегда выбирать в запросе".