Ошибка требуется объект

Добый день!
Опишу задачу для начала.
В карточке редактирования раздела есть вкладки конкретно "Ежегодная отчетность".
Собственно в ней два контейнера окон.
1. Это Ежегодная отчетность .
2. Это файлы что крепятся к созданным отчетам.
В принципе все работает добавляю запись в первую таблицу к ней могу крепить файлы но! Когда прицепляю файл у меня выскакивает ошибка (см. скриншот) но файлы цепляются
код инстализации вкладки "Ежегодная отчетность"

function InitializeReportingFromPartsnWindow(Window) {
        var  Wnd = wndReportingFromPartsDetail.Window;
        var Dataset = dlData.Dataset;
        var RecordID = Dataset.Values('ID');
        Wnd.Attributes('DatasetUSI') = 'ds_ReportingFromParts';
        Wnd.Attributes('ParentItemFieldName') ='PartsID';
        Wnd.Attributes('ParentItemID') = RecordID;
        Wnd.Prepare();

        var WndDataset = Wnd.ComponentsByName('dlData').Dataset;
        RefreshDetailData(Dataset, 'ID', WndDataset, 'PartsID');


        var WndFiles = wndFilesDetail.Window;
        WndFiles.Attributes('DatasetUSI') = 'ds_FileInItem';
        WndFiles.Attributes('TableUSI') = 'tbl_FileInRepotingFromParts';
        WndFiles.Attributes('InsertLinkUSI') = 'iq_FileInRepotingFromParts';
        WndFiles.Attributes('ParentItemFieldName') = 'ReportingID';
        WndFiles.Attributes('ParentItemID') = WndDataset.ValAsStr('ID');
        WndFiles.Attributes('NotifyObject') = wndReportingFromPartsDetail.Window;
        WndFiles.Attributes('ItemRightsTable') = WndDataset.SelectQuery.Items(0).FromTable.RightsTable;    
        WndFiles.Prepare();
        var WndDatasetFile = WndFiles.ComponentsByName('dlData').Dataset;

        RefreshDetailData(WndDataset, 'ID', WndDatasetFile, 'ItemID');
                if((Dataset.State==3)||((Dataset.State!=3)&&(Dataset.State!=2))){
                Wnd.ComponentsByName('btnAdd').IsEnabled = false;

        }
       
}

Нравится

7 комментариев

Здравствуйте!

Не могу посмотреть вложение - "нет прав". Можете вставить вложение прямо в пост, или опубликовать где либо на стороннем хостинге?
Лучше всего, конечно, активировать отладчик, и найти строку с ошибкой в Visual Studio.

Скорее всего она в этой строке

WndDataset.SelectQuery.Items(0).FromTable.RightsTable;

[url=http://postimg.org/image/4kphtna3f/][img]http://s17.postimg.org/4kphtna…]
Отладчик не выходит в этот момент.
WndDataset.SelectQuery.Items(0).FromTable.RightsTable; - если дело в этом то даже если эту строку убрать ошибка будет та же. У таблици отчетов нету RightsTable

Рустам, а если закомментировать всё тело функции, ошибка останется (может она и вовсе не в ней)?

Попробуйте после каждой строки написать код:

Log.Write(1, 'строка 0');
..
Log.Write(1, 'строка 1');
..
Log.Write(1, 'строка 2');

таким образом в журнале сообщений увидите какая строка кода выполнялась последней перед ошибкой.

Я думаю это нечего не даст так как этот код идет в инстализации карточки а ошибка происходит уже после ее инстализации в момент когда пытаюсь добавить файл.

В таком случае установите отладчик в функцию-обработчик события нажатия кнопки "Добавить файл" и пройдитесь построчно по коду, чтобы выяснить где ошибка.

Вы были правы ошибка именно в
WndDataset.SelectQuery.Items(0).FromTable.RightsTable; - потому что это null
Возможно ли без этого параметра ?

Спасибо за помощь решил проблему подставил родительский dataset )

Рустам, всегда пожалуйста.

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