Приветствуем вас, коллеги! Мы столкнулись с достаточно распространенной, но от этого не менее серьезной проблемой в 1С:Управлении торговлей, редакция 11.4, когда после внутреннего перемещения товаров между складами, себестоимость при их последующей продаже или списании не рассчитывается. Эта ситуация может привести к искажению финансового результата и затруднениям в управленческом учете. Давайте вместе разберем эту проблему, выясним ее первопричину и найдем эффективное решение.
Представим типичный сценарий, который часто встречается в торговых компаниях:
В вашей системе 1С:Управление торговлей (редакция 11.4.13.47 или аналогичная) настроены два розничных склада и используется одна организация с системой налогообложения УСН-доходы (без НДС).
Перемещение товаров.
В результате мы получаем следующие наблюдения:
Закрытие месяца.Закрытия месяца не дают никакого результата.Отчет о розничных продажах со второго склада возникает ошибка вида: "По организации ZZZ не хватает товара ХХХ, на складе УУУ по налогообложению Продажа не облагается НДС". Это указывает на то, что система не видит товар на втором складе, несмотря на проведенное перемещение.Все документы (поступление, перемещение, реализация) оформляются с видом деятельности "не облагается НДС", что соответствует нашей системе налогообложения. Эксперименты с флагом "Несколько организаций" также не приносят ожидаемого эффекта, поскольку в базе ведется учет только по одной организации.
Давайте разберем, как система 1С:УТ 11.4 должна обрабатывать перемещения товаров для корректного расчета себестоимости. Понимание этого процесса поможет нам выяснить, где именно происходит сбой.
При корректном перемещении товаров между складами, документ Перемещение товаров играет ключевую роль, формируя необходимые движения по регистрам учета:
Товары организаций: Этот регистр отвечает за оперативный учет наличия товаров в разрезе организаций и складов. При проведении документа Перемещение товаров в нем должны быть созданы две записи:
Себестоимость товаров: Этот регистр предназначен для накопления информации о фактической стоимости товаров, что является основой для расчета себестоимости при их выбытии. Документ Перемещение товаров должен формировать движения, отражающие передачу стоимостной оценки товара со склада-отправителя на склад-получатель. Это гарантирует, что на новом складе товар будет иметь свою корректную себестоимость.
В нашем случае, анализ движений документов показал, что документ Перемещение товаров не формирует движений по этим критически важным регистрам. В регистре Товары организаций мы наблюдали приход товара на первый склад и затем сразу же расход со второго склада при его продаже, минуя какую-либо фиксацию перемещения между складами. Аналогичная картина прослеживалась и в регистре Себестоимость товаров: для прихода товар числился на первом складе, а для продажи — на втором, но без промежуточного движения по перемещению.
Отсутствие движений по регистрам Товары организаций и Себестоимость товаров в документе Перемещение товаров является ключевым индикатором проблемы, поскольку без этих записей система не может корректно отслеживать наличие и стоимость товара на втором складе, что и приводит к ошибкам при расчете себестоимости и контроле остатков.
Чтобы понять, почему отсутствие движений по регистрам так критично, нам необходимо подробнее рассмотреть концепцию "Видов запасов", внедренную в 1С:Управление торговлей 11.4.
В УТ 11.4 справочник "Виды запасов" играет центральную роль в корректном расчете себестоимости и оперативном финансовом учете, особенно при перемещениях товаров между складами. Этот справочник не является чем-то, что пользователи заполняют вручную в повседневной работе. Он предназначен для внутренней работы системы и объединяет в себе комплекс важных аналитик, которые определяют, как именно товар должен учитываться. К ним относятся:
Элементы справочника "Виды запасов" создаются системой автоматически при поступлении товаров. При любом выбытии товаров – будь то отгрузка, списание или внутреннее перемещение – система также автоматически должна определять и заполнять соответствующую информацию о видах запасов в документах. Именно через эту аналитику система понимает, какой товар, с какой стоимостью и на какой склад переместился или выбыл. Без корректно определенного и заполненного вида запасов система не может сформировать правильные движения по регистрам учета, так как ей не хватает необходимой детализации для идентификации и стоимостной оценки перемещаемого товара.
В нашем случае, наблюдение, что табличная часть "Виды запасов" в документе Перемещение товаров оказалась пустой (как было замечено в сообщении 6), напрямую указывает на сбой или отключение механизма их автоматического заполнения. Если эта таблица пуста, система не может сформировать корректные движения по регистрам, так как ей не хватает необходимой аналитики для идентификации и стоимостной оценки перемещаемого товара. Это и является основной причиной того, что себестоимость не рассчитывается, а при контроле остатков возникают ошибки.
Давайте разберем по шагам, как мы пришли к выявлению проблемы и ее окончательному решению. Этот путь поможет вам в самостоятельной диагностике аналогичных ситуаций.
Первым делом мы проанализировали движения, которые формируют документы Поступление товаров и услуг и Перемещение товаров по ключевым регистрам. Было установлено, что Поступление товаров и услуг создает движения по регистрам Товары организаций и Себестоимость товаров на первом складе. Однако документ Перемещение товаров, вопреки ожиданиям, не формировал никаких движений по этим регистрам. Это был первый и самый важный сигнал о проблеме.
Сообщение об ошибке "По организации ZZZ не хватает товара ХХХ..." при включенном флаге "Контролировать остатки товаров организаций" подтвердило наши подозрения. Система воспринимала товар на втором складе как отсутствующий, несмотря на то, что документ перемещения был проведен. Это прямое следствие отсутствия движений по регистру Товары организаций, который должен был отразить наличие товара на новом складе.
По рекомендации (сообщение 4), мы обратили пристальное внимание на документ Перемещение товаров и, в частности, на его табличную часть "Виды запасов". Открыв форму документа, мы обнаружили, что эта табличная часть была абсолютно пустой. Это крайне необычно для корректно работающего типового функционала.
Для подтверждения гипотезы о связи между пустой табличной частью "Виды запасов" и отсутствием движений, мы провели эксперимент. В документе Перемещение товаров, используя кнопку "Еще" (или аналогичную, в зависимости от версии формы), мы попытались вручную заполнить эту табличную часть. После ручного заполнения и повторного проведения документа, к нашему удивлению, движения по регистрам Себестоимость товаров и Товары организаций сформировались корректно. Это доказывало, что проблема заключается именно в автоматическом заполнении данной аналитики.
Поскольку ручное заполнение "Видов запасов" не является приемлемым решением для повседневной работы, мы стали искать причину, почему автоматическое заполнение не срабатывает. Это привело нас к изучению модуля объекта документа Перемещение товаров в режиме конфигуратора.
Первопричина найдена: В ходе изучения модуля объекта документа Перемещение товаров мы обнаружили, что в процедуре ПередЗаписью была закомментирована критически важная строка кода:
// ЗаполнитьВидыЗапасов(Отказ);
Процедура ПередЗаписью является стандартным обработчиком событий, который вызывается платформой 1С перед фактической записью (и, как следствие, проведением) документа. Она отвечает за выполнение предварительных проверок, расчетов и, в нашем случае, за определение необходимости заполнения, перезаполнения или очистки "Видов запасов" в документе. Эта строка срабатывает при проведении непроведенного документа, изменении табличной части или изменении ключевых реквизитов, таких как "Организация", "Дата" или "Налогообложение НДС". Закомментированная строка фактически отключала этот механизм, не позволяя системе автоматически определить и заполнить необходимые аналитики в табличной части "Виды запасов".
После выявления первопричины, решение становится очевидным и относительно простым: необходимо восстановить стандартный функционал автоматического заполнения "Видов запасов".
ПередЗаписью. Используйте поиск по тексту (обычно Ctrl+F), чтобы быстро ее найти.
ПередЗаписью найдите строку, которая была закомментирована. Она будет выглядеть примерно так:
// ЗаполнитьВидыЗапасов(Отказ);
Удалите символы комментирования (//) в начале строки. В результате строка должна принять следующий вид:
ЗаполнитьВидыЗапасов(Отказ);
Важно: Параметр Отказ в процедуре ЗаполнитьВидыЗапасов используется для того, чтобы в случае возникновения каких-либо проблем или невозможности корректного заполнения видов запасов (например, если нет достаточной информации), запись документа была отменена. Это предотвращает проведение документа с некорректными данными, что очень важно для целостности учета.
Перемещение товаров, которые были созданы некорректно (то есть те, что не формировали движений).Закрытие месяца, поскольку именно эта регламентная процедура осуществляет окончательный расчет себестоимости и отражает ее в учете.
Восстановление закомментированной строки ЗаполнитьВидыЗапасов(Отказ); позволяет документу Перемещение товаров корректно заполнять "Виды запасов" автоматически. Это, в свою очередь, обеспечивает правильное формирование движений по регистрам Товары организаций и Себестоимость товаров, что критически важно для корректного расчета себестоимости и предотвращения ошибок, связанных с отсутствием товара.
Помимо основной проблемы с закомментированной строкой, существуют и другие типовые ситуации, которые могут приводить к некорректному расчету себестоимости в 1С:УТ 11.4. Чтобы избежать подобных проблем в будущем, рассмотрим подробнее важные аспекты ведения учета:
Товары организаций могут привести к тому, что система не сможет определить себестоимость при выбытии товара.Закрытие месяца. Это обеспечит правильный порядок проведения всех документов, влияющих на себестоимость.Закрытие месяца является одной из самых важных регламентных операций в 1С:УТ 11.4. Именно в процессе ее выполнения осуществляются фактический расчет себестоимости, списание расходов, определение финансового результата и другие ключевые учетные процедуры.Закрытие месяца регулярно (как минимум, ежемесячно). Большинство ошибок в расчете себестоимости, нарушения последовательности и другие проблемы проявляются именно на этом этапе. Своевременное закрытие месяца помогает выявить и исправить проблемы до того, как они накопятся и станут более сложными для решения.Корректная настройка и отсутствие несанкционированных модификаций в типовом функционале, особенно касательно автоматического заполнения "Видов запасов", являются фундаментальными для правильного и бесперебойного учета себестоимости в 1С:УТ 11.4. Всегда проверяйте типовой код, если возникают необъяснимые проблемы с учетом, особенно после любых вмешательств в конфигурацию. Надеемся, что этот подробный разбор поможет вам решить проблему и обеспечит надежный учет в вашей системе.