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

В DIRECTUM 5.5 в веб-клиенте реализован механизм, при котором настройка видимости и доступности кнопок на панели действий подхватывается из десктоп-клиента.

В прикладной разработке для справочника можно реализовать логику, в соответствии с которой действие будет доступно или недоступно. Например, в событии справочника «Форма-карточка.Показ» можно написать:

 

// Получить действие «WebAction» из списка действий формы-карточки.
WebAction = Object.Form.Actions.FindAction('WebAction')
if  Assigned(WebAction)
// Проверить значение реквизита. Если условие выполняется,

// то действие сделать недоступным.
if Object.Requisites('Наименование').AsString == "test"
   WebAction.Enabled = False
 Else
   WebAction.Enabled = True
 Endif
Endif

Чтобы данная логика соблюдалась и в веб-клиенте, достаточно в атрибуте linkedaction XML-файла указать имя действия:

 

<Card type="ReferenceRecord" refcode="ActionTest" >
    <ToolPanel>
      <ToolGroup name="TOOLBAR_ORGANIZATION" icon="/App_Sprites/Information.png">
        <ToolItem name="WebAction"
                  icon="/App_Sprites/ToolbarAndTab/History.png"
            linkedaction="WebAction"/>
      </ToolGroup>
    </ToolPanel>
  </Card>

В результате при открытии записи справочника действие будет недоступно, если наименование записи «test», в остальных случаях действие будет доступно.

Подробнее Постоянная недоступность кнопок

В карточке:

var toolbarButtonName = 'SendAsAttachment';

WA.CR.toolBar.buttons[toolbarButtonName].disable();

В проводнике:

var buttonName = 'CrtTask';

WA.CR.toolBar.buttons[buttonName].disable();

Подробнее Недоступность кнопок в карточке в зависимости от значений других реквизитов карточки

Недоступность подхватывается из прикладного события «Форма-карточка.Показ» и в вычислениях на реквизитах.

Подробнее Недоступность кнопок в карточке в зависимости от значений реквизитов связанного объекта

Недоступность подхватывается из прикладного события «Форма-карточка.Показ» и в вычислениях на реквизитах.

Подробнее Недоступность кнопок в зависимости от информации о текущем пользователе

Под информацией о текущем пользователе подразумеваются его права, вхождение в группы пользователей, нахождение на определенном уровне иерархии в орг. структуре и т.п.

В карточке:

Недоступность подхватывается из прикладного события «Форма-карточка.Показ» и в вычислениях на реквизитах.

В проводнике:

 

// Вызвать прикладной сценарий GetDisableActions, который через |

// получает список действий, недоступных пользователю с указанным ИД.
// Если такие действия найдены, то выполнить функцию disableActions

// и кнопки для выполнения полученных действий сделать недоступными.
WA.SRV.script.run("GetDisableActions", { "UserID": WA.CR.user.ID }).success(function (result) {
if (result !== "") {
   disableActions(result);
}
});
function disableActions(actions) {
var allActions = actions.split("|");
 WebAccess.ready(function () {
  if (allActions.length > 0) {
    for (var i = 0; i < allActions.length; i++) {
      var actionButton = WA.CR.toolBar.buttons[allActions[i]];
      if (typeof actionButton !== 'undefined') {
         actionButton.disable();
      }
    }
  }
});
}

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