Спасибо за ответ. Я немного подправил код так:
if (!PreviousIsNull(Источник_1, "Время"))
{
if (Источник_1.vrCounter_Top != 0)
{
vrDiffTime = DateDiff(Источник_1.Время, (System.DateTime)Previous(Источник_1, "Время"));
}
else
{
vrDiffTime = new TimeSpan(0, 0, 0);
}
}
else
{ vrDiffTime = new TimeSpan(0, 0, 0);
}
А насчет архивации "по изменению" - переменная равна 0 и остается нулем, то есть не меняется, но все равно пишется в архив каждый час. Видимо от этого никак не избавиться.