Ситуация, когда в ОСВ или регистрах бухгалтерии по счету учета материально-производственных запасов (МПЗ) «висит» сумма при нулевом количестве, является классической проблемой для пользователей 1С. Особенно часто это проявляется в сложных конфигурациях, таких как «1С:Управление микрофинансовой организацией и кредитным потребительским кооперативом КОРП» (УМФО), которая построена на базе «1С:Бухгалтерии 3.0», но использует специфический отраслевой план счетов (ОСБУ).
Разберем подробно, почему возникают эти «фантомные» остатки и как их грамотно устранить, не нарушая целостность учета.
Проанализируем механику работы системы. Проблема обычно кроется в конфликте между настройками Учетной политики и Параметрами учета. В 1С существует два уровня настроек запасов:
Если в параметрах учета включен флаг «По партиям», то на счетах учета (например, 10 или отраслевые аналоги) активно субконто Партии. Когда бухгалтер меняет метод оценки на «По средней», но оставляет включенным партионный учет «на всякий случай», программа оказывается в двойственной ситуации. С одной стороны, она должна считать среднюю цену, с другой — обязана заполнять аналитику по партиям. Если за прошлые периоды по конкретным документам поступления остались незакрытые копейки, система при списании может подтягивать их в стоимость, что и приводит к «странным ценам» и остаткам без количества.
Прежде чем что-то исправлять, выясним причину. Сформируем отчет Оборотно-сальдовая ведомость по счету с максимальной детализацией. В настройках отчета (вкладка «Группировка») обязательно включим:
НоменклатураСкладыПартии (Документы поступления)Проанализируем ситуацию: если мы видим, что по одной партии висит «плюс», а по другой «минус», или по одной партии есть сумма, но нет количества — значит, система не смогла корректно «схлопнуть» остатки при списании. Это часто происходит из-за ручных правок проводок, когда бухгалтер корректирует сумму, не учитывая, как это отразится на итоговых таблицах регистра.
Иногда записи в регистре верны, но подводят физические таблицы итогов. Рассмотрим этот технический момент. Для ускорения работы 1С хранит рассчитанные итоги в отдельных таблицах базы данных. При сбоях эти данные могут расходиться с реальными движениями.
Попробуем выполнить следующие действия в Конфигураторе:
Важно: Это безопасная операция, она не меняет документы и не «чирикает» ОСВ, а лишь обновляет вспомогательные таблицы на основе существующих проводок. Однако, как показывает практика, если проблема вызвана ручными корректировками или неверной аналитикой, один лишь пересчет итогов не поможет.
Рассмотрим метод, который применил автор темы для исправления ситуации. Если мы нашли «кривую» партию, которая тянет за собой неверную стоимость, нам нужно её обнулить. Но делать это нужно крайне аккуратно.
Создадим документ Операция, введенная вручную. Нам необходимо убрать сумму с конкретной партии, не трогая количество. Проводка будет выглядеть примерно так (в дебет или кредит в зависимости от знака остатка):
Проанализируем последствия: такая операция уберет стоимостной «хвост», сохранив количественный учет в нуле. Если конфигурация использует дополнительные регистры (например, в УМФО), в документе «Операция» нужно нажать кнопку «Выбор регистров» и добавить соответствующие регистры накопления по учету запасов, чтобы выровнять данные и там.
Если изменений в учетной политике было много, а документов — сотни, ручные операции не помогут. Выясним, как правильно сменить метод учета с начала года:
Посмотрим на пример кода, который можно использовать во внешней обработке, если нужно программно скорректировать движения, не перепроводя документы (хотя перепроведение предпочтительнее):
// Пример корректировки записей регистра бухгалтерии
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокумент);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Если Запись.СчетДт = Стр_СчетУчета Тогда
// Корректируем только сумму, если количество равно 0
Если Запись.КоличествоДт = 0 Тогда
Запись.Сумма = 0;
КонецЕсли;
КонецЕсли;
КонецЦикла;
НаборЗаписей.Записать();
Подведем итог нашему исследованию. Для того чтобы избавиться от некорректных цен и сумм при нулевом остатке, следует придерживаться следующих правил:
Партии.Выполнив эти шаги, вы добьетесь чистоты в регистрах бухгалтерии и обеспечите корректный расчет себестоимости материалов в будущем.