Часто пользователи 1С:Управление производственным предприятием (УПП) сталкиваются с ситуацией, которая на первый взгляд кажется нелогичной. Вы открываете отчет по остаткам, видите, что нужный товар на складе есть в достаточном количестве, но при попытке провести документ Списание товаров система выдает ошибку о нехватке остатков. Особенно perplexing ситуация становится, когда на другом складе по этому же товару числится отрицательный остаток.
Рассмотрим классический пример: на «Основном складе» числится 13 единиц товара, а на «Производственном складе» — минус 12 единиц. В отчете по «Основному складу» все хорошо, но документ списания с этого склада ругается, что в остатке всего 1 единица. Давайте разберемся, почему так происходит и как с этим бороться.
Ключ к пониманию проблемы лежит в том, что 1С:УПП — это комплексная система, которая ведет учет одновременно в нескольких «измерениях» или, говоря техническим языком, по разным регистрам накопления. Для нас важны два основных вида учета:
Товары на складах. Он показывает физическое наличие товаров на конкретных складах. Именно его вы, скорее всего, видите в большинстве складских отчетов. Согласно этому регистру, на «Основном складе» действительно лежит 13 единиц товара.Товары организаций. Этот регистр отслеживает товары в собственности конкретной организации, без жесткой привязки к складу. Он важен для расчета себестоимости, формирования финансовой отчетности и правильного учета НДС.Документ Списание товаров при проведении делает движения сразу по нескольким регистрам. И если по складскому учету (Товары на складах) остатка может хватать, то по учету организации (Товары организаций) его может не быть. Система суммирует остатки по всем складам, чтобы понять, сколько товара принадлежит организации в целом. В нашем примере это 13 + (-12) = 1 единица. Именно этот остаток и проверяется при списании, поэтому система выдает ошибку.
Почему так сделано? Это не ошибка, а защитный механизм. Он не позволяет списать товар, который юридически еще не принадлежит организации (например, приходный документ проведен более поздней датой, чем расходный), что предотвращает хаос в расчете себестоимости и финансовом учете.
Прежде чем что-то исправлять, нужно точно убедиться в причине. Проанализируем ситуацию по шагам.
Реализация товаров и услуг или Требование-накладная) был проведен раньше, чем документ прихода (Поступление товаров и услуг). В УПП есть специальные обработки для восстановления последовательности (например, «Проведение по партиям»), которые могут помочь, но сначала нужно найти и исправить проблемные документы вручную.
Рассмотрим несколько методов решения, от самого правильного до временных «костылей» для экстренных случаев.
Это самый правильный и надежный путь, который наводит порядок в системе. Суть его в том, чтобы устранить саму причину отрицательных остатков.
Оприходование товаров или Поступление товаров и услуг) был введен датой или временем позже, чем документ расхода.После наведения порядка в учете отрицательный остаток исчезнет, и ваш документ списания проведется без проблем.
В 1С существует два режима проведения документов: оперативный и неоперативный.
Если вам нужно провести документ срочно, а разбираться с причинами нет времени, попробуйте снять галочку «Оперативное проведение» в документе (или провести его через кнопку «Провести», предварительно сняв с проведения). Часто это помогает, так как система предполагает, что вы позже восстановите правильную последовательность.
Внимание! Этот метод является «костылем» и должен использоваться только в крайних случаях, когда провести документ нужно «здесь и сейчас». После его применения необходимо как можно скорее навести порядок в учете.
Алгоритм действий следующий:
Оприходование товаров на «Производственный склад» на недостающее количество (12 единиц).Списание товаров. Он должен провеcтись.Этот способ позволяет обмануть систему на короткое время, но не решает первопричину проблемы.
Если вы являетесь разработчиком 1С или у вас есть доступ к конфигуратору, наиболее точный способ выяснить причину — это отладка.
Поставьте точку останова в модуле объекта документа Списание товаров в процедуре ОбработкаПроведения(). Запустите проведение в режиме отладки и пошагово пройдитесь по коду. Вы сможете увидеть, какой именно запрос к базе данных возвращает некорректный остаток, какие параметры используются при проверке и в какой момент срабатывает отказ в проведении.