При работе с договорами в условных единицах (у.е.) бухгалтеры и программисты часто сталкиваются с ситуацией, когда рублевые суммы в документах «Поступление товаров и услуг» ведут себя непредсказуемо. Особенно остро это проявляется при сравнении двух популярных конфигураций: 1С:Бухгалтерия предприятия (БП) и 1С:Управление производственным предприятием (УПП). Рассмотрим, почему возникают расхождения, какие механизмы конфигураций за это отвечают и как правильно отражать такие операции согласно законодательству.
Для начала проанализируем методологическую основу. В российском учете правила оценки активов в валюте или у.е. регулируются ПБУ 3/2006 «Учет активов и обязательств, стоимость которых выражена в иностранной валюте». Ключевое правило, которое нам необходимо запомнить: авансы не переоцениваются.
Выясним, как это влияет на стоимость товара (счета 10, 41):
Проанализируем пример: мы оплатили 10 евро по курсу 60 рублей (600 руб.). На дату поступления курс составил 70 рублей. Согласно ПБУ 3/2006, товар на 10 счете должен стоить именно 600 рублей, а не 700. Если программа ставит 700 рублей — это методологическая ошибка.
В конфигурации «Бухгалтерия предприятия» реализован механизм «на лету». При проведении документа поступления система проверяет наличие остатков по счету 60.32 (или 60.22 для валюты) в разрезе аналитики. Если программа обнаруживает аванс, она понимает, что стоимость ТМЦ в документе, рассчитанная по курсу на текущую дату, не соответствует ПБУ.
Для исправления этой ситуации вызывается процедура:
БухгалтерскийУчетРасчетовСКонтрагентами.РаспределитьКорректировкуПриРасчетахВУсловныхЕдиницах
Рассмотрим, что именно делает эта процедура:
Именно поэтому пользователи видят «странные» суммы с разницей в копейки или рубли — это результат распределения курсовой разницы аванса на каждую позицию номенклатуры. Если вы видите, что программа делает такие корректировки, значит, в шапке документа поступления указан курс, отличный от курса аванса, и программа приводит учет в соответствие с законом.
В 1С:УПП механизмы учета более консервативны и часто зависят от настроек учетной политики и последовательности действий пользователя. Посмотрим на основные отличия:
Восстановление последовательности расчетов. До этого момента в регистрах и проводках могут висеть временные оценки.Если в УПП суммы на 10 счете не сходятся с БП, первым делом необходимо проверить, восстановлена ли последовательность расчетов по данному контрагенту и договору. Также стоит обратить внимание на то, как заполнена вкладка «Предоплата» в документе (если она используется в вашей версии конфигурации).
Разберем, как сделать так, чтобы в обеих программах данные были идентичными и прозрачными. Основная причина «кривых» сумм — ручное изменение курса в документе поступления без учета аванса.
Выполним следующие рекомендации:
Рассмотрим пример кода, который часто фигурирует при анализе этой проблемы (схематично):
// Фрагмент логики распределения корректировки
СуммаПоКурсуАванса = ОтработанныйАванс.ВалютнаяСумма * ОтработанныйАванс.Курс;
СуммаПоКурсуДокумента = ДокументПоступления.ВалютнаяСумма * ДокументПоступления.Курс;
Если СуммаПоКурсуАванса <> СуммаПоКурсуДокумента Тогда
Разница = СуммаПоКурсуАванса - СуммаПоКурсуДокумента;
// Процедура распределяет эту разницу по строкам ТМЦ
РаспределитьСуммуПоСтрокам(ДокументПоступления.Товары, Разница);
КонецЕсли;
Проанализировав ситуацию, мы приходим к выводу: поведение 1С:Бухгалтерии является более автоматизированным и строгим с точки зрения соблюдения ПБУ 3/2006. УПП требует большего контроля за последовательностью документов. Если же суммы в БП начали сходиться с УПП после перепроведения, это означает, что документы просто «встали» в правильную хронологическую очередь, и потребность в автоматической корректировке «кривого» курса отпала.
Важный итог: любая корректировка на 10 счете при поступлении в у.е. — это не ошибка программы, а способ исправить рублевую оценку товара, чтобы она соответствовала реально затраченным средствам на выплату аванса.