Как получить отрицательные суммы при отрицательных остатках на счете 41.01

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

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

Анализ исходной проблемы в запросе

Рассмотрим типовой запрос, который часто используют для поиска «минусов» по складу. Автор столкнулся с тем, что условие по количеству отрабатывает корректно, но колонки с суммами остаются пустыми:


Зап.Текст = "ВЫБРАТЬ
            |    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
            |    ХозрасчетныйОстатки.КоличествоОстаток,
            |    ХозрасчетныйОстатки.СуммаОстаток
            |ИЗ
            |    РегистрБухгалтерии.Хозрасчетный.Остатки(&КонДата, Счет.Код = ""41.01"", , Субконто1 = &ВыбНоменклатура) КАК ХозрасчетныйОстатки
            |ГДЕ
            |    ХозрасчетныйОстатки.КоличествоОстаток < 0";

Выясним причину такого поведения системы. В типовых конфигурациях 1С (например, «Бухгалтерия предприятия») сумма списания товара рассчитывается в момент проведения документа реализации на основании имеющихся данных о себестоимости. Если на складе числится 0 штук, а мы списываем 10 штук (при включенной настройке «Разрешить списание при отсутствии остатков»), программе попросту неоткуда взять цену за единицу. В результате в регистр записывается количество -10, а сумма — 0.00.

Причина №1: Настройки учетной политики и параметров учета

Первым делом проанализируем настройки программы. Если в информационной базе разрешено отрицательное списание, система игнорирует отсутствие партий или средневзвешенной цены. В 1С:Бухгалтерии за это отвечает флаг «Разрешить списание запасов при отсутствии остатков по данным учета».

При включении этой опции:

  1. Документы проводятся «в минус».
  2. Формируются проводки вида Дт 90.02.1 - Кт 41.01 только с количественным заполнением.
  3. Суммовой учет в проводке игнорируется до момента поступления товара или регламентных операций в конце месяца.

Причина №2: Механизм «Закрытия месяца» и расчет себестоимости

Важно понимать, что в течение отчетного периода суммы могут не соответствовать количеству, если товар закупался и продавался «хаотично». Окончательный расчет себестоимости происходит при выполнении регламентной операции «Корректировка стоимости номенклатуры».

Проанализируем ситуацию: если вы сформируете запрос до закрытия месяца, вы увидите «голые» количественные остатки. После закрытия месяца система:

Однако, если товар так и не поступил на склад до конца месяца, сумма останется нулевой, так как база для расчета (цена закупа) отсутствует в системе.

Причина №3: Аналитические разрезы и склады

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

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

Как получить «виртуальную» сумму отрицательного остатка?

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

Способ 1: Использование цен из регистра сведений.

Мы можем соединить таблицу остатков с последними ценами из регистра ЦеныНоменклатуры (например, по типу цен «Закупочная»). Посмотрим на пример кода:


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

Способ 2: Анализ развернутого сальдо.

Иногда отрицательные остатки возникают из-за пересортицы (на одном складе «плюс», на другом «минус»). В этом случае полезно использовать виртуальные поля СуммаРазвернутыйОстатокДт и СуммаРазвернутыйОстатокКт. Однако для активного счета 41.01 отрицательный остаток технически является «красным» дебетовым остатком. Если в параметрах виртуальной таблицы не указаны все необходимые измерения, система может «схлопнуть» данные некорректно.

Методические рекомендации по исправлению ситуации

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

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

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

← На главную