# Интерфейс и операции

## Описание раздела

Скрипты, связанные с поведением интерфейса, операциями пользователя и донастройкой действий через точки расширения.

## Скрипты

### Подтверждение удаления объекта из списка

При нажатии на кнопку **Удалить** в списке авансовых отчетов выводит модальное окно с подтверждением операции.

Скрипт показывает пример донастройки операции через точку расширения на уровне `Avi`.

Место применения: `Обозреватель проектов > нужный объект > вкладка Расширения ДО`.

Тип: JEXL-скрипт

<!-- Начало кода -->
```scala
var message = "Вы уверены, что хотите удалить этот авансовый ответ?";
var res = dialogs.showConfirmDialog(message);
if (!res) {
	raise ("Удаление отменено пользователем");
}
```
### Открытие выборки на новой вкладке с параметрами

Открывает выборку на новой вкладке и передает в нее параметры из текущего контекста.

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

В примере параметры для новой выборки берутся из текущей выборки, проверяются на заполнение и передаются в форму при открытии.

Место применения: `Обозреватель проектов > нужный объект > точка расширения операции или действия, из которого открывается новая выборка`

Тип: JEXL-скрипт

<!-- Начало кода -->
```java
var NLong = function (number) { // локальная функция для преобразования Long в NLong
    return new ("ru.bitec.app.gtk.lang.NLong", number);
};

// Получение атрибутов с текущей выборки для использования в качестве параметров
var idvGds = selection.getVar("idGds");
var idvStock = selection.getVar("idStock");

// Проверка на заполнение атрибутов
if (empty(idvGds)) {
    raise("Не найдено значение ТМЦ в текущем контексте. Ожидается атрибут idGds.");
};
if (empty(idvStock)) {
    raise("Не найдено значение склада в текущем контексте. Ожидается атрибут idStock.");
};

// Формирование карты параметров для открытия выборки
var param = {
    "flt_idGds": NLong(idvGds),
    "flt_idaStock": NLong(idvStock),
    "flt_idaStock": toString(NLong(idvStock)),
    "flt_bShowStock": 1B,
    "flt_bShowMaster": 1B,
    "flt_sGroupBy": "владельцам; складам"
};

// Открытие выборки на новой вкладке с параметрами
Stk_RevolutionListAvi.ListTurnGdsNew().newForm().params(param).open();
```
<!-- Конец кода -->
