Значения по умолчанию полей карточки редактирования

Здравствуйте! Прошу помощи. Я новичок в CRM и у меня возникла проблема в создании функционала. Дело вот в чем: Есть стандартная карточка редактирования "Задачи". Я изменил её, сделав некоторые поля не доступными в зависимости от типа задачи, вот функция:

function SetTaskTypePrepare() {
var Account = Self.ComponentsByName('edtAccount');
var Contact = Self.ComponentsByName('edtContact');
var Opportunity = Self.ComponentsByName('edtOpportunity');
var Invoice = Self.ComponentsByName('edtInvoice');
var Document = Self.ComponentsByName('edtDocument');
var Contract = Self.ComponentsByName('edtContract');
var Report = Self.ComponentsByName('frmReport');
var PercentDue = Self.ComponentsByName('edtPercentDue');
var ActualStartDate = Self.ComponentsByName('edtActualStartDate');
var ActualFinishDate = Self.ComponentsByName('edtActualFinishDate');
var ActualDurationStr = Self.ComponentsByName('edtActualDurationStr');
var FrameGroup9 = Self.ComponentsByName('FrameGroup9');
var Author = Self.ComponentsByName('edtAuthor');
var Result = Self.ComponentsByName('edtResult');
var DetailedResult = Self.ComponentsByName('mmDetailedResult');
var StatusID1 = '{F598ECDB-4EEF-4FA8-9E69-A36B053501E5}';
var TypeID = '{CED7CC70-81CB-4AB1-A9F2-521998B14723}';
var TypeIDMeeting = '{63FB4E89-EE75-404F-8352-1E712AC909F6}';
if ((dlData.Dataset.Values('TypeID') == TypeID) || (dlData.Dataset.Values('TypeID') == TypeIDMeeting)) {
Account.IsEnabled = false;
Contact.IsEnabled = false;
Opportunity.IsEnabled = false;
Invoice.IsEnabled = false;
Document.IsEnabled = false;
Contract.IsEnabled = false;
PercentDue.IsEnabled = false;
ActualStartDate.IsEnabled = false;
ActualFinishDate.IsEnabled = false;
ActualDurationStr.IsEnabled = false;
FrameGroup9.IsEnabled = false;
Author.IsEnabled = false;
Report.IsEnabled = true;
Result.IsEnabled = true;
DetailedResult.IsEnabled = true;
} else {
Account.IsEnabled = true;
Contact.IsEnabled = true;
Opportunity.IsEnabled = true;
Invoice.IsEnabled = true;
Document.IsEnabled = true;
Contract.IsEnabled = true;
PercentDue.IsEnabled = true;
ActualStartDate.IsEnabled = true;
ActualFinishDate.IsEnabled = true;
ActualDurationStr.IsEnabled = true;
FrameGroup9.IsEnabled = true;
Author.IsEnabled = true;
Report.IsEnabled = false;
if (dlData.Dataset.Values('StatusID') == StatusID1) {
Result.IsEnabled = true;
DetailedResult.IsEnabled = true;
} else {
Result.IsEnabled = false;
DetailedResult.IsEnabled = false;
}
}
}

Эта функция вызывается в событии OnPrepare окна редактирования. Работает все отлично, если вызывать окно редактирования стандартной кнопкой "Добавить" под гридом. Но стоит задача, сделать вызов этого окна редактирования из другого раздела (Квартиры - новый раздел). Вот, что я сделал:

function CreateTaskCall() {
var EditWindowUSI = 'wnd_TaskEdit';
var TypeID = '{CED7CC70-81CB-4AB1-A9F2-521998B14723}';
var Attributes = GetNewDictionary();
Attributes.Add('NotifyObject', Self);
var DefaultValues = GetNewDictionary();
var PriorityID = '{F6E5132C-BFC4-48E4-832B-0A60BBF6FC57}';
var StatusID = '{F598ECDB-4EEF-4FA8-9E69-A36B053501E5}';
var DwellingID = '{1E1C4BCB-6730-492A-BB38-4E5A4035EAE4}';
var GenderID = '{4D1769C4-7AB2-4F1A-A227-B0C922412A7C}';
var RoomsID = '{B1837FB0-6B28-4021-A1B7-4DFE0EC6CBAF}';
var FormPaymentID = '{F304FD41-2637-4F30-A4C1-DBD0D6F5BE51}';
/*DATE MODULE*/
var DateWithTime = GetLocalDateTime();//new Date().getTime();
DateWithTime = DateWithTime + 270000;
var DT = new Date(DateWithTime);
DateWithTime = DT.getVarDate(DateWithTime);
DefaultValues.Add('TypeID', TypeID);
DefaultValues.Add('PriorityID', PriorityID);
DefaultValues.Add('StatusID', StatusID);
DefaultValues.Add('DwellingID', DwellingID);
DefaultValues.Add('GenderID', GenderID);
DefaultValues.Add('RoomsID', RoomsID);
DefaultValues.Add('FormPaymentID', FormPaymentID);
DefaultValues.Add('DueDate', DateWithTime);
ShowEditWindowEx(EditWindowUSI, Attributes, DefaultValues);

Эта функция вызывается кликом по нужной строке в меню действия из раздела Квартиры.

Проблема: При открытии окна из меню раздела Квартиры, поля "Результат" (edtResult) и "Результат подробно" (mmDetailedResult) остаются недоступными (по задумке их должен редактировать пользователь), хотя если открыть эту карту стандартной кнопкой "Добавить", то все работает нормально. Прикладываю скрины.

Нравится

1 комментарий

Разобрался, ошибка была в функции TaskEditOnPrepare, просто строки надо было поменять местами :lol:

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