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