Почему время документа 00:00:00, а в регистре накопления стоит 23:59:59?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В процессе работы с конфигурациями на платформе 1С:Предприятие 8.2/8.3 с обычными формами (такими как Управление торговлей 10.3, Управление производственным предприятием 1.3 или Комплексная автоматизация 1.1), пользователи и разработчики часто сталкиваются с интересной особенностью. Платежный документ (например, ПлатежноеПоручениеВходящее) может иметь время 00:00:00, но при просмотре его движений в регистре накопления ВзаиморасчетыСКонтрагентами мы видим время 23:59:59.

Давайте подробно разберем, почему система ведет себя именно так, для чего это нужно и как при необходимости изменить это поведение.

Разбор ситуации: автоматическое смещение времени

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

Многие начинающие специалисты ошибочно полагают, что это программная ошибка или сбой в базе данных. Однако это штатный функционал, заложенный разработчиками фирмы «1С». Основная цель этого механизма — минимизация возникновения «пустых» или «технических» авансов.

Выясним причину: зачем нужно время 23:59:59?

Рассмотрим пример из практики. Представьте, что в течение одного рабочего дня происходят два события:

  1. В 12:00 менеджер оформляет документ РеализацияТоваровУслуг.
  2. В 09:00 бухгалтер загрузил выписку и создал ПлатежноеПоручениеВходящее с временем 00:00:00 или 09:00:00.

Если бы система проводила оплату по фактическому времени (09:00), то на момент проведения платежа долга за контрагентом еще не числилось бы (так как реализация будет создана только в 12:00). В итоге программа зафиксирует аванс. Затем, в 12:00, реализация закроет этот аванс. В рамках дня сальдо будет нулевым, но в отчетах с детализацией по времени или при расчете скидок/бонусов за отсутствие авансов возникнут сложности.

Чтобы избежать этой чехарды и «развернутого сальдо» внутри дня, платежи принудительно переносятся на 23:59:59. Таким образом, сначала в течение дня «накапливаются» все долги от отгрузок, а в самую последнюю секунду дня приходят деньги и закрывают эти долги в хронологическом порядке.

Где находится настройка в программе?

Если в вашей организации бизнес-процессы требуют иного подхода (например, вам важно видеть реальное время оплаты для оперативного контроля), эту логику можно изменить. Рассмотрим по шагам, где найти нужный переключатель в УТ 10.3 или УПП 1.3:

  1. Перейдем в меню Сервис.
  2. Выберем пункт Настройка параметров учета.
  3. В открывшемся окне перейдем на закладку Взаиморасчеты.
  4. Найдем параметр «При совпадении даты регистрации документа и даты его оплаты проводить:».

Здесь доступны два варианта:

Техническая реализация в коде 1С

Для программиста важно понимать, как это реализовано «под капотом». За данное поведение отвечает константа УстанавливатьВремяПроведенияПлатежныхДокументовКонцомДня.

В общем модуле, отвечающем за проведение денежных документов (обычно это процедуры в модулях ДенежныеСредства или специализированных модулях по взаиморасчетам), можно встретить логику, подобную следующей:


Если Константы.УстанавливатьВремяПроведенияПлатежныхДокументовКонцомДня.Получить() Тогда
    Для Каждого Движение Из Движения.ВзаиморасчетыСКонтрагентами Цикл
        Движение.Период = КонецДня(ДатаДокумента);
    КонецЦикла;
КонецЕсли;

Проанализируем этот фрагмент: система берет дату документа, извлекает из нее только число, месяц и год, а затем с помощью функции КонецДня() устанавливает время 23:59:59 для каждой записи в наборе движений регистра ВзаиморасчетыСКонтрагентами.

Последствия изменения настройки

Перед тем как переключить режим проведения на «По времени регистрации», необходимо предупредить пользователей о следующих нюансах:

Резюме

Мы выяснили, что время 23:59:59 в регистрах накопления при времени документа 00:00:00 — это не ошибка, а защитный механизм системы. Он упрощает жизнь бухгалтеру, автоматически «схлопывая» долги и оплаты в пределах одного дня.

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

← На главную