Почему не записывается регистр ПродажиСебестоимость при проведении накладной в УТП

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

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

Анализируем настройки учетной политики: Списание партий

Первым делом проанализируем настройки учетной политики управленческого учета. В архитектуре 1С 8.2 (обычные формы) расчет себестоимости неразрывно связан с партионным учетом. Если система не «списала партию», она не может зафиксировать себестоимость продажи.

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

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

Проверяем наличие остатков по партиям на момент проведения

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

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

Важный нюанс: Проверьте время документов. Если Поступление товаров и услуг записано в 12:00:00, а Реализация товаров и услуг в 11:59:59 того же дня, то для реализации партии еще не существуют.

Дополнительные права пользователя и контроль остатков

Проанализируем настройки прав доступа. В конфигурациях на базе УТ 10.2/1.2 (Abby) существуют специфические настройки. Перейдем в Сервис — Пользователи — Настройка дополнительных прав.

Найдем пункт «Разрешить превышение остатка товаров на складе». Если этот флаг установлен, программа «молчит» при нехватке товара, проводит документ, но не создает записи по себестоимости, так как брать ее не из чего. Также обратите внимание на право «Запретить проведение по партиям» — если оно включено для конкретного пользователя, его документы не будут делать движений по регистру Партии товаров на складах.

Режим проведения: Оперативный и Неоперативный

Выясним, как влияет время проведения на результат. При оперативном проведении (текущим временем) система всегда пытается списать партии. Однако при проведении «задним числом» (неоперативно) логика может меняться в зависимости от констант.

Если в системе установлена настройка, запрещающая расчет партий при неоперативном проведении (для ускорения работы), то движения по себестоимости появятся только после группового перепроведения или запуска обработки проведения по партиям.

Сверяем аналитику учета: Склады и Договоры

Часто причина кроется в несовпадении аналитических разрезов. Проанализируем следующие моменты:

  1. Склад: Товар может числиться на «Оптовом складе», а в реализации указан «Розничный». Если в настройках не разрешено автоматическое перемещение, списания партий не произойдет.
  2. Статус партии: В документе поступления товар мог прийти со статусом На комиссию, а в реализации выбран тип операции Продажа. Система не найдет купленного товара и не заполнит себестоимость.
  3. Договор: Проверьте, чтобы в реализации и в поступлении (если есть привязка) использовались корректные договоры с подходящими типами цен и валютами.

Влияние счета 9023 и валютного учета

Рассмотрим специфический момент, упомянутый в обсуждении — галочка «Валютный» на счете себестоимости (например, 9023 в локализациях). Если в настройках плана счетов для счета учета себестоимости включен валютный учет, система при проведении пытается сопоставить валюту документа и валюту счета.

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

Использование обработки «Проведение по партиям»

Если мы убедились, что настройки учетной политики верны, но суммы не появились, воспользуемся штатным механизмом восстановления последовательности. Рассмотрим работу обработки:

Перейдем в меню «Регламентные операции» — «Проведение по партиям». Выберем необходимый период и организацию. Эта обработка принудительно пересчитывает движения по регистру ПродажиСебестоимость, опираясь на фактические поступления. Если после выполнения обработки суммы в отчетах появились — значит, проблема была в нарушении хронологии ввода документов.

Как проверить движения программно (совет для программистов)

Если вы хотите убедиться, заходит ли система в блок формирования движений, можно воспользоваться отладчиком. Найдите процедуру ДвиженияПоРегистрам в модуле документа РеализацияТоваровУслуг. Обратите внимание на вызов функций, связанных с партионным учетом. Обычно это выглядит так:


// Пример упрощенного вызова партионного учета в УТП
ПартионныйУчет.ДвижениеПартийТоваров(Ссылка, СтруктураШапкиДокумента, ТаблицаТовары);

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

Резюме

Подводя итог, если в вашей 1С:УТП перестала записываться себестоимость, пройдите по шагам:

  1. Проверьте флаг «Списывать партии при проведении» в учетной политике.
  2. Убедитесь, что товар физически есть на остатках по партиям (отчет «Ведомость по партиям товаров»).
  3. Проверьте права пользователя на работу с отрицательными остатками.
  4. Запустите обработку «Проведение по партиям» для восстановления последовательности.

Соблюдение этих правил гарантирует корректное формирование финансового результата и точность отчетов по валовой прибыли.

← На главную