Сумма трудозатрат

В разделе приводится описание настройки быстрого получения сводной информации по объектам, выведенным в список (без построения отчетов), на примере настройки подсчета суммы трудозатрат, приходящихся на все отображаемые или выбранные в списке записи о работе. После нажатия кнопки "Суммировать" в списке трудозатрат на экране отображается информационное окно о сумме трудозатрат по всем записям о работе. После выбора нескольких записей о работе (для выбора записи установите флажок в строке записи) и нажатия кнопки "Суммировать" в списке трудозатрат, на экране отображается информационное окно о сумме трудозатрат по выбранным записям о работе.

Подготовительные настройки системы

  1. Создайте пользовательский класс "Запись о работе" (workRecord), см. Настройка классов и типов объектов.
  2. В классе "Запись о работе" (workRecord) создайте одноименный тип, см. Настройка классов и типов объектов.
  3. В классе "Запись о работе" (workRecord) создайте пользовательский атрибут, см. Настройка атрибутов класса и типа объектов.

    • "Затраченное время (часов)" (time), типа "Вещественное число" — в данный атрибут будет затраченное время.
  4. Добавьте пользовательский атрибут "Затраченное время (часов)" (time) в группу атрибутов, отображаемую в карточке объекта, см. Изменение названия группы атрибутов и набора атрибутов, входящих в группу. В примере используется группа атрибутов "Общая информация".

  5. На карточке компании разместите список объектов класса "Запись о работе" (на вкладке "Трудозатраты"), см. Контент "Список объектов".
  6. Создайте и и включите пользовательское действие по событию, см. Настройка пользовательского действия по событию.

    • "Подсчет трудозатрат", объект "Запись о работе", событие "[Пользовательское событие]", действие "Скрипт", синхронное.

      Copy
      def text
      def workRecords
      if (subjects.empty)
      {
      text = "Всего трудозатрат в списке на"
      workRecords = list
      }
      else
      {
      text = "Трудозатрат по выбранным записям на"
      workRecords = subjects
      }
      def sum = 0
      workRecords.each {
      sum += it.time
      }
      result.showMessage('Информация', "${text} ${sum} часов");
  7. В классе "Компания" на вкладке "Трудозатраты" в списке объектов класса "Запись о работе" создайте пользовательский элемент управления на панели действий с элементами списка, см. Добавление пользовательской кнопки.

    • "Суммировать", внешний вид "кнопка с подписью", действие "Подсчет трудозатрат".

  8. В классе "Запись о работе" настройте право на выполнение пользовательского действия, используя маркеры прав в группе прав "Пользовательские события".

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