Почему обработка регистрации счетов-фактур на аванс в 1С:УПП подтягивает старые документы из прошлых периодов?

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

При проведении регламентной процедуры «Регистрация счетов-фактур на аванс» в конфигурации «1С:Управление производственным предприятием» (УПП) пользователи часто сталкиваются с ситуацией, когда обработка формирует счета-фактуры или выводит в табличную часть документы из прошлого года. При этом по фактическим данным бухгалтерского учета авансов или остатков на текущий момент быть не должно.

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

Как работает алгоритм выборки авансов в 1С:УПП

Алгоритм автоматической регистрации счетов-фактур на аванс опирается не на бухгалтерские проводки (счета 62.02, 62.22 и т.д.), а на специализированные регистры накопления. Главным источником данных выступает регистр накопления РасчетыПоРеализацииВУсловныхЕдиницахОрганизации (а также регистры расчетов с контрагентами и учета НДС по комиссионной торговле).

Рассмотрим структуру типового запроса, который формируется системой при заполнении обработки:


ВЫБРАТЬ
    РасчетыПоРеализации.Период КАК Период,
    РасчетыПоРеализации.Организация КАК Организация,
    РасчетыПоРеализации.Контрагент КАК Контрагент,
    РасчетыПоРеализации.ДоговорКонтрагента КАК ДоговорКонтрагента,
    РасчетыПоРеализации.Документ КАК ДокументОснование,
    НАЧАЛОПЕРИОДА(РасчетыПоРеализации.ДатаОплаты, ДЕНЬ) КАК ДокументАвансаДата,
    NULL КАК СтавкаНДС,
    РасчетыПоРеализации.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаРасчетов,
    РасчетыПоРеализации.СуммаРегКонечныйОстаток КАК КонечныйОстаток,
    РасчетыПоРеализации.СуммаРегНачальныйОстаток КАК НачальныйОстаток,
    РасчетыПоРеализации.СуммаВзаиморасчетовНачальныйОстаток КАК ВалютныйНачальныйОстаток,
    РасчетыПоРеализации.СуммаВзаиморасчетовКонечныйОстаток КАК ВалютныйКонечныйОстаток,
    РасчетыПоРеализации.ДоговорКонтрагента.РасчетыВУсловныхЕдиницах КАК РасчетыВУсловныхЕдиницах,
    ВЫБОР
        КОГДА РасчетыПоРеализации.ДоговорКонтрагента.ПорядокРегистрацииСчетовФактурНаАвансПоДоговору = ЗНАЧЕНИЕ(Перечисление.ПорядокРегистрацииСчетовФактурНаАванс.ПустаяСсылка)
            ТОГДА ЕСТЬNULL(УчетнаяПолитикаОрганизаций.ПорядокРегистрацииСчетовФактурНаАванс, &ТекущийПорядокРегистрацииСчетовФактурНаАванс)
        ИНАЧЕ РасчетыПоРеализации.ДоговорКонтрагента.ПорядокРегистрацииСчетовФактурНаАвансПоДоговору
    КОНЕЦ КАК ПорядокРегистрацииСчетовФактурНаАванс
ПОМЕСТИТЬ ВТРасчеты
ИЗ
    РегистрНакопления.РасчетыПоРеализацииВУсловныхЕдиницахОрганизации.ОстаткиИОбороты(
            &НачалоПериода,
            &КонецПериода,
            День,
            ,
            Организация = &Организация 
                И (НЕ Документ ССЫЛКА Документ.ОтчетКомиссионераОПродажах)
                И (НЕ ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером))) КАК РасчетыПоРеализации

Почему в выборку попадают старые документы?

Проанализируем ключевые причины, по которым старые платежные документы или документы возврата (например, ПлатежноеПоручениеИсходящее) появляются в промежуточной таблице обработки:

  1. Остатки рассчитываются на протяжении всей истории учета. Виртуальная таблица ОстаткиИОбороты возвращает значения начальных и конечных остатков. Если в прошлом периоде аванс образовался, но не был корректно зачтен в разрезе конкретной аналитики (например, из-за пустой ссылки на документ расчетов), то остаток по этой строке продолжает зависать в регистре неограниченное время.
  2. Разрыв аналитики по документам расчетов. Если оплата прошла по одному документу расчетов, а реализация или возврат закрыли задолженность с указанием другого документа расчетов (или с зачетом «по документу»), в регистре образуются две противонаправленные записи — положительная и отрицательная. Так как запрос ищет конечный или начальный остаток больше нуля по конкретному документу-основанию, положительная ветка попадает в выборку как незакрытый аванс.
  3. Нарушение последовательности проведения документов. Если документы вводились задним числом или перепроводились без восстановления последовательности расчетов, механизмы зачета авансов не пересчитали движения в регистрах накопления.

Методы решения проблемы

Рассмотрим порядок действий для устранения проблемы и очистки регистра от застрявших остатков.

1. Восстановление последовательности расчетов

Первый и наиболее правильный шаг — выполнение регламентной процедуры перепроведения документов расчетов с контрагентами.

Перейдем в раздел проведения документов расчетов (обработка ПроведениеДокументовПоРасчетамСКонтрагентами) и запустим перерасчет за периоды, в которых возникли разрывы. Это позволит алгоритмам базы перераспределить зачеты авансов и сформировать правильные закрывающие движения в регистре РасчетыПоРеализацииВУсловныхЕдиницахОрганизации.

2. Корректировка остатков в закрытых периодах

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

  1. Сформируем отчет по регистру накопления Расчеты по реализации в условных единицах организации в детализации по контрагентам, договорам и документам расчетов.
  2. Найдем позиции, где по одной аналитике висит положительный остаток, а по другой — отрицательный.
  3. Введем документ Корректировка записей регистров (или документ Корректировка долга с видом операции «Перенос задолженности»), чтобы списать разрывы в разрезе документов расчетов.

3. Настройка порядка регистрации счетов-фактур на аванс

Для договоров с контрагентами, по которым в принципе не предусмотрена выписка авансовых счетов-фактур (например, договора прочих расчетов или определенные виды специфических сделок), проверим значение реквизита Порядок регистрации счетов-фактур на аванс в карточке договора.

Установим значение Не регистрировать счета-фактуры на авансы, чтобы полностью исключить договор из автоматической обработки.

← На главную