Как в регистре бухгалтерии 1С записать движение только по сумме без количества и зачем это нужно?

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

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

Архитектурная логика: связь ресурсов и признаков учета

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

Благодаря этой связи платформа разделяет хранение ресурсов:

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

Бизнес-смысл: увеличение себестоимости и дополнительные расходы

Запись в дебет счета учета товаров только стоимостной оценки без изменения количества — это классический сценарий включения дополнительных затрат в первоначальную стоимость материально-производственных запасов. Выясним причину, почему это необходимо на практике.

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

  1. Поступление товаров: Документ «Приходная накладная» фиксирует факт поступления 10 штук товара на сумму 1 000 рублей. Формируется проводка Дт Товары - Кт Поставщики (Количество: 10, Сумма: 1000). Себестоимость единицы составляет 100 рублей.
  2. Дополнительные расходы: Сторонняя транспортная компания доставила этот товар, выставив счет на 200 рублей. Документ «Услуги сторонних организаций» (или «Дополнительные расходы») распределяет эту сумму на стоимость уже поступившего товара. Формируется проводка Дт Товары - Кт Поставщики (Количество: 0, Сумма: 200).

В результате на счете «Товары» по данной номенклатуре числится остаток: количество — 10 штук, общая сумма — 1 200 рублей. Себестоимость одной единицы товара возросла со 100 до 120 рублей. Физическое количество товара на складе при этом не изменилось.

Пример программного формирования движений

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


Движение = Движения.Бухгалтерский.Добавить();
Движение.Период = Дата;
Движение.СчетДт = ПланыСчетов.Основной.Товары;
Движение.СчетКт = ПланыСчетов.Основной.РасчетыСПоставщиками;

// Устанавливаем субконто по товару
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = СтрокаТаблицы.Номенклатура;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Склады] = Склад;

// Устанавливаем субконто взаиморасчетов
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = Контрагент;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Договоры] = Договор;

// Количество не заполняем, указываем только сумму
Движение.Сумма = СтрокаТаблицы.СуммаРасходов;

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

Особенности расчета себестоимости и частые ошибки

При реализации учетных механизмов важно учитывать несколько ключевых правил работы с себестоимостью:

  1. Защита от деления на ноль при расчете списания: При списании товаров средняя себестоимость рассчитывается по формуле СуммаСписания = КоличествоК_Списанию * (СуммаОстаток / КоличествоОстаток). Если документ дополнительных расходов был проведен до оприходования товара или товар был полностью списан, может возникнуть ситуация с ненулевой суммой при нулевом количестве. Алгоритм проведения должен всегда проверять, что КоличествоОстаток > 0.
  2. Списание «в ноль»: Если списывается весь количественный остаток товара (КоличествоК_Списанию = КоличествоОстаток), сумма списания должна принудительно приравниваться ко всему остатку суммы (СуммаСписания = СуммаОстаток). Это исключает зависание копеек из-за погрешностей округления.
  3. Управляемые блокировки: Перед чтением остатков себестоимости из виртуальных таблиц регистра бухгалтерии необходимо накладывать исключительную блокировку данных через объект БлокировкаДанных по счету и субконто, чтобы предотвратить коллизии параллельных транзакций.

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

← На главную