Не работает деталь Напоминания

Перестала работать деталь Напоминания во всех разделах. Напоминание создается, но при появлении окна напоминания возникает ошибка

Ошибка выполнения метода 'wnd_RemindingsOnShow'. Разрушительный сбой

Метод совершенно не менялся:

function wnd_RemindingsOnShow(Window) {
        Initialize();
        Connector.Attributes.Values('RemindingsWindow') = Window;
        Self.FocusedControl = btnRemind;
}



function InitializeGlobalVariables() {
        Remindings.ContactID = GetAttribute(Self, 'ContactID');
}

function InitializeDataset() {
    dlData.Dataset.FetchRecordsCount = -1;
        Remindings.GridDataset = dlData.Dataset;
        Remindings.IntervalDataset = dlRemindInterval.Dataset;
        Remindings.GridDataset.Close();
        Remindings.GridDataset.Open();
        Remindings.IntervalDataset.Open();
}

function Initialize() {
        InitializeDataGridExport(grdData);
        InitializeGlobalVariables();
        InitializeDataset();
}

Нравится

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

Лена, запрос sq_Remindings не изменяли?
Вложите, пожалуйста, сервисы sq_Remindings, ds_Remindings.

В sq_Remindings добавила один Select для нового раздела Registrations
qq

Пытаюсь создать напоминание для раздела как в Задачах.

Добавлен код в src_Remindings

function OpenWorkspaceWindow() {
	if (IsDatasetEmpty(Remindings.GridDataset)) {
		return;
	}
	var SubjectTypeID =
		GetFieldValueFromDisabledField(Remindings.GridDataset, 'SubjectTypeID');
	var SubjectID =
		GetFieldValueFromDisabledField(Remindings.GridDataset, 'SubjectID');
	switch (SubjectTypeID) {
		case rst_Account: 	
			GotoWorkspace('wnd_AccountsWorkspace', SubjectID);
			break;		
		case rst_Document:		
			GotoWorkspace('wnd_DocumentsWorkspace', SubjectID);
			break;
		case rst_Task:      
			GotoWorkspace('wnd_TasksWorkspace', SubjectID);
			break;
		case rst_Contact:    
			GotoWorkspace('wnd_ContactsWorkspace', SubjectID);
			break;				
		...
//New
		case rst_Registrations:
			GotoWorkspace('wnd_RegistrationsWorkspace', SubjectID);
			break;
 
	}
} 
 
function OpenEditWindow() {
	if (Remindings.GridDataset.IsEOF) {
		return
	}
	var SubjectTypeID =
		GetFieldValueFromDisabledField(Remindings.GridDataset, 'SubjectTypeID');
	var EditWindowUSI;
	switch (SubjectTypeID) {
		case rst_Account: 
			EditWindowUSI = 'wnd_AccountEdit';
			break;		
		case rst_Document:		
			EditWindowUSI = 'wnd_DocumentEdit';			
			break;
		case rst_Task:
			EditWindowUSI = 'wnd_TaskEdit';			
			break;				
		case rst_Contact:
			EditWindowUSI = 'wnd_ContactEdit';			
			break;				
		...
//New
		case rst_Registrations:
			EditWindowUSI = 'wnd_RegistrationsEdit';
			break;
		//end
	}
	var Attributes = GetNewDictionary();
	var RecordID =
		GetFieldValueFromDisabledField(Remindings.GridDataset, 'SubjectID');
	Attributes('RecordID') = RecordID;
/* MODULE WORKFLOW */
	if (SubjectTypeID == rst_Task) {
    	if (!Assigned(Remindings.WorkflowEngine)) {
			Remindings.WorkflowEngine = Connector.Attributes(WorkflowEngineAttrName);
		}
		var WorkflowEngine = Remindings.WorkflowEngine;
		if (!Assigned(Remindings.TasksDataset)) {
			Remindings.TasksDataset = Services.GetNewItemByUSI('ds_Task');
		}
		var Dataset = Remindings.TasksDataset;
		Dataset.Close();
		ApplyDatasetFilter(Dataset, 'ID', RecordID, true);
		Dataset.Open();
		try {
        	var WorkflowItemID = Dataset.Values('WorkflowItemID');
			var IsFinish = Dataset.ValAsBool('StatusIsFinish');
			if ((!IsEmptyGUID(WorkflowItemID)) && (!IsFinish)) {
				WorkflowEngine.ProcessWorkflowItem(WorkflowItemID);
				return;
			}
		}
		finally {
			Dataset.Close();
		}
	}  
 
//New
  else
		if (SubjectTypeID == rst_Registrations) {
    	if (!Assigned(Remindings.WorkflowEngine)) {
			Remindings.WorkflowEngine = Connector.Attributes(WorkflowEngineAttrName);
		}
	var WorkflowEngine = Remindings.WorkflowEngine;
		if (!Assigned(Remindings.RegistrationsDataset)) {
			Remindings.RegistrationsDataset = Services.GetNewItemByUSI('ds_Registrations');
		}
	var Dataset = Remindings.RegistrationsDataset;
		Dataset.Close();
		ApplyDatasetFilter(Dataset, 'ID', RecordID, true);
		Dataset.Open();
		try {
        	var WorkflowItemID = Dataset.Values('WorkflowItemID');
			var IsFinish = Dataset.ValAsBool('StatusIsFinish');
			if ((!IsEmptyGUID(WorkflowItemID)) && (!IsFinish)) {
				WorkflowEngine.ProcessWorkflowItem(WorkflowItemID);
				return;
			}
		}
		finally {
		Dataset.Close();
		}
	}
 
 
function AddRemindingReferenceMenuItem(ActionMenu, OnExecuteMethodName) {
   	if (IsDatasetEmpty(Remindings.GridDataset)) {
		return;
	}
   	var WorkspaceWindowUSI;
   	var ReferenceCaption;
   	var DatasetKeyFieldName = 'SubjectID';
	var SubjectTypeID = Remindings.GridDataset.Values('SubjectTypeID');
	switch (SubjectTypeID) {
		case rst_Account:
			WorkspaceWindowUSI = 'wnd_AccountsWorkspace';
			ReferenceCaption = "Контрагент";
			break;
		case rst_Document:
            WorkspaceWindowUSI = 'wnd_DocumentsWorkspace';
			ReferenceCaption = "Документ";
			break;
		case rst_Task:
		    WorkspaceWindowUSI = 'wnd_TasksWorkspace';
			ReferenceCaption = "Задача";
			break;
 
		...
//New
		case rst_Registrations:
			WorkspaceWindowUSI = 'wnd_RegistrationsWorkspace';
			ReferenceCaption = "Регистрации";
			break;
 
	}

А у вас в новой ветке sq полностью совпадает список полей и наличие у них галочек "всегда выбирать в запросе"? Может, это проявление этой проблемы?
union
В других ветках случайно нет поля AccountName, как у меня на скриншоте?

Во всех Union большинство имен полей повторяются, (так было прописано первоначально), в моем Union все галочки "всегда выбирать в запросе" сняты

А должны быть не все сняты, сравните с другой ветвью и сделайте так же. И набор названий полей, и галочки.

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

Это тоже может быть, но к свалу приводить не должно.

5 раз проверила все галочки и фильтры. Происходит следующее:
При создании напоминания из карточки редактирования Задачи, все ок. Если в любом разделе создать напоминание через деталь Напоминание, снова разрушительный сбой

В новой ветви sq_Remindings есть поле AccountName?

AccountName нету
111

А в других ветках есть?

Попробуйте поменять код подзапроса с "RegistrationsSelect" на "tbl_Registrations"

в других ветках не везде есть, но все таки дополнительно прописала поле AccountName. В новом разделе по-прежнему Ошибка выполнения метода 'wnd_RemindingsOnShow'. Разрушительный сбой
В остальных разделах все ок

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

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