Не срабатывают пользовательские НС [13546]

Версия ЛЭРС Учет - текущая. Данные в ЛЭРС записывают по API, записываются текущие и текущие интеграторы.
Из текущих интеграторов формируются часовые архивы
Настроено 2 вида пользовательских НС.

  1. по текущим данным;
  2. по часовым архивам.

По часовым данным НС срабатывают. По текущим данным не срабатывают. Пример НС по текущим ниже

Пробовал записывать значение часового архива через импорт xml - НС по часовым тоже срабатывает.

В чем может быть проблема?

Какой API используется для импорта?

framework.

Уточните метод и класс, которым выполняете сохранение. По хорошему бы тестовый проект с примером импортируемых данных.

Уточню, но возможно и не понадобится. Проверил добавление текущих через импорт xml, НС не срабатывает. Похоже дело именно в формировании НС по текущим

//создаем новые записи для точек 62 и 108
var consumRecord62 = measurePoint62.Data.NewConsumptionRecord(time);

        //создаем коллекцию текущих
        var consumCollection62 = new Lers.Data.MeasurePointConsumptionRecordCollection(Lers.Data.DeviceDataType.Current);
        consumCollection62.Add(consumRecord62);
  //записываем значения в параметры
  setParam(consumRecord62, "Датчик 21, Датчик контроля подтопления SW007 в зоне выпуска канализации 1,н/о ", Lers.Data.DataParameter.M_out, contacs[20]);
        setParam(consumRecord62, "Датчик 22, Датчик контроля подтопления SW007 в зоне выпуска канализации 2,н/о ", Lers.Data.DataParameter.V_in, contacs[21]);
        setParam(consumRecord62, "Датчик 23, Датчик контроля подтопления SW007 в зоне ИТП1,н/о ", Lers.Data.DataParameter.V_out, contacs[22]);
  


      measurePoint62.Data.SetConsumption(consumCollection62, options);
  //запускаем перерасчет
  var recalсTask = measurePoint62.Data.RecalcDataAsync(time.AddHours(-1), time); 
         recalсTask.Wait();
   //метод для занесения значений
   static void setParam(Lers.Data.MeasurePointConsumptionRecord record,string nameContacs, Lers.Data.DataParameter paramName, int paramValue)
    {
        record.SetValue(paramName, paramValue);
        Console.WriteLine(" внесено значение " + paramValue.ToString() + " в параметр " + paramName.ToString() + " " + nameContacs);

    }

Метод SetConsumption не запускает диагностику, для этого есть метод SetData, который принимает все нужные архивы.

Дополню, что при импорте текущих данных пользовательская НС с приведенной формулой успешно срабатывает для текущих, если значение V2 точно равно 0. Возможно у вас в импортируемом файл для параметра V2 хранится не ровно 0, а очень малое значение, например, 0.0000001, которое округляется до 0 при отображении.

Ответы понятны. Но почему при импорте через xml НС срабатывает для часовых данных, а для текущих не срабатывает.

На картинке нули это результат работы скрипта. И там точно именно ноль.

При импорте текущих через xml я записываю ноль вручную.

Более того, настроил две НС на разные параметры срабатывающие на значние нуль и на единицу. И при записи текущих через импорт xml НС не срабатывают.

Как писал выше, данные при импорте текущих НС возникает. Описываемая вами ситуация не воспроизвелась.

Куда именно вы записывали 0? Непосредственно в файл экспорта или в таблицу с данными? Приложите ваш файл экспорта.

В ЛЭРСе нельзя вручную заполнить текущими таблицу с данными или я просто не знаю как?

Прикладываю файл xml для этой точки

Data_2023-09-19_1215.xml (2,6 КБ)

1 сообщение было перенесено в новую тему: При вызове Class MeasurePointData.SetData возникает исключение “Неверный тип данных”

Подтверждаем, что при импорте текущих данных не срабатывает пользовательская НС несмотря на соответствие данных условию диагностики.
Спасибо за обращение! Мы поставили в план работ исправление данной ошибки. Как только она будет исправлена, обязательно сообщим в каком обновлении будет доступно исправление.

Вопрос по ошибке при вызове метода SetData был выделен в отдельную тему.

Исправление войдет в следующее обновление 3.53.2.

Добрый день!

Обновление 3.53.2 (сборка 35304) от 29.09.2023 доступно для установки.