Документ «Расчёт налогов при поступлении активов и услуг (НДС за нерезидента)»
Документ исчисляет налоги и взносы организации-налогового агента (ИПН, ОПВ, ВОСМС, социальный налог, социальные отчисления) с дохода, выплаченного физическому лицу или ИП за поступившие активы и услуги. Создаётся на основании документа поступления, кнопкой «Рассчитать» заполняет налоговые таблицы и при проведении формирует движения по регистрам зарплаты и налогов — бухгалтерские проводки Дт/Кт он не делает.
🎯 Что это и зачем
Когда организация получает товары, работы или услуги от физического лица или ИП (например, по договору ГПХ, авторскому договору, договору подряда), она в ряде случаев становится налоговым агентом: обязана исчислить и удержать из дохода контрагента индивидуальный подоходный налог (ИПН), обязательные пенсионные взносы (ОПВ), взносы на обязательное социальное медицинское страхование (ВОСМС), а также начислить за свой счёт социальный налог (СН) и социальные отчисления (СО).
Документ «Расчёт налогов при поступлении активов и услуг» автоматизирует это: берёт сумму дохода из документа поступления, по кнопке «Рассчитать» подбирает ставки на нужный период и заполняет налоговые таблицы по каждому виду налога/взноса, а при проведении регистрирует начисленные суммы в регистрах учёта зарплаты, налогов и взаиморасчётов с физлицами.
Кто работает: бухгалтеры по расчётам с подрядчиками-физлицами и по зарплатным налогам. Применяется регулярно при работе с физлицами и ИП, оказывающими услуги или поставляющими активы.
🧭 Где найти в программе
Документ не выведен отдельным пунктом в карте навигации Fresh (navigation-map.json), поэтому штатный способ — создать его «на основании» документа поступления:
раздел «Покупка» → «Поступление товаров и услуг» (либо «Поступление НМА», «Поступление доп. расходов») → открыть нужный документ → кнопка «Создать на основании» → «Расчёт налогов при поступлении активов и услуг».
navigation-map.json отсутствует. Маршрут «Покупка → Поступление → Создать на основании» определён по типам документов-оснований из кода (ЗаполнитьПоДокументуОснования) и по подсистеме объекта, а не из карты навигации. Точное расположение пункта (и наличие отдельного журнала) нужно сверить в конкретной конфигурации.👤 Часть 1. Для пользователя
Проходим по шагам: от документа-основания до проведённого расчёта налогов и проверки результатов.
Урок 1. Расчёт налогов на основании поступления
Когда: организация получила услуги/товары/НМА от физлица или ИП и должна исчислить налоги налогового агента.
Шаг 1. Открываем документ-основание
В разделе «Покупка» открываем «Поступление товаров и услуг» (или «Поступление НМА», «Поступление доп. расходов»), которым оформлено приобретение у физлица.
Шаг 2. Создаём расчёт «на основании»
Кнопка «Создать на основании» → выбираем «Расчёт налогов при поступлении активов и услуг». Система перенесёт в новый документ: - Организацию (налоговый агент), - Контрагента (физлицо/ИП — получатель дохода), - ДоговорКонтрагента (подтянется по контрагенту), - СуммуДокумента (сумму дохода — база для расчёта), - ПериодРегистрации (месяц по дате документа), - структурное подразделение и валютные параметры.
Шаг 3. Проверяем шапку и заполняем обязательные поля
Убеждаемся, что заполнены: - Вид расчёта — определяет, какие налоги считать и по каким ставкам (вознаграждение по ГПХ, авторские и т. п.); - Вид учёта НУ — если ведётся учёт КПН; - Счёт затрат и Счёт затрат НУ — куда отнести расходы/налоги в учёте (могут подставиться); - Счёт учёта расчётов с контрагентом — счёт задолженности перед физлицом (как правило, 3350).
Шаг 4. Включаем нужные налоги
Ставим флажки тех налогов и взносов, которые нужно исчислить: Учитывать ИПН, Учитывать ОПВ, Учитывать ВОСМС, Учитывать СН, Учитывать СО. Состав доступных флажков зависит от периода и от того, является ли организация плательщиком СН.
Шаг 5. Нажимаем «Рассчитать»
Кнопка «Рассчитать»: документ предварительно сохраняется (и снимается с проведения), затем подбираются ставки на ПериодРегистрации и заполняются табличные части по каждому налогу — Исчисленный ИПН, Исчисленный ОПВ, Исчисленные ВОСМС, Исчисленный СН, Исчисленные СО, а также Вычеты ИПН (для периодов с 2018 года).
Шаг 6. Проверяем и проводим
Просматриваем суммы по закладкам, при необходимости правим (см. Урок 2). Нажимаем «Провести» или «Записать и закрыть». Документ зарегистрирует начисленные налоги, взносы и задолженность перед физлицом в регистрах.
Урок 2. Ручная корректировка расчёта
Когда: автоматический расчёт нужно поправить вручную (например, скорректировать облагаемую базу, сумму налога или вычет).
- Открываем документ, переходим на нужную закладку (например, «Подоходный налог»).
- Ставим флажок «Ручная корректировка» — он отключает автоматическое проведение (документ перестаёт пересобирать движения сам).
- Правим значения в табличной части: Облагаемая база, Налог, Применённый вычет и т. п.
- Записываем. При установленном флаге документ сохраняется, но движения не переформировываются автоматически.
Урок 3. Перерасчёт при смене периода или контрагента
Если изменить Период регистрации или Контрагента, программа очищает все налоговые таблицы (защита от рассинхронизации данных) и при смене контрагента переподбирает договор и счета учёта. После такого изменения обязательно нажмите «Рассчитать» заново.
🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 (Documents/РасчетНалоговПриПоступленииАктивовУслуг/Ext/ObjectModule.bsl, модуль небольшой — прочитан целиком), плюс разбор objects/ и business-logic/.
Структура объекта
Ключевые реквизиты шапки (обязательные помечены в objects/ как ShowError): Организация, Контрагент, ДоговорКонтрагента, ДокументОснование, ВидРасчета, ВидУчетаНУ, ПериодРегистрации, СуммаДокумента, СчетЗатрат, СчетЗатратНУ, СчетУчетаРасчетовСКонтрагентом. Управляющие флаги: УчитыватьИПН, УчитыватьОПВ, УчитыватьВОСМС, УчитыватьСН, УчитыватьСО, УчитыватьКПН, РучнаяКорректировка. Аналитика затрат: СубконтоДт1..3, СубконтоДтНУ1..3.
Табличные части (по objects/): ИсчисленныйИПН, ИсчисленныйОПВ, ИсчисленныеВОСМС, ИсчисленныйСН, ИсчисленныеСО, ВычетыИПН. Каждая детализирована по физлицу и месяцу налогового периода (ФизЛицо, Налог/Взнос/Отчисление, ОблагаемаяБаза, МесяцНалоговогоПериода).
ОбработкаПроверкиЗаполнения фигурируют реквизиты ИсчисленныйСН, ИсчисленныеСО, а также СчетЗатрат/СчетЗатратНУ и ВидРасчета с реквизитами ОблагаетсяСН/ОблагаетсяСО. Это подтверждает состав ТЧ из objects/. Полный список реквизитов и точные типы нужно дочитать по Documents/.../Ext/ManagerModule.bsl (процедура Рассчитать, 481 строка) — он в разборе не приведён построчно.Жизненный цикл (обработчики ObjectModule)
| Обработчик | Что делает (по реальному коду) |
|---|---|
ЗаполнитьНаборыЗначенийДоступа (экспорт) |
RLS: заполняет наборы доступа по организации и структурному подразделению через ОбщегоНазначенияБК |
ОбработкаЗаполнения |
При вводе на основании вызывает ЗаполнитьПоДокументуОснования; для структуры — ЗаполнитьЗначенияСвойств; затем ЗаполнениеДокументов.ЗаполнитьШапкуДокумента |
ОбработкаПроверкиЗаполнения |
Главная валидация (см. ниже): обязательность видов налогов, счетов затрат, соответствие способа обложения СН/СО, проверка физлица у контрагента; формирует массив непроверяемых реквизитов |
ОбработкаПроведения |
При РучнаяКорректировка — сразу выход; иначе готовит параметры и делегирует формирование движений модулю РасчетЗарплатыСервер по каждому включённому налогу |
ПриКопировании |
Ставит дату на текущую дату пользователя; при отключённой вариативности счетов СО — ОчиститьСчетаЗатрат |
ПередЗаписью |
РаботаСДоговорамиКонтрагентов.ЗаполнитьДоговорПередЗаписью — автозаполнение договора |
ЗаполнитьПоДокументуОснования (экспорт) |
Если основание — ПоступлениеТоваровУслуг / ПоступлениеНМА / ПоступлениеДопРасходов, делегирует менеджеру документа |
ОчиститьСчетаЗатрат |
Обнуляет СчетЗатрат, СчетЗатратНУ и субконто Дт (БУ и НУ) |
Как формируется проведение — реальный код (3.0.72.1)
Главное: бухгалтерских проводок (Дт/Кт) документ не делает. ОбработкаПроведения для каждого включённого налога собирает таблицы доходов/исчисленных сумм и делегирует запись движений общему модулю РасчетЗарплатыСервер (а зачёт/погашение задолженности — УправлениеВзаиморасчетамиСервер). В конце — постоянные разницы в НУ через ПроцедурыНалоговогоУчета.
Источник: ObjectModule.bsl, процедура ОбработкаПроведения (стр. 151), сокращённо:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
Если РучнаяКорректировка Тогда
Возврат; // ручное управление движениями
КонецЕсли;
ПараметрыПроведения = Документы.РасчетНалоговПриПоступленииАктивовУслуг.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
Если Отказ Тогда Возврат; КонецЕсли;
Реквизиты = ПараметрыПроведения.Реквизиты[0];
Если УчитыватьИПН Тогда
// … сведения о доходах ИПН, расчёты с бюджетом, сведения о вычетах ИПН …
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаИПНСведенияОДоходах, "ИПНСведенияОДоходах", Движения, Отказ);
РасчетЗарплатыСервер.СформироватьДвиженияИПНРасчетыСБюджетом(Реквизиты, ПараметрыПроведения.ИсчисленныйИПН, Движения, Отказ, Реквизиты.УпрощенныйУчетИПНиОПВ);
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаСведенияОбИсчисленииВычетовИПН, "СведенияОбИсчисленииВычетовИПН", Движения, Отказ);
КонецЕсли;
Если УчитыватьОПВ Тогда
// ОПВ к перечислению (при упрощённом учёте), сведения о доходах ОПВ, расчёты с фондами …
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаОПВСведенияОДоходах, "ОПВСведенияОДоходах", Движения, Отказ);
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаИсчисленныйОПВ, "ОПВРасчетыСФондами", Движения, Отказ);
КонецЕсли;
Если УчитыватьВОСМС Тогда
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаВОСМССведенияОДоходах, "ВОСМССведенияОДоходах", Движения, Отказ);
РасчетЗарплатыСервер.СформироватьДвиженияВОСМСРасчетыСФондами(Реквизиты, ПараметрыПроведения.ИсчисленныеВОСМС, Движения, Отказ, Реквизиты.УпрощенныйУчетИПНиОПВ);
КонецЕсли;
// взаиморасчёты с физлицами и погашение задолженности
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаВзаиморасчетыСКонтрагентами, "ВзаиморасчетыОрганизацийСКонтрагентамиФизЛицами", Движения, Отказ);
УправлениеВзаиморасчетамиСервер.СформироватьДвиженияПогашениеЗадолженности(ТаблицаВзаиморасчеты, ПараметрыПроведения.РеквизитыПогашенияЗадолженности, Движения, Отказ);
Если УчитыватьСН И Реквизиты.ОрганизацияЯвляетсяПлательщикомСН Тогда
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаСНСведенияОДоходах, "СНСведенияОДоходах", Движения, Отказ);
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаИсчисленныйСН, "СНИсчисленный", Движения, Отказ);
КонецЕсли;
Если УчитыватьСО Тогда
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаСОСведенияОДоходах, "СОСведенияОДоходах", Движения, Отказ);
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаИсчисленныйСО, "СОРасчетыСФондами", Движения, Отказ);
КонецЕсли;
// отражение затрат по СН и СО в регл. учёте + постоянные разницы НУ
РасчетЗарплатыСервер.СформироватьДвиженияОтраженияЗатратПоСНВРеглУчете(ТаблицаЗатратПоСоциальномуНалогу, Движения, Отказ);
РасчетЗарплатыСервер.СформироватьДвиженияОтраженияЗатратПоСОВРеглУчете(ПараметрыПроведения.ТаблицаЗатратПоСоциальнымОтчислениям, Движения, Отказ);
ПроцедурыНалоговогоУчета.ОтразитьПостоянныеРазницыВНУ(ПараметрыПроведения.Реквизиты, Движения, Отказ);
КонецПроцедуры
Кто что формирует (вызов → смысл):
| Вызов в коде | Какой учёт пишет |
|---|---|
РасчетЗарплатыСервер.СформироватьДвижения(…, "ИПНСведенияОДоходах", …) |
сведения о доходах для ИПН (по физлицу/периоду) |
РасчетЗарплатыСервер.СформироватьДвиженияИПНРасчетыСБюджетом |
расчёты по ИПН с бюджетом |
РасчетЗарплатыСервер.СформироватьДвижения(…, "ОПВСведенияОДоходах"/"ОПВРасчетыСФондами", …) |
сведения о доходах и расчёты с пенсионным фондом |
РасчетЗарплатыСервер.СформироватьДвиженияВОСМСРасчетыСФондами |
расчёты с фондом ВОСМС |
РасчетЗарплатыСервер.СформироватьДвижения(…, "ВзаиморасчетыОрганизацийСКонтрагентамиФизЛицами", …) |
задолженность организации перед физлицом (взаиморасчёты) |
УправлениеВзаиморасчетамиСервер.СформироватьДвиженияПогашениеЗадолженности |
погашение/зачёт задолженности по основанию |
РасчетЗарплатыСервер.СформироватьДвижения(…, "СНИсчисленный"/"СНСведенияОДоходах", …) |
социальный налог и сведения о доходах для СН |
РасчетЗарплатыСервер.СформироватьДвижения(…, "СОРасчетыСФондами"/"СОСведенияОДоходах", …) |
социальные отчисления и сведения по СО |
РасчетЗарплатыСервер.СформироватьДвиженияОтраженияЗатратПоСН/СОВРеглУчете |
отражение затрат по СН/СО в регламентированном (бухгалтерском) учёте |
ПроцедурыНалоговогоУчета.ОтразитьПостоянныеРазницыВНУ |
постоянные разницы в налоговом учёте |
Важные детали из кода:
- РучнаяКорректировка = Истина → авто-проведение полностью пропускается (Возврат сразу после ПодготовитьНаборыЗаписейКПроведению) — движения остаются под ручным управлением.
- Состав движений динамический: каждая ветка (Если УчитыватьИПН, Если УчитыватьОПВ, …) включается своим флагом. СН формируется только если УчитыватьСН И Реквизиты.ОрганизацияЯвляетсяПлательщикомСН.
- Перед расчётами с бюджетом/фондами всегда пишутся «Сведения о доходах» — это база для отчётности (формы 200.00 и т. п.).
- Бухгалтерское отражение затрат по СН/СО идёт через специализированные процедуры …ОтраженияЗатратПо…ВРеглУчете, то есть конкретные счета определяются логикой РасчетЗарплатыСервер/учётной политикой, а не «плоскими» проводками в документе.
objects/ утверждает, что документ пишет проводки в регистры Типовой/Налоговый «Дт СчётЗатрат Кт СчётУчётаРасчётов с субконто». В реальном ОбработкаПроведения явных движений по РегистрБухгалтерии.Типовой/Налоговый нет — есть только регистры накопления (зарплатные/налоговые) и отражение затрат по СН/СО + постоянные разницы НУ через профильные модули. Источник истины — реальный код и отчёт «Движения документа» на проведённом объекте. Возможно, бухгалтерские проводки формируются внутри РасчетЗарплатыСервер.* или в ManagerModule/ПроведениеРасчетовСервер — это нужно проверить отдельно (см. issues).1)
ВидРасчета(способы обложения ИПН/ОПВ/СН/СО/ВОСМС — реквизитыОблагаетсяСН,ОблагаетсяСОи т. п.); 2) регистры ставок —СведенияОСтавкахОСМС,СведенияОСтавкахНалоговСборовОтчислений(нет ставки на период → налог не посчитается); 3) статусы организации — плательщик СН/ОПВ/налога на прибыль (УчетнаяПолитикаСервер.ОрганизацияЯвляетсяПлательщикомСН,ПроцедурыНалоговогоУчета); 4) регламентированный производственный календарь на месяц (без негоРассчитатьпрерывается). Документ — оркестратор; вся «начинка» расчёта и движений вРасчетЗарплатыСервериManagerModule.Рассчитать.
Валидации (ОбработкаПроверкиЗаполнения)
Реальная логика (фрагменты из кода):
- Обязателен хотя бы один вид налога. Ветвление по
ОрганизацияЯвляетсяПлательщикомСНи по дате: - с 01.01.2025 требуется ОПВ/ИПН/СН/ВОСМС или СО;
- до 2025 — ОПВ/ИПН/ВОСМС (и СН для плательщика СН).
Иначе —
СообщитьПользователю(… "Не указан вид налога…", Отказ). - Счёт затрат для СН. Если
ИсчисленныйСН.Итог("Налог") <> 0, аСчетЗатратне заполнен — ошибка. Дополнительно: еслиВидРасчета.ОблагаетсяСН = НеОблагаетсяЦеликом, а сумма СН ≠ 0 — требование очистить СН. - Счёт затрат для СО. Если
ИсчисленныеСО.Итог("Отчисление") <> 0и включена вариативность счетов СО (ИспользоватьВариативностьОпределенияСчетовСО(ПериодРегистрации)), аСчетЗатратпуст — ошибка. Аналогично проверкаВидРасчета.ОблагаетсяСО. - Физлицо у контрагента.
Справочники.ФизическиеЛица.ПроверитьИСоздатьФизЛицоПоКонтрагенту(...)— если у контрагента не заполнен реквизит «Физическое лицо», выдаётся предупреждение. - Управление непроверяемыми реквизитами. В
МассивНепроверяемыхРеквизитовисключаются:СчетЗатратНУ(если нет отражения в НУ),СчетЗатрат/СчетЗатратНУ(если СН/СО не считаются или нет строк),ИсчисленныеВОСМС/ИсчисленныйИПН(если соответствующий флаг выключен),ДоговорКонтрагента(если опция «Вести учёт по договорам» выключена). В конце —ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива.
Зависимости (общие модули)
РасчетЗарплатыСервер (ядро расчёта и формирования движений по всем налогам/взносам — ~29 вызовов), ПроцедурыНалоговогоУчета (статусы плательщика, постоянные разницы НУ), УчетнаяПолитикаСервер (плательщик СН), УправлениеВзаиморасчетамиСервер (взаиморасчёты/погашение задолженности), ПроведениеСервер (наборы записей), РаботаСДоговорамиКонтрагентов (договор при записи), ЗаполнениеДокументов/ЗаполнениеДокументов.ЗаполнитьШапкуДокумента, ОбщегоНазначения/ОбщегоНазначенияБК. Реальное проведение для менеджера делегируется ПроведениеРасчетовСервер (по разбору ManagerModule).
- Точка входа автозаполнения —
ЗаполнитьПоДокументуОснования: основанием могут быть толькоПоступлениеТоваровУслуг,ПоступлениеНМА,ПоступлениеДопРасходов(жёсткая проверка типа). Если расширяете перечень оснований — правьте и здесь, и вВводитсяНаОсновании.РучнаяКорректировка = Истина→ проведение пропускается (раннийВозврат). При автоматизации: чтобы провести с пересчётом — снять флаг.Рассчитатьтребует записи и снимает проведение (см.ФормаДокумента.Рассчитать). Без заполненного производственного календаря наПериодРегистрациирасчёт не пройдёт.- Смена
Контрагент/ПериодРегистрацияочищает все налоговые ТЧ и вычеты ИПН — после программных изменений этих полей обязателен повторныйРассчитать.- Вариативность счетов СО (
ИспользоватьВариативностьОпределенияСчетовСО) меняет и набор обязательных реквизитов (СчетЗатрат/СчетЗатратНУ), и поведениеПриКопировании(очистка счетов) — учитывайте при настройке периодов.
🔗 Связанные разделы
- postuplenie-tmz-i-uslug — основной документ-основание (поступление товаров и услуг)
- postuplenie-nma — основание: поступление нематериальных активов
- postuplenie-dop-rashodov — основание: поступление дополнительных расходов
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание (на релизе 3.0.72.1) | 🆕 |