Настройка модулей системы DIRECTUM

 

Общая настройка

 

Тексты пользовательских расчетов

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

При написании вычисления необходимо иметь в виду, что предопределенная переменная Object (см. раздел «Общие переменные» в описании объектной модели DIRECTUM) и функция 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

 

 

 

См. также:

·         Общие сведения о программной настройке справочников;

·         Перечень справочников, в которых предусмотрена программная настройка;

·         Настройка программной обработки событий;

·         Виды пользовательских событий.