В версии 1С:Предприятия 8, в отличие от версии 1С:Предприятия 7.7, дата включает в себя время с точностью до секунды. То есть дата указывается вместе со временем. Если время не указано явно, то, по умолчанию, оно принимает значение 0 часов, 0 минут, 0 секунд. Разница между датами теперь вычисляется в секундах. Кроме того, эту особенность надо учитывать при указании периодов. Так, если раньше период с 01.01.2003 по 31.01.2003 означал период за весь месяц январь 2003 года, то теперь этот же период будет означать период с первой секунды 1 января 2003 года по первую секунду 31 января 2003 года. То есть период не будет включать почти весь день 31 января, кроме его первой секунды. Для указания в качестве периода всего месяца нужно указать период следующим образом: с 01.01.2003 00:00:00 по 31.01.2003 23:59:59. Указание периода с 01.01.2003 по 01.02.2003 тоже будет не верным, так как в данном случае в период попадет первая секунда 1 февраля 2003. 
Обычно пользователь для указания периода вводит даты без указания времени. При этом пользователь, введя период с 01.01.2003 по 31.01.2003, подразумевает период за месяц в целом. Если эти значение передать в системные функции или запрос, то они будут восприняты буквально: с 01.01.2003 00:00:00 по 31.01.2003 00:00:00. Поэтому при передаче конечного периода в системную функцию нужно привести его значение к концу дня. Для приведения конечной границы периода удобно использовать функцию КонецДня. Эта функция возвращает дату равную последней секунде дня, то есть Дата(2003, 1, 31, 3, 23, 59, 59) и КонецДня(Дата(2003, 1, 31)) приводят к одному и тому же результату.


Обороты = РегистрыНакопления.ДенежныеСредстваКомпании.Обороты(Дата(2003, 1, 1), КонецДня(Дата(2003, 1, 31)));



В 1С:Предприятии версии 7.7 была возможность задавать момент времени и период с точностью до документа. Эта возможность была сохранена и развита. Так как теперь документ может записывать движения в разные периоды времени, а не только совпадающие с его собственной датой, для указания момента времени с точностью до документа был введен новый объект МоментВремени, который задается датой и ссылкой на регистратор. При этом дата момента времени не обязательно должна совпадать с датой документа. Для получения момента времени, содержащего дату документа и сам документ, можно воспользоваться методом документа МоментВремени. Например, если нам надо вычислить остатки на документ, то передавать в метод, вычисляющий остатки в качестве параметра, ссылку на документ неправильно. Нужно передать в качестве параметра объект МоментВремени, который можно получить либо методом ссылки документа МоментВремени, либо сконструировав его с помощью оператора Новый.



Остатки = РегистрыНакопления.ДенежныеСредстваКомпании.Остатки(Новый МоментВрмени(Документ.Дата, Документ));


Параметры типа Дата и МоментВремени используются в системных функциях и виртуальных таблицах при вычислении остатков и оборотов. Остатки вычисляются на определенный момент времени. При указании момента времени для вычисления остатков, по умолчанию, считается, что момент времени задан исключительно. То есть если в качестве момента времени задана дата 21.11.2003 12:00:00, то остатки будут посчитаны на начало 12 часов 21 ноября 2003 года. Движения, сделанные в этот момент времени, не будут учтены при подсчете остатков.