Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Текст пользовательского сценария создается в редакторе ISBL-текстов. Редактор запускается по нажатию кнопки Текст в карточке справочника Пользовательские сценарии. При задании вычислений можно использовать все возможности языка ISBL, функции, константы, предопределенные переменные, объектную модель.

При написании вычисления необходимо иметь в виду, что предопределенная переменная Object и функция GetComponent() будут возвращать компоненту, для которой выполняется пользовательское событие. Подробнее см. раздел «Общие переменные».

Например, чтобы при создании нового договора в справочнике Договоры автоматически заполнялись поля *Дата регистрации и *Ответственный, нужно задать следующий текст:

 

  // Заполнить работника, ответственного за договор.

  UserName = Application.Connection.UserName

  User = ServiceFactory.GetUserByName(UserName)

  Employee = SubString(ПоискСпр('РАБ'; 'Пользователь:' & User.Code);

    '|'; 1)

  Object.Работник = Employee

  // Заполнить дату регистрации.

  Object.Дата = Today()

Чтобы при сохранении РКК выдавалось предложение снять РКК с контроля, если завершены все этапы, в карточке пользовательского сценария можно задать вычисление:

 

  // Определить находится ли РКК на контроле.

  OnControl = Object.Requisites('ДаНет2').AsString

  if OnControl == YES_VALUE

    // Проверить завершены ли все этапы.

    I = 1

    Count = СпрТблСтрКол(;; 2)

    StepNumber = СпрТблСтрМин(;; 2)

    AllStepsFinished = TRUE

    while (I <= Count) and AllStepsFinished

      FinishDate = СпрРекв(;; 'Дата2Т2'; StepNumber;)

      AllStepsFinished = (FinishDate <<>> '')

      StepNumber = СпрТблСтрСлед(;; 2; StepNumber)

      I = I + 1

    endwhile

    // Если завершены все этапы, предложить снять РКК с контроля.

    if (Count > 0) and AllStepsFinished

      Result = MessageBox('Снятие с контроля';

        'Завершены все этапы, снять с контроля?'; 'Да|Нет';

        YES_VALUE; NO_VALUE)

      Object.ДаНет2 = IfThen(Result == YES_VALUE; NO_VALUE; YES_VALUE)

    endif

  endif

© Компания DIRECTUM, 2018 Сообщество пользователей DIRECTUM
.navbar > a:hover { background: #FFD73B; }