Доступ к значениям записи раздела из окна редактирования детали
Добрый день.
Помогите разобраться с проблемой.
Есть раздел, у раздела есть деталь. Одно из полей детали - справочник. При редактировании детали необходимо осуществлять фильтрацию элементов справочника в зависимости от значений двух полей раздела.
Фильтрацию в справочнике я реализовал, передачу параметров из скрипта окна редактирования детали в датасет справочника тоже. Осталось решить такую проблему: из скрипта редактирования детали получить доступ к значениям двух полей той записи раздела, для которой открыта деталь.
Раздел самописный (называется Чеки - Drafts). Деталь раздела - товары в чеке (ItemsInDraft).
Справочник, который фильтруем - номенклатуры товаров. Его необходимо фильтровать по двум параметрам записи раздела - организации (Org) и спд (BuName)
Мой код в скрипте wnd_ItemsInDraftEditScript
var Dataset = LookupDataControl.DataField.LookupDataset;
var SelectQuery = Dataset.SelectQuery;
// в этих двух строчках я пытался получить нужные мне значения, но BaseGridArea.WorkspaceDataset - null
//var OrgID = GetFieldValueFromDisabledField(BaseGridArea.WorkspaceDataset, 'Org');
//var BuNameID = GetFieldValueFromDisabledField(BaseGridArea.WorkspaceDataset, 'BuName');
SetParameterValue(SelectQuery.Parameters, 'Org', OrgID);
SetParameterValue(SelectQuery.Parameters, 'BuName', BuNameID);
}
Нравится
Что-то типо этого
var OrgID = GetDatasetFieldValueByID('ds_Drafts', dlData('DraftsID'), 'Org'); var BuNameID = GetDatasetFieldValueByID('ds_Drafts', dlData('DraftsID'), 'BuName');
где 'ds_Drafts' - USI раздела Чеки
dlData - название датасета в карточке редактирования товаров в чеке
'DraftsID' - поле, связывающее товары в чеке с чеком
Мой код выглядит так
var OrgID = GetDatasetFieldValueByID('ds_SDrafts', dlData('SDraftsID'), 'Org'); var BuNameID = GetDatasetFieldValueByID('ds_SDrafts', dlData('SDraftsID'), 'BuName');
Выдает ошибку 438 "Объект не поддерживает это свойство или метод".
Попробуйте поменять так:
var OrgID = GetDatasetFieldValueByID('ds_SDrafts', dlData.Dataset('SDraftsID'), 'Org'); var BuNameID = GetDatasetFieldValueByID('ds_SDrafts', dlData.Dataset('SDraftsID'), 'BuName');
И корректно ли в переменную OrgID получать поле Org ? Может надо получать поля OrgID и BuNameID соответственно?