Всем добрый день! Появился такой вопрос. Есть 2 аналогично реализованных функционала контрагент -> Деталь "История" и контакт -> Деталь "История". Но работают они по разному, скажу больше деталь контакта не работает. По логике не должны отображаться кнопки добавить, копировать, изменить и удалить, так как данные в sql запросе просто вытягиваются из всех возможных мест (задачи, воздействия и т.д.), но на деле кнопки подтягиваются, но при нажатии на "добавить" вылетает не обработанное исключение. Причём всё это отлично работает с контрагентами. Может кто сталкивался с данной проблемой. Буду рад любой помощи.
Заранее спасибо!!

Нравится

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

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.

Неплохо было бы указать точную версию террасофта.
Не знаю помогла ли вам на этот момент техподдержка, но так как окно унаследовано от стандартного грида, то в нем есть кнопки. Чтобы эти кнопки не отображались, окну надо присвоить свойство
HideButtonsFrame (его можно присвоить на onPrepare самого грида или на RefreshDetails воркспейса контактов)

SetAttribute(Window, 'HideButtonsFrame', true);

Тогда кнопки отображаться не будут.

Но вон у вас на втором скрине дебаггер вылез. Открыли visual studio и она покажет в какой строчке именно ошибка, а там может быть все что угодно и надо уже смотреть, так что если это не поможет и сами не разберетесь, тогда к техпому.

"Сазанов Александр Владимирович" написал:

Неплохо было бы указать точную версию террасофта.

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

HideButtonsFrame (его можно присвоить на onPrepare самого грида или на RefreshDetails воркспейса контактов)

SetAttribute(Window, 'HideButtonsFrame', true);

Тогда кнопки отображаться не будут.

Но вон у вас на втором скрине дебаггер вылез. Открыли visual studio и она покажет в какой строчке именно ошибка, а там может быть все что угодно и надо уже смотреть, так что если это не поможет и сами не разберетесь, тогда к техпому.

3.4.1.145 - версия Террасофта.
По поводу кнопок: не понятно как должно быть точно, ведь в детали контрагента кнопок нет, а ошибка валится при нажатии на кнопку, хотя к кнопке даже edit window не привязан

Кнопок быть не должно и логики, соответственно, на них никакой нет.

В базовой версии упомянутый Александром параметр передается реестру детали в методе RefreshContactHistoryDetail():

function RefreshContactHistoryDetail() {
	var DetailWindow = wndContactHistoryDetail.Window;
	var DetailDataset = DetailWindow.ComponentsByName('dlData').Dataset;
	if (!DetailWindow.Attributes('InitializeFlag')) {
		SetAttribute(DetailWindow, 'HideButtonsFrame', true);
		var SelectCall = DetailDataset.SelectQuery.ItemsByCode('SelectCall');
		if (!Connector.Attributes('HasCallLicense')) {
			DetailDataset.SelectQuery.Remove(SelectCall);
		}
	}
	RefreshCommonDetail(BaseWorkspace, wndContactHistoryDetail, 
		'ContactID', 'ContactID');
}

Который вызывается при фокусировке на детали История в методе RefreshDetails():

	if (pcDetails.ActivePage.Name == pgContactHistoryDetail.Name) {
		RefreshContactHistoryDetail();
	}
Показать все комментарии