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