Как исправить ошибку «Налоговый учет. Не списано по партиям» в 1С:Комплексная автоматизация 1.1 и УПП 1.3?

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

В процессе работы с конфигурациями 1С:Комплексная автоматизация 1.1 и 1С:Управление производственным предприятием 1.3 на традиционном партионном учете пользователи часто сталкиваются с неприятной ошибкой при проведении документов реализации. Система выдает сообщение вида: «Налоговый учет. Документ Реализация товаров и услуг... Не списано по партиям...».

При этом по данным бухгалтерского (БУ) и управленческого учета (УУ) товар на складе списывается без проблем, а в налоговом учете (НУ) программа «не видит» остатков. Давайте детально разберем причины этой проблемы, выясним, почему могут расходиться виртуальные таблицы остатков, и рассмотрим пошаговый алгоритм поиска и устранения этой ошибки.

Почему расходятся виртуальные таблицы «Остатки» и «ОстаткиИОбороты»?

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

В СУБД (будь то MS SQL Server, PostgreSQL или файловый вариант базы данных) физические таблицы хранения итогов и таблицы движений (регистраторы) разделены. Таблица итогов хранит рассчитанные остатки на начало каждого месяца. При обращении к виртуальной таблице Остатки система берет ближайшие рассчитанные итоги и прибавляет к ним движения за оставшийся «хвост» периода.

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

Также важно учитывать логику работы с временными границами в запросах 1С. По умолчанию таблица остатков строится на начало секунды указанной даты (не включая ее документы). Если нам необходимо получить остатки на самый конец секунды с учетом всех движений этого момента, в параметрах запроса обязательно нужно использовать объект Граница с включением граничного момента:

Новый Граница(КонецДня(ВыбДата), ВидГраницы.Включая)

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

  1. Пересчет итогов через режим предприятия. Это самый быстрый и безопасный способ исправить расхождения на больших базах. Перейдем в меню Сервис — Управление итогами, найдем в списке проблемный регистр ПартииТоваровНаСкладахНалоговыйУчет и запустим пересчет итогов.
  2. Тестирование и исправление (ТиИ). Если первый способ не помог, запустим конфигуратор, откроем меню Администрирование — Тестирование и исправление. Установим флаги «Реиндексация таблиц» и «Пересчет итогов». Для крупных баз данных рекомендуется предварительно сделать резервную копию и выполнять эту процедуру в технологическое окно.

Анализ скрытых аналитических разрезов регистра партий

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

Специфика налогового учета и временные коллизии

Рассмотрим специфические сценарии налогового учета, которые приводят к расхождению с бухгалтерским и управленческим учетом:

Забытый флаг отражения. Самая тривиальная, но частая ошибка бухгалтера — отсутствие галочки Отражать в НУ в документе поступления (или в авансовом отчете, оприходовании). При этом в БУ и УУ партия успешно создается, а налоговый учет о ней ничего не знает. На момент продажи по БУ товар спишется, а по НУ — возникнет ошибка.

Для поиска таких документов применим метод левого или полного соединения в запросе. Нам нужно сравнить приход по БУ и НУ в разрезе регистраторов. Напишем следующий запрос:


ВЫБРАТЬ
    ПартииБУ.Регистратор КАК Регистратор,
    ПартииБУ.Номенклатура КАК Номенклатура,
    ПартииБУ.КоличествоОборот КАК КолБУ,
    ЕСТЬNULL(ПартииНУ.КоличествоОборот, 0) КАК КолНУ
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Обороты(&НачПериода, &КонПериода, Регистратор, Номенклатура = &Номенклатура) КАК ПартииБУ
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладахНалоговыйУчет.Обороты(&НачПериода, &КонПериода, Регистратор, Номенклатура = &Номенклатура) КАК ПартииНУ
    ПО ПартииБУ.Регистратор = ПартииНУ.Регистратор
    И ПартииБУ.Номенклатура = ПартииНУ.Номенклатура
ГДЕ
    ПартииБУ.КоличествоОборот <> ЕСТЬNULL(ПартииНУ.КоличествоОборот, 0)

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

Временные коллизии в пределах одного дня. Если документ поступления товара проведен, к примеру, в 18:00, а реализация этого же товара оформлена в 12:00 того же дня, то на момент реализации партии физически еще не существовало. По итогам дня остаток будет положительным, но партионная последовательность нарушена. Проанализируем время проведения документов и при необходимости сместим время прихода на более раннее.

Влияние системных настроек проведения документов

Настройки учетной политики и параметров проведения документов в КА 1.1 и УПП 1.3 оказывают решающее влияние на партионный учет:

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

Пошаговая методика поиска и исправления ошибок

Для гарантированного устранения проблемы списания партий в НУ рекомендуется придерживаться следующего алгоритма:

  1. Запустим отчет «Ведомость по партиям товаров на складах» с установленным видом учета «Налоговый учет». Сделаем детальную группировку по номенклатуре, складу, статусу партии и обязательно — по документам оприходования. Это позволит наглядно увидеть, на каком именно документе прерывается цепочка поступлений.
  2. Если отчет показывает наличие остатка, но документ реализации его не видит — выполним пересчет итогов по регистру партий налогового учета, чтобы исключить внутренний сбой СУБД.
  3. Проверим наличие флага Отражать в НУ во всей цепочке документов поступления и корректировок по данной номенклатуре за анализируемый период.
  4. Сверим время проведения документов за день совершения операции. Приход всегда должен быть строго раньше расхода.
  5. Запустим обработку «Восстановление последовательности налогового учета» (меню Операции — Проведение документов — Восстановление последовательностей) для автоматического пересчета и выравнивания партионных цепочек.
← На главную