При работе с валютными операциями в конфигурации «1С:Управление производственным предприятием 1.3» (УПП) пользователи и руководство часто обращают внимание на то, что рублевый эквивалент по валютным счетам и договорам не пересчитывается непосредственно в момент проведения первичных расчетно-платежных документов, в отличие от «1С:Бухгалтерии предприятия» (БП). Из-за этого в оборотно-сальдовой ведомости до конца месяца могут возникать парадоксальные ситуации: например, положительный валютный остаток сопровождается отрицательным рублевым сальдо.
Разберем нормативную базу, выясним архитектурные причины такого поведения конфигурации и рассмотрим варианты решения проблемы.
Согласно ПБУ 3/2006 («Учет активов и обязательств, стоимость которых выражена в иностранной валюте»), пересчет стоимости активов и обязательств в рубли должен производиться:
Рассмотрим, как возникает курсовая разница на простом примере:
Если в момент оплаты 15-го числа не рассчитать курсовую разницу, то после списания 1000 руб. долга по бухгалтерским проводкам останется валютный долг $50, а рублевый долг станет равным 0 руб. Чтобы избежать искажения рублевого покрытия, в момент операции или по итогам переоценки остаток обязательств пересчитывается, и фиксируется курсовая разница (доход или расход).
В 1С:Бухгалтерии предприятия расчет курсовых разниц встроен непосредственно в проведение первичных расчетных документов (платежных поручений, поступлений, реализаций). В общем модуле УчетДоходовРасходов вызываются специализированные экспортные функции подготовки таблиц переоценки:
Функция ПодготовитьТаблицуПереоценкаВалютныхОстатковПоПроводкамДокумента(ТаблицаРеквизиты, Движения, Отказ, Ошибки = Неопределено, ЭтоЭкспрессПроверка = Ложь) Экспорт
// Формирование проводок по курсовым разницам в транзакции документа
...
ПодготовитьТаблицуПереоценкаВалютныхОстатков(СтруктураПараметров, Отказ, Ошибки, ЭтоЭкспрессПроверка);
КонецФункции
В 1С:УПП 1.3 разработчики применили совершенно иной архитектурный подход по следующим причинам:
ВзаиморасчетыСКонтрагентами, ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов, РасчетыПоПриобретениюВУсловныхЕдиницахОрганизации и др.). Расчет курсовых разниц жестко завязан на последовательность движений по всем этим регистрам.ПереоценкаВалютныхСредств существенно снижает нагрузку при оперативном вводе первички.Если для оперативной управленческой или финансовой отчетности руководству требуется видеть корректные рублевые остатки без разрывов в течение месяца, можно использовать следующие проверенные инструменты:
В типовом функционале УПП штатным механизмом является запуск обработки «Восстановление состояния расчетов». При ее выполнении система не только упорядочивает партии и документы по временной шкале, но и автоматически формирует и обновляет документы ПереоценкаВалютныхСредств на каждую дату фактического совершения взаиморасчетов.
Проанализируем программный способ автоматизации: запуск переоценки в фоновом режиме через РегламентныеЗадания. Документы переоценки создаются автоматически в конце дня или ночью.
Процедура ВыполнитьПереоценкуВалютныхСредствПоРасписанию() Экспорт
Организации = РегламентированныйУчет.ПолучитьСписокОрганизаций();
Для Каждого ТекОрганизация Из Организации Цикл
ДокументПереоценки = Документы.ПереоценкаВалютныхСредств.СоздатьДокумент();
ДокументПереоценки.Дата = КонецДня(ТекущаяДата());
ДокументПереоценки.Организация = ТекОрганизация;
ДокументПереоценки.ОтражатьВБухгалтерскомУчете = Истина;
ДокументПереоценки.ОтражатьВНалоговомУчете = Истина;
ДокументПереоценки.ОтражатьВУправленческомУчете = Истина;
// Заполнение табличных частей по остаткам
ДокументПереоценки.Заполнить();
Попытка
ДокументПереоценки.Записать(РежимЗаписиДокумента.Проведение);
Исключение
ЗаписьЖурналаРегистрации("ФоноваяПереоценка", УровеньЖурналаРегистрации.Ошибка,,,
ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Для специфических счетов (например, расчетов по долгосрочным кредитам, депозитам или договорам с особыми условиями) в типовой конфигурации предусмотрен регистр сведений СчетаСОсобымПорядкомПереоценки. В нем можно гибко настроить способ пересчета — например, производить переоценку остатка только в момент погашения задолженности или по индивидуальному правилу.
Попытка доработать конфигурацию и перенести логику начисления курсовых разниц напрямую в модули документов (ПлатежноеПоручениеВходящее, ПоступлениеТоваровУслуг) несет серьезные риски:
Таким образом, наиболее надежным и штатным решением для УПП является сохранение типовой архитектуры с автоматическим регулярным формированием документов переоценки через фоновые регламентные задания или обработку восстановления расчетов.