# Отсутствует включение безопасного режима перед вызовом метода "Выполнить" или "Вычислить"

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

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

## Неправильно

```bsl
Выполнить(Алгоритм);
```

```bsl
Вычислить(Алгоритм);
```

## Правильно

```bsl
УстановитьБезопасныйРежим(Истина);
Выполнить(Алгоритм);
```

```bsl
УстановитьБезопасныйРежим(Истина);
Вычислить(Алгоритм);
```

В режиме сервиса:

```bsl
УстановитьБезопасныйРежим(Истина);

Для каждого ИмяРазделителя Из РазделителиКонфигурации() Цикл
    УстановитьБезопасныйРежимРазделенияДанных(ИмяРазделителя, Истина);
КонецЦикла;

Выполнить(Алгоритм);
```

```bsl
УстановитьБезопасныйРежим(Истина);

Для каждого ИмяРазделителя Из РазделителиКонфигурации() Цикл
    УстановитьБезопасныйРежимРазделенияДанных(ИмяРазделителя, Истина);
КонецЦикла;

Вычислить(Алгоритм);
```

При использовании в конфигурации Библиотеки стандартных подсистем, следует использовать:

```bsl
ОбщегоНазначения.ВыполнитьВБезопасномРежиме()
```

```bsl
ОбщегоНазначения.ВычислитьВБезопасномРежиме()
```

Вместо формирования строки вызова метода модуля и передачи ее в Выполнить:
```bsl
ОбщегоНазначения.ВыполнитьМетодКонфигурации()
```

```bsl
ОбщегоНазначения.ВыполнитьМетодОбъекта()
```

При использовании в конфигурации Библиотеки стандартных подсистем версии, меньшей чем 2.4.1, следует использовать:


```bsl
РаботаВБезопасномРежиме.ВыполнитьВБезопасномРежиме()
```

```bsl
РаботаВБезопасномРежиме.ВычислитьВБезопасномРежиме()
```

Вместо формирования строки вызова метода модуля и передачи ее в Выполнить:
```bsl
РаботаВБезопасномРежиме.ВыполнитьМетодКонфигурации()
```

```bsl
РаботаВБезопасномРежиме.ВыполнитьМетодОбъекта()
```

## См.
[Ограничения на использование Выполнить и Вычислить на сервере](https://its.1c.ru/db/v8std#content:770:hdoc:2)
