[13537] Нет проверки значения даты при синхронизации с АРШИНом

Есть приборы, у которых в базе АРШИНа стоят ошибочные даты поверки. Например:
https://fgis.gost.ru/fundmetrology/cm/results/1-167572922
https://fgis.gost.ru/fundmetrology/cm/results/1-164377663
Дата поверки у этих приборов 02.06.0202
В итоге при попытке ручной синхронизации по кнопке “Обновить из ссылки на результат” в системный журнал выводится

Необработанная ошибка в сервере. “Ошибка выполнения запроса PUT http://192.168.1.52:10000/api/v0.1/Core/Equipment/4393?force=false.
Дата задана неверно. (Parameter ‘LastCalibrationDate’)
Actual value was 02.06.0202 0:00:00.”. Разработчикам был отправлен отчет об ошибке. Дата задана неверно. (Parameter ‘LastCalibrationDate’)
Actual value was 02.06.0202 0:00:00.

Предлагаю добавить проверку получаемых значений (Например дата поверки не может быть ранее 01.01.2000, и не может быть больше текущей даты)

Таких приборов в базе очень много - достаточно выбрать “до 2010 года” и отсортировать по возрастанию даты - около 2700 записей с кривой датой.

Такая проверка позволит пользователям системы оперативно выявить ошибку поверителя и обратиться к нему с просьбой об исправлении данных

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

Хм… стоит ли делать проверку, может лучше записывать некорректную дату? Получаем мы реальные данные из АРШИН. Найти такого рода ошибки в списке оборудования - дело 1-ой секунды:

По каждому экземпляру создаётся нештатка об истёкшем сроке поверки.

И вы можете по каждому инциденту обратиться к поверителю.

Тоже не вижу сильной необходимости очищать такие результаты. В аршине они хранятся, и это реально повод обратиться к поверителю.

По поводу ручной синхронизации. Может, стоит ошибку сделать не критической, а выдавать обычное сообщение об ошибке? В конце концов, при ручной синхронизации стоит сразу узнать, что с прибором есть какая-то проблема. В автоматическом режиме такой возможности нет, и я бы продолжил сохранять битые даты.

Я и не говорил что такие результаты нужно очищать.
Считаю что нужно просто каким-то образом уведомить администратора системы о поступлении таких “кривых” результатов, например в системном журнале/центре уведомлений.
Это нужно как раз для возможности более оперативно выявить ошибку и обратиться к поверителю.
Например когда с устройства (теплосчетчика) система получает кривые показания - она их сохраняет, но помечает как недостоверные.

В системном журнале они и так появляются при автоматической синхронизации. Вижу проблему в том, что при ручной синхронизации выдаётся критическая ошибка. Я предлагал заменить её на ошибку с понятным сообщением.

Хорошо, давайте при ручной синхронизации в более понятном виде пользователю сообщать об ошибке. На мой взгляд будет хорошо если это будет всплывающее окно, чтобы немедленно понять что что-то пошло не так.

Не до конца понимаю что нужно делать. То, что при ручной синхронизации стоит выдать нормальное сообщение об ошибке это понятно. Окно с критической ошибкой это явная недоработка.

Но что делать при фоновой синхронизации?

Какие вижу варианты:

  • Сохранить битые даты как есть
  • Сохранить битые даты и выдать предупреждение в системном журнале
  • Не сохранять битые даты и выдать предупреждение в системном журнале

Считаю лучшим решением. Даты всё равно должны соответствовать АРШИНу, а предупреждение позволит заметить ошибку и обратиться к поверителю для исправления данных в АРШИНе.

Я тоже за второй вариант - даты сохранять, но уведомлять о них

Сделаем в 3.54.

@lersbot update 3.54.0