Добрый день, хочу поделиться с вами скриптом, который помогает при разработке.
В данном скрипте, написаны часто используемые и полезные функции по работе с
- Данными
- Окнами
- Бизнес процессы
- 1С
- И другие
Работа с данными
При работе с данными основными операциями являются - получить данные и записать.
Что бы каждый раз не писать для этого код, встречайте:
GetDatasetValue - для получения одного значения
GetDatasetValues - для получения множества значений
SetDatasetValue - для записи одного значения
SetDatasetValues - для записи множеств значений
Пример: необходимо получить имя контакта по его ID.
Для этого нужно написать вот такую функцию и вызвать ее.
var Dataset = Services.GetNewItemByUSI('ds_Contact');
ApplyDatasetFilter(Dataset, 'ID', ContactID, true);
Dataset.Open();
var Name = Dataset('Name');
Dataset.Close();
return Name;
}
function Main() {
var SupervisorID = '{251FB9AC-C17E-4DF7-A0CB-D591FDB97462}';
var Name = GetContactName(SupervisorID);
}
Но можно избежать написания функции GetContactName, используя GetDatasetValue,
тогда весь код для получения имени контакта станет вот таким
var SupervisorID = '{251FB9AC-C17E-4DF7-A0CB-D591FDB97462}';
var Name = GetDatasetValue('ds_Contact', SupervisorID, 'Name');
}
В GetDatasetValue написан уже код для получения значения.
Таким образом, мы сэкономили время на разработку и избавились от монотонной работы.
Для изменения контакту имени, мы будем использовать SetDatasetValue
Здесь и фильтрация по ID записи и запись значения, все в одной строке.
Работа с окнами
При работе с окнами, часто возникает необходимость подключать детали в карточку редактирования.
Для этого, разработана функция которая это делает очень легко - IncludeDetailEdit
Для примера подключим деталь договоров в карточку продажи.
Все это опишем в одном методе IncludeDetails.
var Dataset = dlData.Dataset;
var RecordID = Dataset('ID');
IncludeDetailEdit(wndContract, 'ds_Contract', 'OpportunityID', RecordID);
}
Нужно указать контейнер окна (WindowContainer) содержащий реестр договоров, датасет, поле для фильтрации договоров и ID записи по которой будем фильтровать.
Бизнес процессы
Работа каждого бизнес процесса начинается с его запуска, для этого будем использовать RunWorkflow
Запуск процесса с передачей в диаграмму контакта и контрагента.
Если вам ничего не потребуется передавать, тогда заполнять второй параметр не обязательно.
var Dataset = dlData.Dataset;
var ContactID = Dataset('ContactID');
var AccountID = Dataset('AccountID');
RunWorkflow('wd_Sales', {
'ContactID' : ContactID,
'AccountID' : AccountID
});
}
Нужно указать USI диаграммы и набор передаваемых параметров в диаграмму.
Параметры должны быть у виде объекта, где имя свойства будет равным имени параметра.
Это только маленькое описание по часто используемым функциям.