# lead.assignDialogToNextOperator()

### Назначить диалог на следующего оператора

```JavaScript
lead.assignDialogToNextOperator(string|null $departmentCode = null, bool $isOnline = true, bool $isForwardIfOperatorNotFound = true, bool $useLocks = true)
```

##### Описание:

Назначает диалог на следующего оператора полученного с помощью **getNextOperators**.

Варианты откуда может запускаться:  
\- оператор сам подключился к КЦ и в системном скрипте есть вызов данной функции - игнорируем ее вызов;  
\- функцию вызвали в другом скрипте и она также есть в системном скрипте - игнорируем ее вызов только из системного скрипта;  
\- функцию вызвали в системном скрипте - не игнорируем ее вызов.

Если вызываем функцию из системного скрипта перевода на оператора, то данная функция не выполняет перевод (так как он уже выполнен на момент запуска функции) и также не запускает системный скрипт (так как он уже запущен на момент запуска функции) - для этого есть внутренние механизмы отслеживания, откуда запущена функция, и по сути это исключает рекурсивный запуск функций, для этого и введена новая функция bot / lead.canAutoForward на самом деле выполнять данную проверку canAutoForward смысла нет, так как она выполняется автоматически внутри функций назначения оператора и автоматом отсечет рекурсивный вызов, но где может понадобиться использование canAutoForward - это для написания JavaScript условия - нужно ли отсылать уведомление лиду, о том что скрипт перевод на оператора: пример вызываем назначение на оператора в обычном скрипте, и в этом же скрипте уведомляем о то, что мы перевели на оператора, тогда при запуске системного скрипта Перевод на оператора вывод такого же сообщения нужно исключить.

##### Атрибуты:

<table border="1" id="bkmrk-%D0%98%D0%BC%D1%8F-%D0%A2%D0%B8%D0%BF-%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-key-0" style="border-collapse: collapse; width: 100%; height: 139.806px;"><tbody><tr style="height: 29.7917px; background-color: #ced4d9;"><td style="width: 33.2909%; height: 29.7917px;">Имя</td><td style="width: 33.2909%; height: 29.7917px;">Тип</td><td style="width: 33.2948%; height: 29.7917px;">Описание</td></tr><tr style="height: 29.7917px;"><td style="width: 33.2909%; height: 29.7917px;">departmentCode </td><td style="width: 33.2909%; height: 29.7917px;">string</td><td style="width: 33.2948%; height: 29.7917px;">Код отдела</td></tr><tr style="height: 29.537px;"><td style="width: 33.2909%; height: 29.537px;">isOnline </td><td style="width: 33.2909%; height: 29.537px;">bool </td><td style="width: 33.2948%; height: 29.537px;">Должны ли операторы быть онлайн</td></tr><tr style="height: 21.1482px;"><td style="width: 33.2909%; height: 21.1482px;">isForwardIfOperatorNotFound</td><td style="width: 33.2909%; height: 21.1482px;">bool</td><td style="width: 33.2948%; height: 21.1482px;">Продолжить если оператор не найден</td></tr><tr style="height: 29.537px;"><td style="width: 33.2909%; height: 29.537px;">useLocks </td><td style="width: 33.2909%; height: 29.537px;">bool </td><td style="width: 33.2948%; height: 29.537px;">Использовать ли блокировки</td></tr></tbody></table>

##### Возвращает:

**int** - оператора

или

**null** - если не удалось назначить.