Понадобилось добавить кнопку "Установить скидку на все продукты в счете" в воркспейс "Продукт" (wnd_OfferingDetailTreeArea) детали раздела "Счета". Решил изучить как обрабатываются события нажатий на другие кнопки воркспейса wnd_OfferingDetailTreeArea. Однако, я не нашёл ни одного привязанного к кнопкам обработчика. Кроме того, оказалось, что в "Невизуальных коммпонентах" к dlData не привязан никакой датасет.
Пожалуйста, объясните, как это всё работает? Где обработчики? Откуда подгружаются данные и куда они выгружаются при работе, если к воркспейсу не привязан датасет?
Где мне впредь искать ответы на данные вопросы? Неужели придётся каждый раз обращаться по таким вопросам на community или в тех. поддержку? Должно же это быть где-то расписано?

Нравится

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

Во-первых, wnd_OfferingsDetailTreeArea.
Обработчики там должны быть, странно. В скрипте wnd_OfferingsDetailTreeAreaScript вижу:

function btnAddRootOnClick(Control) {
	AddRootData();
}
 
function btnAddChildOnClick(Control) {
	AddChildData();
}
 
function btnCopyOnClick(Control) {
	CopyData();
}
 
function btnEditOnClick(Control) {
	EditData();
}

Датасет не привязан, поскольку эта деталь может быть в разных разделах и привязывается программно при открытии раздела.

"Зверев Александр" написал:Датасет не привязан, поскольку эта деталь может быть в разных разделах и привязывается программно при открытии раздела.

Если точнее, Датасет привязывается в скрипте Воркспейса Счетов:

if (pcDetails.ActivePage.Name == pgOfferingsDetail.Name) {
		SetAttribute(wndOfferingsDetail.Window, 'WorkspaceDataset',
			BaseWorkspace.GridDataset)
		SetAttribute(wndOfferingsDetail.Window, 'DateFieldName', 'InvoiceDate');
		SetAttribute(wndOfferingsDetail.Window, 'AccountFieldName', 'CustomerID');
		RefreshCommonDetail(BaseWorkspace, wndOfferingsDetail, 
			'InvoiceID', 'InvoiceID', 'ds_OfferingInInvoice');
}

В RefreshCommonDetail 5-ым параметром передается USI датасета, который хотите в данном случаи привязать.

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

Всем спасибо!

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