Имя: Пароль:
1C
1С v8
Запрос. Последняя секунда месяца. Остатки регистра накопления.
0 Target1025
 
05.07.23
06:57
Общий модуль ЕдиныйНалоговыйСчет, Процедура РаспределитьОплатуПоОстаткамРасчетов565ФЗ.

Перед запросом формируются параметры, включая параметр "ПериодОстатков":

Запрос.УстановитьПараметр("ПериодОстатков",КонецМесяца(ДобавитьМесяц(Реквизиты.Период, -1)));

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

Далее, в запросе выглядит так:

    |ИЗ
    |    РегистрНакопления.РасчетыПоНалогамНаЕдиномНалоговомСчете.Остатки(
    |            &ПериодОстатков,
    |            ГоловнаяОрганизация = &ГоловнаяОрганизация
    |                И Организация В (&Организации)
    |                И НАЧАЛОПЕРИОДА(СрокУплаты, МЕСЯЦ) <= НАЧАЛОПЕРИОДА(&НачалоПериода, МЕСЯЦ)) КАК РасчетыПоНалогамНаЕдиномНалоговомСчетеОстатки
    |ГДЕ
    |    РасчетыПоНалогамНаЕдиномНалоговомСчетеОстатки.СуммаОстаток > 0

Собираем остатки по(на?) последнюю секунду прошлого месяца. Если остатки на конец месяца больше нуля, попадает в выборку. Выявляем недоуплату.

В этот регистр накидывают документы Уведомление, а списывает Регламентная Операция "Зачет авансов по единому налоговому счету". Она ставится автоматически в последний день месяца, в 23:59:59, в последнюю секунду. Вышеупомянутый код вызывается из этой же операции.

А теперь прикол. В январе закрыто, выходные остатки = 0. ЗАкрываем февраль, февраль не видит выходных остатков январ. Закрываем март, и... Март НЕ видит операцию закрытия в феврале, и считает, что существует выходной остаток в феврале, который не был погашен. Хотя и январь и февраль "зачет авансов" "обнулили" регистр "под Ноль". Как будто в марте и феврале считается разный порядок данных в этой секунде: в феврале за январь берет сведения на _конец_ секунды; а в марте за февраль- на _начало_.

Что это может быть? Ошибка в движке 1с?
1 Гена
 
05.07.23
07:13
2 Target1025
 
05.07.23
07:21
(1) Тут прикол в том, что в обоих случаях, в обоих месяцах, обе регламентные операции пишутся в 23:59:59. Но изза, возможно разных ситуаций с миллисекундами, оно считает по разному
3 Target1025
 
05.07.23
07:47
(0)(1) Отмена. В январе регламентная операция записалась  не в последнюю секунду. Поэтому была учтена. А в феврале - в последнюю секунду месяца, поэтому была не учтена.
4 vicof
 
05.07.23
12:04
Я так понимаю, на спеца по платформе не сдавал.