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