В процессе работы с 1С:ERP Управление предприятием 2.4 пользователи часто сталкиваются с ситуацией, когда дополнительные расходы (например, специфические лабораторные тесты, сертификация или упаковка) относятся только к одной позиции из большого документа поступления. Стандартный механизм программы при выборе аналитики Приобретение товаров и услуг распределяет сумму на все позиции в документе пропорционально количеству, весу или стоимости. Рассмотрим, как решить эту задачу и «посадить» расход исключительно на нужную номенклатуру.
Для начала разберем, почему типовой механизм ведет себя именно так. Когда мы создаем документ Приобретение услуг и прочих активов и выбираем статью расходов с типом аналитики Приобретение товаров и услуг, система делает записи в регистр накопления Партии прочих расходов. При выполнении регламентной операции Расчет себестоимости программа обращается к этому регистру.
Несмотря на то, что в регистре Партии прочих расходов присутствует измерение Аналитика учета номенклатуры, при выбранной аналитике «Документ поступления» оно игнорируется программным кодом. Алгоритм распределения в версии 2.4 жестко связан с объектом-основанием (документом). Система видит документ Приобретение товаров и услуг, получает весь список товаров из него и распределяет сумму расхода между ними. Попытки программно заполнить измерение номенклатуры в регистре Партии прочих расходов обычно не приносят успеха, так как запросы в процедурах расчета себестоимости просто не учитывают это поле при данном типе аналитики.
Проанализируем ситуацию: если система распределяет расходы на весь документ, значит, нам нужен документ, в котором будет только одна нужная нам позиция. Рассмотрим пошагово, как это реализовать без программирования:
Перемещение товаров, в который добавляем только ту номенклатуру из исходной партии, на которую должны лечь расходы.Приобретение услуг и прочих активов в качестве аналитики расходов выбираем не исходное Приобретение товаров и услуг, а наш документ Перемещение товаров.Важный нюанс: Этот метод работает даже если товар уже списан в производство или продан. В 1С:ERP 2.4 поддерживается распределение на выбывшие товары, и себестоимость списания будет скорректирована регламентной операцией закрытия месяца.
Если мы не хотим плодить лишние складские документы, разберем альтернативный метод настройки статьи расходов. Выясним, как заставить систему видеть конкретный товар.
На себестоимость товаров.Номенклатура.Расходы на складское хранение и обработку (это позволит точнее управлять распределением).Приобретение услуг и прочих активов выбираем эту статью и в поле «Аналитика» указываем конкретную номенклатуру.Распределение расходов на себестоимость. Там мы увидим нашу сумму. Нам нужно будет указать правило, по которому расход должен «найти» свою партию. Если мы выберем распределение по остаткам, система сама определит партии данной номенклатуры, находящиеся на складе.Рассмотрим случай, когда доп. расходы известны заранее. В этом случае мы можем использовать механизм обособления.
Если приходовать товар под конкретное Назначение (например, под конкретный заказ клиента или направление деятельности), то и дополнительные расходы, отнесенные на это же Назначение, будут распределяться только внутри этого «пула» затрат. Это гарантирует, что расходы не «улетят» на аналогичную номенклатуру из других партий, которые не имеют данного обособления.
Для программистов, которые пытаются разобраться в механике через код, напомним, что распределение происходит в модулях расчета себестоимости (обычно это ДвиженияСебестоимостьТоваров и связанные с ним менеджеры временных таблиц). Суммы дополнительных расходов попадают в регистр Себестоимость товаров с типом записи Доп. расходы.
Посмотрим на пример того, как система определяет базу распределения в упрощенном виде:
// В процедурах расчета формируется запрос к остаткам партий
// Если аналитика = ДокументПоступления, то фильтр идет только по нему:
Запрос.Текст = "ВЫБРАТЬ
| Себестоимость.Номенклатура,
| Себестоимость.Количество,
| Себестоимость.Стоимость
|ИЗ
| РегистрНакопления.СебестоимостьТоваров КАК Себестоимость
|ГДЕ
| Себестоимость.ДокументИсточник = &Партия";
Как мы видим, в типовом запросе нет условия по конкретной номенклатуре, если параметром выступает весь документ. Именно поэтому ручная правка регистра Партии прочих расходов без изменения логики самого расчета не дает результата — расчетчик просто игнорирует заполненное измерение Аналитика учета номенклатуры при обработке типа аналитики Приобретение товаров и услуг.
Проанализировав все способы, можно сделать вывод:
Себестоимость товаров, так как при повторном закрытии месяца система может затереть ваши правки или сформировать некорректные остатки в регистрах партионного учета.