Почему в 1С:УТ 11.4 не рассчитывается себестоимость перемещенного товара и как это исправить?

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

Приветствуем вас, коллеги! Мы столкнулись с достаточно распространенной, но от этого не менее серьезной проблемой в 1С:Управлении торговлей, редакция 11.4, когда после внутреннего перемещения товаров между складами, себестоимость при их последующей продаже или списании не рассчитывается. Эта ситуация может привести к искажению финансового результата и затруднениям в управленческом учете. Давайте вместе разберем эту проблему, выясним ее первопричину и найдем эффективное решение.

Исходная проблема и симптомы

Представим типичный сценарий, который часто встречается в торговых компаниях:

В вашей системе 1С:Управление торговлей (редакция 11.4.13.47 или аналогичная) настроены два розничных склада и используется одна организация с системой налогообложения УСН-доходы (без НДС).

  1. Поступление товара: Весь товар поступает на первый розничный склад.
  2. Перемещение: Часть поступившего товара перемещается с первого склада на второй розничный склад с помощью документа Перемещение товаров.
  3. Продажи: Товар реализуется как с первого склада, так и со второго.

В результате мы получаем следующие наблюдения:

Все документы (поступление, перемещение, реализация) оформляются с видом деятельности "не облагается НДС", что соответствует нашей системе налогообложения. Эксперименты с флагом "Несколько организаций" также не приносят ожидаемого эффекта, поскольку в базе ведется учет только по одной организации.

Глубокий анализ механизма учета перемещения товаров

Давайте разберем, как система 1С:УТ 11.4 должна обрабатывать перемещения товаров для корректного расчета себестоимости. Понимание этого процесса поможет нам выяснить, где именно происходит сбой.

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

  1. Регистр накопления Товары организаций: Этот регистр отвечает за оперативный учет наличия товаров в разрезе организаций и складов. При проведении документа Перемещение товаров в нем должны быть созданы две записи:
    • Запись с видом движения "Расход" по складу-отправителю, уменьшающая количество товара.
    • Запись с видом движения "Приход" по складу-получателю, увеличивающая количество товара.
    Таким образом, система отслеживает физическое перемещение товара и его текущее местоположение.
  2. Регистр накопления Себестоимость товаров: Этот регистр предназначен для накопления информации о фактической стоимости товаров, что является основой для расчета себестоимости при их выбытии. Документ Перемещение товаров должен формировать движения, отражающие передачу стоимостной оценки товара со склада-отправителя на склад-получатель. Это гарантирует, что на новом складе товар будет иметь свою корректную себестоимость.

В нашем случае, анализ движений документов показал, что документ Перемещение товаров не формирует движений по этим критически важным регистрам. В регистре Товары организаций мы наблюдали приход товара на первый склад и затем сразу же расход со второго склада при его продаже, минуя какую-либо фиксацию перемещения между складами. Аналогичная картина прослеживалась и в регистре Себестоимость товаров: для прихода товар числился на первом складе, а для продажи — на втором, но без промежуточного движения по перемещению.

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

Роль справочника "Виды запасов" в УТ 11.4

Чтобы понять, почему отсутствие движений по регистрам так критично, нам необходимо подробнее рассмотреть концепцию "Видов запасов", внедренную в 1С:Управление торговлей 11.4.

В УТ 11.4 справочник "Виды запасов" играет центральную роль в корректном расчете себестоимости и оперативном финансовом учете, особенно при перемещениях товаров между складами. Этот справочник не является чем-то, что пользователи заполняют вручную в повседневной работе. Он предназначен для внутренней работы системы и объединяет в себе комплекс важных аналитик, которые определяют, как именно товар должен учитываться. К ним относятся:

Элементы справочника "Виды запасов" создаются системой автоматически при поступлении товаров. При любом выбытии товаров – будь то отгрузка, списание или внутреннее перемещение – система также автоматически должна определять и заполнять соответствующую информацию о видах запасов в документах. Именно через эту аналитику система понимает, какой товар, с какой стоимостью и на какой склад переместился или выбыл. Без корректно определенного и заполненного вида запасов система не может сформировать правильные движения по регистрам учета, так как ей не хватает необходимой детализации для идентификации и стоимостной оценки перемещаемого товара.

В нашем случае, наблюдение, что табличная часть "Виды запасов" в документе Перемещение товаров оказалась пустой (как было замечено в сообщении 6), напрямую указывает на сбой или отключение механизма их автоматического заполнения. Если эта таблица пуста, система не может сформировать корректные движения по регистрам, так как ей не хватает необходимой аналитики для идентификации и стоимостной оценки перемещаемого товара. Это и является основной причиной того, что себестоимость не рассчитывается, а при контроле остатков возникают ошибки.

Диагностика и выявление первопричины

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

  1. Проверка движений документов по регистрам:

    Первым делом мы проанализировали движения, которые формируют документы Поступление товаров и услуг и Перемещение товаров по ключевым регистрам. Было установлено, что Поступление товаров и услуг создает движения по регистрам Товары организаций и Себестоимость товаров на первом складе. Однако документ Перемещение товаров, вопреки ожиданиям, не формировал никаких движений по этим регистрам. Это был первый и самый важный сигнал о проблеме.

  2. Анализ ошибки при контроле остатков:

    Сообщение об ошибке "По организации ZZZ не хватает товара ХХХ..." при включенном флаге "Контролировать остатки товаров организаций" подтвердило наши подозрения. Система воспринимала товар на втором складе как отсутствующий, несмотря на то, что документ перемещения был проведен. Это прямое следствие отсутствия движений по регистру Товары организаций, который должен был отразить наличие товара на новом складе.

  3. Изучение табличной части "Виды запасов":

    По рекомендации (сообщение 4), мы обратили пристальное внимание на документ Перемещение товаров и, в частности, на его табличную часть "Виды запасов". Открыв форму документа, мы обнаружили, что эта табличная часть была абсолютно пустой. Это крайне необычно для корректно работающего типового функционала.

  4. Эксперимент с ручным заполнением:

    Для подтверждения гипотезы о связи между пустой табличной частью "Виды запасов" и отсутствием движений, мы провели эксперимент. В документе Перемещение товаров, используя кнопку "Еще" (или аналогичную, в зависимости от версии формы), мы попытались вручную заполнить эту табличную часть. После ручного заполнения и повторного проведения документа, к нашему удивлению, движения по регистрам Себестоимость товаров и Товары организаций сформировались корректно. Это доказывало, что проблема заключается именно в автоматическом заполнении данной аналитики.

  5. Поиск отключенного механизма автоматического заполнения:

    Поскольку ручное заполнение "Видов запасов" не является приемлемым решением для повседневной работы, мы стали искать причину, почему автоматическое заполнение не срабатывает. Это привело нас к изучению модуля объекта документа Перемещение товаров в режиме конфигуратора.

Первопричина найдена: В ходе изучения модуля объекта документа Перемещение товаров мы обнаружили, что в процедуре ПередЗаписью была закомментирована критически важная строка кода:

// ЗаполнитьВидыЗапасов(Отказ);

Процедура ПередЗаписью является стандартным обработчиком событий, который вызывается платформой 1С перед фактической записью (и, как следствие, проведением) документа. Она отвечает за выполнение предварительных проверок, расчетов и, в нашем случае, за определение необходимости заполнения, перезаполнения или очистки "Видов запасов" в документе. Эта строка срабатывает при проведении непроведенного документа, изменении табличной части или изменении ключевых реквизитов, таких как "Организация", "Дата" или "Налогообложение НДС". Закомментированная строка фактически отключала этот механизм, не позволяя системе автоматически определить и заполнить необходимые аналитики в табличной части "Виды запасов".

Решение проблемы: восстановление автоматического заполнения видов запасов

После выявления первопричины, решение становится очевидным и относительно простым: необходимо восстановить стандартный функционал автоматического заполнения "Видов запасов".

  1. Откройте конфигуратор: Первым шагом является открытие конфигурации 1С:УТ 11.4 в режиме конфигуратора. Для этого завершите работу всех пользователей в режиме 1С:Предприятие.
  2. Найдите объект "Перемещение товаров": В дереве объектов конфигурации, которое обычно расположено слева, разверните ветку "Документы" и найдите объект с именем "Перемещение товаров".
  3. Откройте модуль объекта: Дважды щелкните по документу "Перемещение товаров", чтобы открыть окно свойств документа. Перейдите на вкладку "Модули", затем выберите "Модуль объекта". Откроется текстовый редактор с кодом модуля.
  4. Найдите процедуру "ПередЗаписью": В тексте модуля объекта найдите процедуру с названием ПередЗаписью. Используйте поиск по тексту (обычно Ctrl+F), чтобы быстро ее найти.
  5. Раскомментируйте строку кода: Внутри процедуры ПередЗаписью найдите строку, которая была закомментирована. Она будет выглядеть примерно так: // ЗаполнитьВидыЗапасов(Отказ);

    Удалите символы комментирования (//) в начале строки. В результате строка должна принять следующий вид:

    ЗаполнитьВидыЗапасов(Отказ);

    Важно: Параметр Отказ в процедуре ЗаполнитьВидыЗапасов используется для того, чтобы в случае возникновения каких-либо проблем или невозможности корректного заполнения видов запасов (например, если нет достаточной информации), запись документа была отменена. Это предотвращает проведение документа с некорректными данными, что очень важно для целостности учета.

  6. Обновите базу данных: После внесения изменений в модуль объекта, сохраните изменения в конфигурации (обычно кнопка с изображением дискеты или Ctrl+S). Затем обновите конфигурацию базы данных (F7). Система предложит принять изменения, подтвердите их.
  7. Перепроведите документы и выполните закрытие месяца: После обновления конфигурации необходимо:
    1. Заново открыть и провести все документы Перемещение товаров, которые были созданы некорректно (то есть те, что не формировали движений).
    2. Перепровести все последующие документы реализации, которые использовали товар с проблемных перемещений.
    3. Обязательно выполнить операцию Закрытие месяца, поскольку именно эта регламентная процедура осуществляет окончательный расчет себестоимости и отражает ее в учете.

Восстановление закомментированной строки ЗаполнитьВидыЗапасов(Отказ); позволяет документу Перемещение товаров корректно заполнять "Виды запасов" автоматически. Это, в свою очередь, обеспечивает правильное формирование движений по регистрам Товары организаций и Себестоимость товаров, что критически важно для корректного расчета себестоимости и предотвращения ошибок, связанных с отсутствием товара.

Дополнительные рекомендации для корректного учета себестоимости

Помимо основной проблемы с закомментированной строкой, существуют и другие типовые ситуации, которые могут приводить к некорректному расчету себестоимости в 1С:УТ 11.4. Чтобы избежать подобных проблем в будущем, рассмотрим подробнее важные аспекты ведения учета:

  1. Контроль отрицательных остатков:
    • Проблема: Одной из частых причин некорректного расчета себестоимости является появление отрицательных остатков товаров. Это может произойти из-за ошибок в списании или оприходовании, а также нарушении хронологии документов. Отрицательные остатки по регистру Товары организаций могут привести к тому, что система не сможет определить себестоимость при выбытии товара.
    • Решение: Крайне важно, чтобы флаг "Контролировать остатки товаров организаций" был всегда включен в разделе "НСИ и администрирование" - "Склад и доставка" - "Остатки товаров". Этот механизм предотвращает проведение документов, которые создают отрицательные остатки, тем самым исключая потенциальные ошибки в расчете себестоимости.
  2. Нарушение последовательности документов:
    • Проблема: Ввод или исправление документов "задним числом" может нарушить хронологическую последовательность, в которой система должна рассчитывать себестоимость. Это особенно актуально для методов оценки стоимости, таких как ФИФО.
    • Решение: Регулярно используйте обработку "Восстановление последовательности документов", которая доступна в меню "Финансовый результат и контроллинг", или функцию "Перепровести документы" в рамках процедуры Закрытие месяца. Это обеспечит правильный порядок проведения всех документов, влияющих на себестоимость.
  3. Ошибки в учетной политике:
    • Проблема: Некорректно настроенная учетная политика организации, в частности, методы оценки стоимости товаров (например, Средняя за месяц, ФИФО), может напрямую влиять на расчет себестоимости. Несоответствие выбранного метода реальным бизнес-процессам или его ошибочная настройка могут привести к неверным показателям.
    • Решение: Тщательно проверьте настройки учетной политики организации в разделе "НСИ и администрирование" - "Настройка разделов" - "Финансовый результат и контроллинг". Убедитесь, что выбранный метод оценки стоимости товаров соответствует вашим потребностям и настроен корректно.
  4. Особенности "Интеркампани":
    • Проблема: Если в вашей системе используется схема "Интеркампани" (передача товаров между собственными юридическими лицами одной группы компаний), расчет себестоимости может производиться по совокупности организаций в этой схеме. Это усложняет анализ и требует особого внимания к настройкам передачи товаров.
    • Решение: Если вы используете "Интеркампани", обязательно изучите и учитывайте особенности настройки и работы этого механизма. Убедитесь, что правила передачи товаров между организациями настроены правильно, чтобы себестоимость корректно переходила от одной компании к другой.
  5. Регулярное "Закрытие месяца":
    • Важность: Операция Закрытие месяца является одной из самых важных регламентных операций в 1С:УТ 11.4. Именно в процессе ее выполнения осуществляются фактический расчет себестоимости, списание расходов, определение финансового результата и другие ключевые учетные процедуры.
    • Действия: Выполняйте операцию Закрытие месяца регулярно (как минимум, ежемесячно). Большинство ошибок в расчете себестоимости, нарушения последовательности и другие проблемы проявляются именно на этом этапе. Своевременное закрытие месяца помогает выявить и исправить проблемы до того, как они накопятся и станут более сложными для решения.

Корректная настройка и отсутствие несанкционированных модификаций в типовом функционале, особенно касательно автоматического заполнения "Видов запасов", являются фундаментальными для правильного и бесперебойного учета себестоимости в 1С:УТ 11.4. Всегда проверяйте типовой код, если возникают необъяснимые проблемы с учетом, особенно после любых вмешательств в конфигурацию. Надеемся, что этот подробный разбор поможет вам решить проблему и обеспечит надежный учет в вашей системе.

← На главную