PDA

Просмотр полной версии : Права доступа, "кнопка Квитировать все", архивы



Dima1991
20.01.2017, 17:17
Добрый день. Можно ли настроить права доступа для элементов с палитры? Как ни пытался, не смог настроить. Есть вариант через вход "Заблокировать", но это муторно и нужно создавать отдельный объект для прав доступа. Второй вопрос: как реализовать кнопку "Квитировать все"? Видел на форуме скрипт C#. При помещении данного скрипта в объект, квитируются события этого объекта. Я поместил данный скрипт в корень проекта, но почему то квитируется только часть сообщений, а остальные игнорируются. Третий вопрос: Как перенести проект на другой компьютер без архивов сообщений в журнале и трендов.

SCADAMaster
20.01.2017, 22:24
Добрый день. Можно ли настроить права доступа для элементов с палитры? Как ни пытался, не смог настроить. Есть вариант через вход "Заблокировать", но это муторно и нужно создавать отдельный объект для прав доступа.
Нет. Это технически не возможно
Если только размещать их на мнемосхемах на которые ограничивать доступ.


Второй вопрос: как реализовать кнопку "Квитировать все"? Видел на форуме скрипт C#. При помещении данного скрипта в объект, квитируются события этого объекта. Я поместил данный скрипт в корень проекта, но почему то квитируется только часть сообщений, а остальные игнорируются.
Нужно смотреть по коду - как настроен фильтр. Фильтр может быть настроен например только на определенные категории.


Третий вопрос: Как перенести проект на другой компьютер без архивов сообщений в журнале и трендов.
Проект - Экспортировать.

Dima1991
22.01.2017, 18:42
using System;
using MasterSCADA.Script.FB;
using MasterSCADA.Hlp;
using MasterSCADA.Hlp.Events;
using FB;
using System.Linq;

public partial class ФБ : ScriptBase
{
bool? пред;

public override void Execute()

{
if ((Квитировать == true) && (пред != true))

{

var alarms = HostFB.TreeItemHlp.Project.AlarmManager;
var filter = new EventFilterData();
filter.OnlyNotAcked = true;
var events = alarms.GetEvents(HostFB.TreeItemHlp.Parent,filter,
10000);// последняя цифра показывает какое количество сообщений будет квитированно за один раз.

foreach (var ev in events)

{

alarms.AckEvents(new [] {ev.EventID}, "");

}

}

пред = Квитировать;

}

}

SCADAMaster
22.01.2017, 22:13
Данный фильтр должен квитировать все сообщения.
Но тут нужно иметь ввиду что этот скрипт работает не архивом сообщений, а с кэшэм. То есть квитирует последние сообщения текущией сессии. Если надо квитировать их архива, то скрипт немного другой.
Подробнее тут:
http://blog.insat.ru/2016/08/c-masterscada_16.html