Как в 1С:ERP 2.4 распределить дополнительные расходы на конкретную номенклатуру из определенной партии?

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

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

Анализируем причину поведения системы

Для начала разберем, почему типовой механизм ведет себя именно так. Когда мы создаем документ Приобретение услуг и прочих активов и выбираем статью расходов с типом аналитики Приобретение товаров и услуг, система делает записи в регистр накопления Партии прочих расходов. При выполнении регламентной операции Расчет себестоимости программа обращается к этому регистру.

Несмотря на то, что в регистре Партии прочих расходов присутствует измерение Аналитика учета номенклатуры, при выбранной аналитике «Документ поступления» оно игнорируется программным кодом. Алгоритм распределения в версии 2.4 жестко связан с объектом-основанием (документом). Система видит документ Приобретение товаров и услуг, получает весь список товаров из него и распределяет сумму расхода между ними. Попытки программно заполнить измерение номенклатуры в регистре Партии прочих расходов обычно не приносят успеха, так как запросы в процедурах расчета себестоимости просто не учитывают это поле при данном типе аналитики.

Метод 1. Перемещение на виртуальный склад (Самый надежный способ)

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

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

Важный нюанс: Этот метод работает даже если товар уже списан в производство или продан. В 1С:ERP 2.4 поддерживается распределение на выбывшие товары, и себестоимость списания будет скорректирована регламентной операцией закрытия месяца.

Метод 2. Использование статьи с аналитикой «Номенклатура»

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

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

Метод 3. Обособленный учет по направлениям деятельности

Рассмотрим случай, когда доп. расходы известны заранее. В этом случае мы можем использовать механизм обособления.

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

Технический взгляд на регистры

Для программистов, которые пытаются разобраться в механике через код, напомним, что распределение происходит в модулях расчета себестоимости (обычно это ДвиженияСебестоимостьТоваров и связанные с ним менеджеры временных таблиц). Суммы дополнительных расходов попадают в регистр Себестоимость товаров с типом записи Доп. расходы.

Посмотрим на пример того, как система определяет базу распределения в упрощенном виде:


// В процедурах расчета формируется запрос к остаткам партий 
// Если аналитика = ДокументПоступления, то фильтр идет только по нему:
Запрос.Текст = "ВЫБРАТЬ
|   Себестоимость.Номенклатура,
|   Себестоимость.Количество,
|   Себестоимость.Стоимость
|ИЗ
|   РегистрНакопления.СебестоимостьТоваров КАК Себестоимость
|ГДЕ
|   Себестоимость.ДокументИсточник = &Партия";

Как мы видим, в типовом запросе нет условия по конкретной номенклатуре, если параметром выступает весь документ. Именно поэтому ручная правка регистра Партии прочих расходов без изменения логики самого расчета не дает результата — расчетчик просто игнорирует заполненное измерение Аналитика учета номенклатуры при обработке типа аналитики Приобретение товаров и услуг.

Рекомендации

Проанализировав все способы, можно сделать вывод:

← На главную