Добый день!
Опишу задачу для начала.
В карточке редактирования раздела есть вкладки конкретно "Ежегодная отчетность".
Собственно в ней два контейнера окон.
1. Это Ежегодная отчетность .
2. Это файлы что крепятся к созданным отчетам.
В принципе все работает добавляю запись в первую таблицу к ней могу крепить файлы но! Когда прицепляю файл у меня выскакивает ошибка (см. скриншот) но файлы цепляются
код инстализации вкладки "Ежегодная отчетность"
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;
}
}
Нравится
Здравствуйте!
Не могу посмотреть вложение - "нет прав". Можете вставить вложение прямо в пост, или опубликовать где либо на стороннем хостинге?
Лучше всего, конечно, активировать отладчик, и найти строку с ошибкой в 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 )