Доступ к значениям записи раздела из окна редактирования детали

Добрый день.
Помогите разобраться с проблемой.

Есть раздел, у раздела есть деталь. Одно из полей детали - справочник. При редактировании детали необходимо осуществлять фильтрацию элементов справочника в зависимости от значений двух полей раздела.

Фильтрацию в справочнике я реализовал, передачу параметров из скрипта окна редактирования детали в датасет справочника тоже. Осталось решить такую проблему: из скрипта редактирования детали получить доступ к значениям двух полей той записи раздела, для которой открыта деталь.

Раздел самописный (называется Чеки - Drafts). Деталь раздела - товары в чеке (ItemsInDraft).
Справочник, который фильтруем - номенклатуры товаров. Его необходимо фильтровать по двум параметрам записи раздела - организации (Org) и спд (BuName)

Мой код в скрипте wnd_ItemsInDraftEditScript

function edtNomenameOnPrepareSelectWindow(LookupDataControl, SelectWindow) {
    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);
}

Нравится

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

Что-то типо этого

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 соответственно?

Спасибо, последний вариант заработал.

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