Документ «Удержание ИПН и ОПВ (налоговый учёт)»
Документ фиксирует в налоговом учёте суммы, удержанные из доходов сотрудников: индивидуальный подоходный налог (ИПН), обязательные пенсионные взносы (ОПВ) и взносы на обязательное соц.-мед. страхование (ВОСМС). Он не делает бухгалтерских проводок (Дт/Кт), а пишет в три специализированных регистра накопления, по которым потом контролируют задолженность перед бюджетом и фондами и строят регламентированную отчётность. Заполняется автоматически по данным начислений за месяц.
🎯 Что это и зачем
После того как зарплата за месяц начислена, из доходов каждого сотрудника по законодательству РК нужно удержать: - ИПН — индивидуальный подоходный налог (перечисляется в бюджет); - ОПВ — обязательные пенсионные взносы (перечисляются в ЕНПФ / пенсионные фонды); - ВОСМС — взносы на обязательное социальное медицинское страхование (перечисляются в фонд медстрахования).
Документ «Удержание ИПН и ОПВ (налоговый учёт)» собирает эти удержанные суммы по каждому физлицу и месяцу налогового периода и фиксирует их в налоговом учёте. На основе этих данных программа знает, сколько организация должна перечислить в бюджет и фонды, и формирует регламентированные отчёты (расчёт ИПН и СН, отчётность по ОПВ/ВОСМС).
Важно про природу документа. Это расчётный зарплатный документ налогового учёта, а не документ бухгалтерских проводок. Он не формирует движений Дт/Кт по плану счетов — он пишет только в регистры накопления по расчётам с бюджетом и фондами. Бухгалтерские проводки (например, по счетам 3120 «ИПН», 3220 «ОПВ», 3210/3240 по соц. отчислениям и ВОСМС, 3350 «Краткосрочная задолженность по оплате труда») делает отдельный документ отражения зарплаты в регламентированном учёте, а не этот документ. (Подробности — в Части 2.)
Кто работает: бухгалтеры и расчётчики зарплаты, ежемесячно, после начисления зарплаты.
🧭 Где найти в программе
Документ относится к подсистеме «Зарплата» (учёт расчётов с бюджетом и фондами по удержаниям из доходов физлиц). Открывается из раздела «Зарплата»; новый документ создаём кнопкой «Создать».
navigation-map.json (релиз 3.0.72.1) для Документ.УдержаниеИПНиОПВНУ точного маршрута нет — есть только общий ориентир по подсистеме «Зарплата» (ближайший зафиксированный пункт раздела — «Начисление зарплаты»). Раздел определён по метаданным/подсистеме объекта; точный пункт меню во Fresh нужно сверить в интерфейсе. Это пробел карты навигации, его стоит закрыть после проверки в конфигурации.👤 Часть 1. Для пользователя
Проходим по шагам, как в курсе: от пустого документа до проведённого расчёта удержаний и проверки движений по регистрам.
Урок 1. Расчёт всех удержаний за месяц (основной сценарий)
Когда: каждый месяц, после того как проведены документы начисления зарплаты.
Шаг 1. Создаём документ
Раздел «Зарплата» → журнал документа → «Создать». Открывается пустая форма документа.
Шаг 2. Заполняем шапку
Два поля обязательны — без них расчёт и проведение невозможны:
- Организация — организация-работодатель, которая производит удержания.
- Месяц начисления (реквизит ПериодРегистрации) — месяц, за который начислены доходы. Это первое число месяца (например, 01.01.2026 для января).
Опционально:
- Структурное подразделение — если хотите рассчитать удержания только по конкретному подразделению (филиалу, департаменту). Если оставить пустым — расчёт идёт по всей организации.
- Подразделение (ПодразделениеОрганизации), Ответственный, Комментарий — по необходимости.
Шаг 3. Рассчитываем удержания
Нажимаем команду расчёта («Рассчитать» / «Рассчитать все»). Программа: 1. определит головную организацию учёта зарплаты; 2. подберёт работников за указанный месяц; 3. возьмёт из регистров начислений уже исчисленные суммы ИПН, ОПВ, ВОСМС; 4. учтёт ранее удержанные суммы (остатки); 5. заполнит три табличные части — Удержанный ИПН, Удержанный ОПВ, Удержанные ВОСМС.
Шаг 4. Проверяем суммы по сотрудникам
На каждой вкладке — строки «Сотрудник → Сумма → Месяц налогового периода». Проверяем, что суммы соответствуют начислениям.
Шаг 5. Проводим
«Провести» или «Записать и закрыть». После проведения суммы попадут в регистры расчётов с бюджетом и фондами.
Шаг 6. Проверяем движения по регистрам
В отличие от документов продажи/закупки, здесь нет бухгалтерских проводок Дт/Кт. Чтобы проверить результат — откройте «Движения документа» и посмотрите регистры ИПН расчёты с бюджетом, ОПВ подлежит перечислению в фонды, ВОСМС подлежит перечислению в фонды.
Урок 2. Пересчитать только один вид удержания
Когда: нужно скорректировать, например, только ИПН, не трогая ОПВ и ВОСМС.
- Открываем документ, проверяем Организацию и Месяц начисления.
- Используем частную команду расчёта: «Рассчитать ИПН», «Рассчитать ОПВ» или «Рассчитать ВОСМС».
- Пересчитается только выбранная табличная часть; остальные две останутся как были.
- Записываем/проводим.
Урок 3. Ручная корректировка сумм
Когда: нужно вручную задать суммы (исправить ошибку, особый случай) и не дать программе перезатереть их при автопроведении.
- Открываем документ, устанавливаем флаг «Ручная корректировка».
- Вручную правим суммы в нужной табличной части, при необходимости добавляем/удаляем строки сотрудников.
- Проводим документ.
Урок 4. Полный пересчёт «с нуля»
Когда: после правки начислений зарплаты нужно пересобрать документ.
- Если документ проведён — отменяем проведение.
- Очищаем табличные части (команда очистки) — шапка остаётся.
- Проверяем Организацию и Месяц начисления.
- Снова жмём «Рассчитать».
- Проверяем и проводим.
🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 (Documents/УдержаниеИПНиОПВНУ/Ext/ObjectModule.bsl, частично ManagerModule.bsl), плюс разбор objects/ и business-logic/. Несостыковки с авто-разбором вынесены в поле issues и помечены [KZ30-xxxx].
Структура объекта
Реквизиты шапки. Обязательные (механизм платформы fill_value_required = ShowError): Организация, ПериодРегистрации («Месяц начисления»). Прочие: СтруктурноеПодразделение (фильтр сотрудников при расчёте), ПодразделениеОрганизации, РучнаяКорректировка (Булево — отключает автоформирование движений), Ответственный, Автор, Комментарий, КраткийСоставДокумента (служебная строка-представление, заполняется кодом).
Табличные части — три расчётные + одна служебная:
| ТЧ | Ключевые колонки | Назначение |
|---|---|---|
УдержанныйИПН |
ФизЛицо, Налог, МесяцНалоговогоПериода, СтруктурнаяЕдиница, ПодразделениеОрганизации |
удержанный ИПН по физлицу |
УдержанныйОПВ |
ФизЛицо, Взнос, МесяцНалоговогоПериода, СтруктурнаяЕдиница, ПодразделениеОрганизации |
удержанные ОПВ |
УдержанныеВОСМС |
ФизЛицо, Взнос, МесяцНалоговогоПериода, СтруктурнаяЕдиница, ПодразделениеОрганизации |
удержанные ВОСМС |
ФизическиеЛица |
ФизическоеЛицо |
служебная — для механизма управления доступом (RLS) |
Налог, у ОПВ/ВОСМС — Взнос.Жизненный цикл (обработчики ObjectModule)
| Обработчик | Что делает (по реальному коду 3.0.72.1) |
|---|---|
ЗаполнитьНаборыЗначенийДоступа |
Заполняет наборы значений доступа по Организация / СтруктурноеПодразделение / списку физлиц из ТЧ ФизическиеЛица (вызов РасчетЗарплатыСервер.ЗаполнитьНаборыПоОрганизацииСтрутурномуПодразделениюСпискуФизЛиц). Это RLS, не бизнес-логика проведения. |
ОбработкаЗаполнения |
При заполнении из Структура удаляет ключ Автор (чтобы не копировался) и переносит значения; затем ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект). |
ОбработкаПроверкиЗаполнения |
Если хотя бы одна из трёх ТЧ (ИПН/ОПВ/ВОСМС) непуста — исключает все три из стандартной проверки заполнения (через массив непроверяемых реквизитов). Фактически гарантирует «нужна хотя бы одна непустая таблица». |
ПередЗаписью |
При ОбменДанными.Загрузка — выходит. Иначе собирает массив трёх ТЧ и формирует КраткийСоставДокумента (ПроцедурыУправленияПерсоналомСервер.ЗаполнитьКраткийСоставДокумента(..., "ФизЛицо")). Других правок данных не делает. |
ОбработкаПроведения |
Готовит наборы записей, при РучнаяКорректировка — выходит; иначе формирует движения по трём регистрам накопления (см. ниже). |
ПриКопировании |
Ставит Дата = НачалоДня(ТекущаяДатаПользователя()). |
objects/, business-logic/) описывает ПередЗаписью как «контроль и исправление корректности данных всех трёх ТЧ», а сам документ — как формирующий «бухгалтерские проводки». Реальный код это не подтверждает: ПередЗаписью только строит КраткийСоставДокумента, а ОбработкаПроведения пишет исключительно в регистры накопления — никаких движений по плану счетов (Дт/Кт) документ не делает.Как формируется проведение — реальный код (3.0.72.1)
Главное: документ — оркестратор. ОбработкаПроведения готовит параметры (временные таблицы из ТЧ) и делегирует формирование движений общему модулю РасчетЗарплатыСервер. Поэтому состав измерений/ресурсов регистра задаёт не документ, а профильный модуль зарплаты.
Источник: ObjectModule.bsl, процедура ОбработкаПроведения (стр. 88), целиком:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
Если РучнаяКорректировка Тогда
Возврат; // ручное управление движениями
КонецЕсли;
ПараметрыПроведения = Документы.УдержаниеИПНиОПВНУ.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Реквизиты = ПараметрыПроведения.Реквизиты[0];
// ИПН → регистр «ИПНРасчетыСБюджетом»
ТаблицаУдержанныйИПН = РасчетЗарплатыСервер.ПодготовитьТаблицуИсчисленныхНалоговВзносовОтчислений(Реквизиты,
ПараметрыПроведения.УдержанныйИПН,
Движения.ИПНРасчетыСБюджетом.ВыгрузитьКолонки(),
Отказ);
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаУдержанныйИПН, "ИПНРасчетыСБюджетом", Движения, Отказ);
// ОПВ → регистр «ОПВПодлежитПеречислениюВФонды»
ТаблицаУдержанныйОПВ = РасчетЗарплатыСервер.ПодготовитьТаблицуИсчисленныхНалоговВзносовОтчислений(Реквизиты,
ПараметрыПроведения.УдержанныйОПВ,
Движения.ОПВПодлежитПеречислениюВФонды.ВыгрузитьКолонки(),
Отказ);
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаУдержанныйОПВ, "ОПВПодлежитПеречислениюВФонды", Движения, Отказ);
// ВОСМС → регистр «ВОСМСПодлежитПеречислениюВФонды»
ТаблицаУдержанныеВОСМС = РасчетЗарплатыСервер.ПодготовитьТаблицуИсчисленныхНалоговВзносовОтчислений(Реквизиты,
ПараметрыПроведения.УдержанныеВОСМС,
Движения.ВОСМСПодлежитПеречислениюВФонды.ВыгрузитьКолонки(),
Отказ);
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаУдержанныеВОСМС, "ВОСМСПодлежитПеречислениюВФонды", Движения, Отказ);
КонецПроцедуры
Разбор по шагам:
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект)— стандартная инициализация наборов записей перед проведением (есть в каждом зарплатном документе).Если РучнаяКорректировка Тогда Возврат— при ручной корректировке весь авто-расчёт движений пропускается: запишется то, что подготовлено платформой/введено пользователем. Это поведение из Урока 3.ПодготовитьПараметрыПроведения(Ссылка, Отказ)— функцияManagerModule: пакетным запросом читает реквизиты документа (Организация, головную организацию,ПериодРегистрациии т.д.) и выгружает три табличные части в временные таблицы (ТекстЗапросаУдержанныйИПН/ОПВ/ВОСМС). Учитывает функциональную опциюПоддержкаРаботыСоСтруктурнымиПодразделениями.- На каждый вид удержания — пара вызовов:
ПодготовитьТаблицуИсчисленныхНалоговВзносовОтчислений(...)приводит данные ТЧ к структуре колонок целевого регистра, аСформироватьДвижения(..., "ИмяРегистра", Движения, Отказ)записывает строки в нужный набор записей.
СформироватьДвижения принимает имя регистра строкой — поэтому привязка «ТЧ → регистр» жёстко зафиксирована в этой процедуре, а не где-то в настройках.Движения по регистрам
Документ пишет в три регистра накопления (вид «Остатки»), бухгалтерских проводок не делает:
| Регистр | Источник (ТЧ → колонка) | Что отражает |
|---|---|---|
ИПНРасчетыСБюджетом |
УдержанныйИПН.Налог |
задолженность по ИПН перед бюджетом |
ОПВПодлежитПеречислениюВФонды |
УдержанныйОПВ.Взнос |
обязательства по ОПВ перед пенсионными фондами (ЕНПФ) |
ВОСМСПодлежитПеречислениюВФонды |
УдержанныеВОСМС.Взнос |
обязательства по ВОСМС перед фондом медстрахования |
Состав измерений собирается модулем зарплаты по колонкам целевого регистра (Движения.<Регистр>.ВыгрузитьКолонки()). По запросам в ManagerModule (расчёт/остатки) видно, что регистр ИПНРасчетыСБюджетом оперирует, как минимум, измерениями ФизЛицо/Налогоплательщик, СтруктурнаяЕдиница, ПодразделениеОрганизации, МесяцНалоговогоПериода, а также служебными ВидДвижения (Приход) и ВидСтроки (Перечисление.РасчетыСБюджетомФондамиВидСтроки.Исчисление). Удержания документа отражаются как исчисление по виду движения Приход.
objects/ приводит «плоский» состав регистра ИПН (Организация, ФизическоеЛицо, МесяцНалоговогоПериода, СтруктурнаяЕдиница; ресурс «СуммаНалога») и местами называет движения «проводками». По реальным запросам ManagerModule измерений больше (есть Налогоплательщик, ВидСтроки, ПодразделениеОрганизации), а ресурс ИПН в коде называется Налог. Точный состав измерений/ресурсов сверяйте по метаданным регистров РегистрНакопления.ИПНРасчетыСБюджетом / ОПВПодлежитПеречислениюВФонды / ВОСМСПодлежитПеречислениюВФонды, а Дт/Кт — по документу отражения зарплаты.Что про бухгалтерские проводки (план счетов КЗ)
Этот документ проводок не формирует. В регламентированный учёт удержания и обязательства попадают через отдельный документ отражения зарплаты в учёте, который сопоставляет суммы со счетами плана счетов РК. Ориентиры по счетам (формирует не этот документ): - 3350 — краткосрочная задолженность по оплате труда; - 3120 — ИПН (к перечислению в бюджет); - 3220 — ОПВ; 3210 — соц. отчисления (СО); 3240 — ВОСМС (счета группы 32хх по обязательным платежам — точное соответствие задаёт учётная политика и настройки отражения).
objects/: для этого документа их попросту нет.Валидации
| Где | Правило |
|---|---|
Платформа (ShowError) |
Организация и ПериодРегистрации обязательны |
ОбработкаПроверкиЗаполнения |
нужна хотя бы одна непустая ТЧ из {УдержанныйИПН, УдержанныйОПВ, УдержанныеВОСМС}; иначе стандартная проверка заполнения «провалит» документ |
Расчётные команды (ManagerModule) |
РассчитатьИПН/ОПВ/ВОСМС/Рассчитать сначала вызывают ДокументОбъект.ПроверитьЗаполнение() и при ошибке прерываются (Возврат) — без заполненной шапки расчёта не будет |
ОбработкаПроведения |
при РучнаяКорректировка = Истина движения не формируются (ранний Возврат) |
ПередЗаписью |
при ОбменДанными.Загрузка обработка пропускается |
Зависимости (общие модули)
РасчетЗарплатыСервер— ядро: подготовка таблиц налогов/взносов/отчислений,СформироватьДвижения, заполнение наборов значений доступа. Главная зависимость документа.ПроведениеСервер—ПодготовитьНаборыЗаписейКПроведению.ПроцедурыУправленияПерсоналомСервер—ЗаполнитьКраткийСоставДокумента.ЗаполнениеДокументов—ЗаполнитьШапкуДокумента.ОбщегоНазначения—УдалитьНепроверяемыеРеквизитыИзМассива,СтрокаТаблицыЗначенийВСтруктуру, текущая дата.Документы.УдержаниеИПНиОПВНУ(ManagerModule) —ПодготовитьПараметрыПроведения,Автозаполнение,РассчитатьВсе, частныеРассчитать*.
- «Провёл — а в Дт/Кт пусто» — это нормально. Документ пишет в регистры расчётов с бюджетом/фондами; проводки делает документ отражения зарплаты. Объясните пользователю разделение «расчёт → отражение».
- «Кнопка „Рассчитать“ ничего не делает» — почти всегда не заполнены
ОрганизацияилиМесяц начисления: расчёт прерывается наПроверитьЗаполнение().- «Суммы не совпадают / задвоились» — проверьте флаг «Ручная корректировка» (он отключает авто-движения) и
МесяцНалоговогоПериодав строках (ретро-корректировки). Сами алгоритмы исчисления — в начислении зарплаты и модулеРасчетЗарплатыСервер, а не в этом документе.
- Документ не делает проводок. Не ищите формирование
Движения.Хозрасчетный/Движения.Налоговый— их нет. Только три регистра накопления черезРасчетЗарплатыСервер.СформироватьДвижения.РучнаяКорректировка = Истина→ раннийВозвратвОбработкаПроведения. При автотестах/обработках, ожидающих движения, всегда сбрасывайте этот флаг.- Привязка «ТЧ → регистр» жёстко в коде (имя регистра строкой в
СформироватьДвижения). Менять состав движений — только согласованно с метаданными регистров.ОбработкаПроверкиЗаполненияработает «от обратного»: не добавляет ошибку при пустых ТЧ, а исключает ТЧ из проверки, когда хотя бы одна непуста. Пустой документ падает на стандартной проверке заполнения.ФизическиеЛица— служебная ТЧ для RLS, заполняется/используется механизмом управления доступом; в бизнес-расчётах не участвует.Налогоплательщик/ВидСтрокив регистрах — берите состав измерений из метаданных, а не изobjects/(см. [KZ30-0009]).
🔗 Связанные разделы
- nachislenie-zarplaty-rabotnikam-organizacij — начисление зарплаты; источник исчисленных ИПН/ОПВ/ВОСМС (пробел: страницы может ещё не быть)
- raschet-uderzhanij-rabotnikov-organizacij — расчёт прочих удержаний работников (пробел)
- opv-perechislenie-v-fondy — перечисление удержанных взносов в фонды (пробел)
- registraciya-razovyh-uderzhanij-rabotnikov-organizacij — разовые удержания (пробел)
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание документа (на релизе 3.0.72.1) | 🆕 |