Почему в УТ 10.3 переоцениваются авансы от покупателей и как это исправить

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

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

Выясняем причину: методология управленческого учета

Разберем по шагам, почему поведение системы кажется некорректным. В классическом российском бухгалтерском учете (согласно ПБУ 3/2006) активы и обязательства, связанные с получением аванса, не подлежат переоценке после их принятия к учету. То есть, если вы получили 1000 долларов по курсу 90 рублей, в учете фиксируется 90 000 рублей, и эта сумма остается неизменной до момента отгрузки товара.

Однако в УТ 10.3 реализована концепция управленческого учета, которая на момент разработки системы диктовала иную логику. Методисты фирмы 1С исходили из того, что управленцу важно знать текущую рыночную стоимость любого актива или обязательства. Если курс валюты вырос, то и «ценность» вашего долга перед покупателем в рублевом эквиваленте изменилась. Поэтому система переоценивает любой остаток на валютных регистрах, не разделяя его на «аванс» и «задолженность».

Где искать виновника: документ Переоценка валютных средств

Проанализируем ситуацию в программе. Основным инструментом, который вызывает изменение рублевых сумм, является документ ПереоценкаВалютныхСредств. Рассмотрим подробнее, как он работает:

  1. Документ анализирует остатки в регистре накопления ВзаиморасчетыСКонтрагентами.
  2. Он видит остаток в валюте (например, USD) по конкретному договору или заказу.
  3. Программа сравнивает текущий курс (на дату документа) с курсом, по которому остаток числится в регистре.
  4. Если курсы различаются, документ делает запись в регистр с видом «Приход» или «Расход» только по рублевой сумме (управленческая сумма), оставляя валютную сумму неизменной.

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

Различие в структуре регистров

Посмотрим на техническую сторону вопроса. В «1С:Бухгалтерии» для разделения авансов и долгов используются разные субсчета (например, 60.01 и 60.02). В УТ 10.3 регистр ВзаиморасчетыСКонтрагентами — это «плоская» структура. Для него аванс — это просто отрицательный остаток (кредитовое сальдо), а долг — положительный. У регистра нет встроенного признака «Это аванс, его трогать нельзя». Механизм переоценки видит цифру в валюте и просто умножает её на новый курс.

Варианты решения проблемы

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

Способ 1: Ручная корректировка документа переоценки

Если валютных операций немного, можно контролировать заполнение документа ПереоценкаВалютныхСредств вручную. При автоматическом заполнении документа табличная часть заполняется всеми остатками. Мы можем проанализировать строки и удалить те заказы или договоры, по которым висят авансы. Это предотвратит их переоценку в управленческом учете, и суммы в УТ будут совпадать с БП.

Способ 2: Отказ от документа переоценки

В некоторых случаях компании вообще отказываются от использования документа ПереоценкаВалютныхСредств. Если ваша цель — видеть в УТ только «исторические» суммы по курсу на дату совершения операции, этот документ можно просто не проводить. Однако будьте осторожны: в этом случае перестанут переоцениваться и реальные долги покупателей, что может исказить финансовый результат в управленческом балансе.

Способ 3: Программная доработка (для программистов)

Самый надежный и автоматизированный способ — внести изменения в алгоритм заполнения документа ПереоценкаВалютныхСредств. Нам нужно научить систему отличать аванс от дебиторской задолженности. Разберем логику изменений:

В модуле объекта документа (или в обработке заполнения) необходимо модифицировать запрос, который собирает остатки по регистру ВзаиморасчетыСКонтрагентами. Нам нужно добавить условие, которое будет проверять знак остатка в зависимости от вида контрагента (Покупатель/Поставщик).

Пример логики для модификации запроса:


// В запросе получения остатков анализируем знак суммы
// Для покупателя: если остаток < 0, то это аванс
// Для поставщика: если остаток > 0, то это аванс

ВЫБРАТЬ
    ВзаиморасчетыОстатки.ДоговорКонтрагента,
    ВзаиморасчетыОстатки.Сделка,
    ВзаиморасчетыОстатки.СуммаВалОстаток,
    ВзаиморасчетыОстатки.СуммаУпрОстаток
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&МоментВремени, ) КАК ВзаиморасчетыОстатки
ГДЕ
    НЕ (ВзаиморасчетыОстатки.ДоговорКонтрагента.ВидВзаиморасчетов = ЗНАЧЕНИЕ(Перечисление.ВидыВзаиморасчетов.Покупатель) 
        И ВзаиморасчетыОстатки.СуммаВалОстаток < 0)
    И НЕ (ВзаиморасчетыОстатки.ДоговорКонтрагента.ВидВзаиморасчетов = ЗНАЧЕНИЕ(Перечисление.ВидыВзаиморасчетов.Поставщик) 
        И ВзаиморасчетыОстатки.СуммаВалОстаток > 0)

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

Последствия для обмена с Бухгалтерией

Важно понимать, что если в УТ аванс переоценился, а в БП — нет, то при выгрузке документа РеализацияТоваровУслуг могут возникнуть конфликты. БП при проведении реализации по валютному договору будет искать авансы и зачитывать их по курсу оплаты. Если в файле обмена из УТ придет иная рублевая сумма выручки (рассчитанная по курсу отгрузки из-за переоценки аванса), это приведет к расхождению данных между двумя базами. Программная доработка УТ под логику ПБУ является наиболее предпочтительным вариантом для обеспечения идентичности данных.

Резюме

Мы выяснили, что переоценка авансов в УТ 10.3 — это не программная ошибка, а заложенная разработчиками особенность управленческого учета. Чтобы избавиться от «плавающих» сумм, необходимо ограничить действие документа ПереоценкаВалютныхСредств в отношении авансовых платежей. Посмотрите на настройки ваших договоров и регламент формирования документов переоценки — это первый шаг к наведению порядка в валютных взаиморасчетах.

← На главную