Перейти к основному содержанию
`Ctrl`+`K`

# Заполнение бизнес-единицы по этапу договора

Заполняет бизнес-единицу приходного акта по выбранному этапу договора.

Скрипт используется в точке расширения API `Script Stm_ActInApi.setidContractStage`. В этой точке расширения параметр `value` содержит идентификатор выбранного этапа договора, а параметр `rop` — объект приходного акта, для которого выполняется изменение.

Скрипт получает бизнес-единицу из этапа договора. Если на этапе бизнес-единица не указана, скрипт пытается получить ее из родительского договора. Найденное значение записывается в приходный акт.

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

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

    if (isNotNull(value)) {
      // Загрузка этапа договора по значению, переданному в точку расширения
      const ropStage = Cnt_ContractApi.load(value);
      var ropContract = null;

      // Загрузка родительского договора, если он указан на этапе
      if (isNotNull(ropStage.idParentContract)) {
        ropContract = Cnt_ContractApi.load(ropStage.idParentContract);
      }

      var idvBisObj = null;

      // Получение бизнес-единицы из этапа договора
      if (isNotNull(ropStage.idBisObj)) {
        idvBisObj = ropStage.idBisObj;
      }

      // Если на этапе бизнес-единица не заполнена, получение значения из родительского договора
      if (isNotNull(ropContract) && isNull(idvBisObj) && isNotNull(ropContract.idBisObj)) {
        idvBisObj = ropContract.idBisObj;
      }

      // Заполнение бизнес-единицы в приходном акте
      if (isNotNull(idvBisObj)) {
        Stm_ActInApi.setidBisObj(rop, idvBisObj);
      }
    }