При работе в связке 1С:Управление торговлей 11 (УТ) и 1С:Бухгалтерия предприятия 3 (БП) часто возникает классическая проблема: документ реализации оформляется в валюте, печатная форма ТОРГ-12 формируется в УТ с одной рублевой суммой, а после синхронизации в БП та же накладная имеет итоговую сумму, отличающуюся на несколько копеек. Это вызывает недовольство клиентов, путаницу в актах сверки и вопросы со стороны налоговых органов.
В этой статье мы подробно разберем, почему возникают эти расхождения, проанализируем внутренние механизмы обеих конфигураций и рассмотрим программные и административные способы решения этой задачи.
Прежде чем приступать к исправлению, нам необходимо понять физику процесса. Разберем основные факторы, которые приводят к «плавающим» копейкам:
1С:Управление торговлей расчет НДС чаще всего происходит построчно: налог вычисляется для каждой позиции номенклатуры, округляется до копеек, а затем суммируется по всему документу. В 1С:Бухгалтерия предприятия алгоритм может быть настроен иначе — например, расчет налога от общей суммы документа или группы строк с одинаковой ставкой. Из-за правил математического округления итог может отличаться на 1–3 копейки.Enterprise Data часто включена опция сворачивания табличных частей по номенклатуре или номерам ГТД. Когда строки объединяются, расчет НДС и рублевой суммы происходит заново для «укрупненной» строки, что неминуемо ведет к погрешностям.Проанализируем опыт коллег, успешно решивших проблему. Одним из эффективных способов является программное вмешательство в алгоритмы расчета и хранения сумм. Рассмотрим шаги, которые необходимо предпринять:
Шаг 1. Одинаковая методика НДС. Необходимо убедиться, что в обеих конфигурациях установлен одинаковый порядок расчета налога. В УТ это регулируется настройками учетной политики, в БП — учетной политикой организации. Важно, чтобы расчет шел именно «построчно».
Шаг 2. Увеличение точности в регистрах. Рассмотрим вариант изменения разрядности хранения сумм. В некоторых случаях помогает увеличение округления до 4 знаков после запятой в промежуточных регистрах, где хранятся рублевые эквиваленты. Это позволяет минимизировать ошибку накопления при итоговом суммировании документа.
Шаг 3. Изменение логики обмена. Проанализируем код выгрузки данных. Основная задача — передать в БП уже готовые, вычисленные в УТ рублевые суммы для каждой строки, запретив бухгалтерии их пересчитывать. В правилах обмена (или обработчиках синхронизации) нужно прописать жесткую передачу значений полей Сумма, СуммаНДС и Всего в рублевом эквиваленте.
Посмотрим на пример логики, которую можно внедрить в расширение для корректировки записи данных в регистры рублевых сумм. Мы должны гарантировать, что суммы в регистрах УТ максимально точно соответствуют тому, что будет в проводках БП.
// Пример корректировки округления в процедуре расчета рублевых сумм
Процедура ПередЗаписьюРегистраРублевыхСумм(Отказ, Замещение)
Для Каждого Строка Из ЭтотОбъект Цикл
// Вместо стандартного округления до 2 знаков
// используем повышенную точность для промежуточных расчетов,
// если это позволяет структура регистра
Строка.СуммаБезНДСРегл = Окр(Строка.СуммаБезНДСРегл, 4);
Строка.НДСРегл = Окр(Строка.НДСРегл, 4);
КонецЦикла;
КонецПроцедуры
Как отмечают специалисты, внедрение подобной логики (около 50 строк кода в ключевых местах) позволяет добиться полной идентичности документов в обеих базах.
Рассмотрим ситуацию, когда расхождения возникают из-за разного количества строк в УТ и БП. Если в УТ одна позиция разбита на 10 строк из-за разных номеров ГТД, а в БП при обмене они «схлопнулись» в одну строку — сумма НДС почти наверняка изменится.
Рекомендация: Отключите сворачивание табличных частей при синхронизации. Проанализируем настройки обмена: необходимо, чтобы состав строк в документе Реализация товаров и услуг в БП был зеркальным отражением документа в УТ. Печать ТОРГ-12 в этом случае также должна производиться с учетом номеров ГТД в обеих информационных базах.
Если программная доработка невозможна или нежелательна, рассмотрим методологический подход к решению проблемы:
1С:Управление торговлей. Именно эти документы выдаются на руки. Данные в 1С:Бухгалтерия считаются расчетными для налоговой отчетности.Переоценка валютных остатков.Для минимизации разниц крайне важно иметь единый источник курсов валют. Выясним, как загружаются курсы в ваших базах. Если одна база берет курс с РБК, а другая вводится вручную или загружается из другого источника в другое время, даже микроскопическая разница в четвертом знаке курса даст рублевую ошибку в документе на большую сумму.
Решение: Настройте автоматическую загрузку курсов в обеих базах из одного источника (например, ЦБ РФ) на одно и то же время, либо настройте передачу курсов из УТ в БП в рамках того же обмена данными.
Проблема копеек в связке УТ-БП — это не «баг» конкретной версии, а особенность архитектуры распределенных систем. Для ее решения мы рекомендуем:
Следуя этим шагам, мы добьемся того, что суммы в обеих конфигурациях будут совпадать, а клиенты перестанут задавать вопросы о «некрасивых» документах.