Документ «Регистрация разовых удержаний работников организаций»
Документ регистрирует единовременные (разовые) удержания из заработной платы сотрудников — возврат займа, удержание по исполнительному листу, удержание за спецодежду, возврат излишне выплаченных сумм. Заполняем список сотрудников и сумм, жмём «Рассчитать», проводим. При проведении документ пишет только в зарплатные регистры накопления (ВзаиморасчетыСРаботникамиОрганизаций и ВыплаченныеДоходыРаботникамОрганизацийНУ) — бухгалтерских проводок Дт/Кт он не делает: их формирует отдельный документ «Отражение зарплаты в бухучёте». Документ модуля «Зарплата» в Бухгалтерии для Казахстана 3.0.
🎯 Что это и зачем
Не каждое удержание из зарплаты — постоянное. Алименты или ОПВ считаются каждый месяц автоматически, а вот разовые удержания нужно зарегистрировать руками: сотрудник вернул часть займа, бухгалтерия удержала стоимость спецодежды, по исполнительному листу прошла единичная сумма, нужно вернуть переплату прошлого месяца. Для всего этого и служит документ «Регистрация разовых удержаний работников организаций».
Что он делает: - фиксирует, у кого, какой вид удержания и на какую сумму применяется в выбранном месяце; - уменьшает сумму к выплате — удержание подхватывается ведомостью на выплату зарплаты; - ведёт взаиморасчёты с работником (например, остаток непогашенного займа) в специальном регистре; - отражает удержанные суммы в данных для налоговой отчётности по зарплате (ИПН, формы по зарплате).
Кто работает: бухгалтеры по зарплате и кадровые специалисты, как правило, ежемесячно — в период расчёта зарплаты.
🧭 Где найти в программе
Раздел «Зарплата» → группа «Удержания» → пункт «Регистрация разовых удержаний работников организаций». Откроется журнал документов; новый создаём кнопкой «Создать».
Документ.РегистрацияРазовыхУдержанийРаботниковОрганизаций нет в карте навигации navigation-map.json. Раздел «Зарплата» определён по подсистеме объекта и по разбору objects/ (меню «Зарплата и кадры» → «Удержания»). Точное имя пункта в левом меню Fresh нужно сверить вживую — см. поле issues, метка [KZ30-NAV-RRU].👤 Часть 1. Для пользователя
Проходим по шагам, как в курсе: от пустого документа до проведённого удержания и проверки результата. Документ всегда работает в два этапа — сначала заполнить и рассчитать, потом провести.
Урок 1. Разовое удержание у нескольких сотрудников
Когда: нужно зарегистрировать удержание у 1–5 человек — например, разовое погашение займа или возврат переплаты.
Шаг 1. Создаём документ
«Создать» в журнале. Откроется пустая форма документа.
Шаг 2. Заполняем шапку
- Организация — подставится основная или выбираем вручную (обязательно).
- Период регистрации — месяц начисления зарплаты, в котором применяем удержания (обязательно). Поле работает как месяц: при вводе оно само форматируется в представление вида «Январь 2025», хотя физически хранит дату.
- Структурное подразделение — необязательно; нужно, если хотим привязать удержания к подразделению или заполнять список по подразделению.
- Способ отражения в бухучёте — необязательно; общий для всего документа способ (счета/аналитика для будущей проводки в «Отражении зарплаты»). Можно оставить пустым — тогда способ возьмётся из вида расчёта.
Шаг 3. Добавляем сотрудников и виды удержаний
В табличной части «Удержания» нажимаем «Добавить» (или подбираем физлицо), затем по каждой строке заполняем: - Физлицо — сотрудник, у которого удерживаем (фильтруется по организации); - Вид расчёта — вид удержания из плана видов расчёта «Удержания организаций» (например, «Возврат займа», «Удержание по исполнительному листу»). Определяет алгоритм расчёта; - Размер — сумма в тенге или процент (зависит от настроек вида удержания); - Способ отражения в бухучёте — необязательно; индивидуально для строки, переопределяет шапку.
Шаг 4. Рассчитываем
Нажимаем кнопку «Рассчитать» на командной панели. Система пройдёт по строкам, применит алгоритм каждого вида удержания к Размеру и заполнит колонку «Результат» — итоговую сумму удержания в тенге.
Шаг 5. Проводим
«Провести» или «Записать и закрыть».
Урок 2. Заполнение по списку сотрудников подразделения
Когда: одно и то же удержание нужно применить ко всем сотрудникам подразделения (классика — удержание за спецодежду).
- Создаём документ, заполняем шапку (Урок 1, шаги 1–2).
- Заполняем Структурное подразделение — оно задаёт список сотрудников.
- На панели таблицы жмём «Заполнить по списку сотрудников».
- В диалоге отмечаем галочками нужных сотрудников (список уже отфильтрован по организации, подразделению и дате периода).
- Подтверждаем — таблица заполнится строками по выбранным людям.
- Для всех строк выбираем один Вид расчёта и Размер (можно через групповое изменение).
- «Рассчитать» → «Провести».
Урок 3. Заполнение по другому документу
Когда: нужно повторить состав удержаний из прошлого месяца — например, продолжаем погашать заём теми же людьми.
- Создаём документ, заполняем шапку.
- На панели таблицы жмём «Заполнить по документу».
- Выбираем документ-источник (другой документ расчёта зарплаты/удержаний).
- Таблица заполнится: скопируются Физлицо, Вид расчёта и Размер. Колонка Результат не копируется — её пересчитываем заново.
- При необходимости правим Размер (скажем, уменьшаем сумму последнего платежа по займу).
- «Рассчитать» → «Провести».
Урок 4. Ручная корректировка результата
Когда: автоматический расчёт даёт не ту сумму или нужно зафиксировать конкретное значение (например, округлить по договорённости).
- Открываем документ.
- В шапке ставим флаг «Ручная корректировка».
- Колонка «Результат» становится доступной для ручного ввода — вписываем нужные суммы.
- «Записать» → «Провести».
Урок 5. Пересчёт проведённого документа
Проведённый документ пересчитать «на месте» нельзя. Если изменили Размер или добавили строки:
- Открываем документ.
- Жмём «Рассчитать» — программа сама предложит отменить проведение (расчёт по проведённому документу заблокирован). Соглашаемся.
- Документ распроводится, расчёт выполнится, колонка «Результат» обновится.
- Снова «Провести».
Урок 6. Печать ведомости удержаний
- Открываем записанный документ.
- «Печать» → «Ведомость удержаний» (единственная печатная форма документа).
- Проверяем табличный документ, печатаем или сохраняем в файл.
🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 (Documents/РегистрацияРазовыхУдержанийРаботниковОрганизаций/Ext/ObjectModule.bsl и …/Ext/ManagerModule.bsl), метаданные документа из конфигурации, плюс разбор objects/ и business-logic/.
Структура объекта
Реквизиты шапки (имена — точно из метаданных):
| Реквизит | Тип | Обязательность | Назначение |
|---|---|---|---|
Организация |
СправочникСсылка.Организации | ShowError | Организация-работодатель; контекст расчёта и движений. |
ПериодРегистрации |
Дата | ShowError | Месяц начисления (работает с месячной точностью). |
СтруктурноеПодразделение |
СправочникСсылка.ПодразделенияОрганизаций | DontCheck | Подразделение; фильтр сотрудников и аналитика. |
СпособОтраженияВБухучете |
СправочникСсылка.СпособыОтраженияЗарплатыВРеглУчете | DontCheck | Общий способ отражения для документа (переопределяется строкой). |
РучнаяКорректировка |
Булево | DontCheck | Флаг ручного ввода сумм; отключает авто-расчёт и авто-движения. |
Ответственный |
СправочникСсылка.Пользователи | DontCheck | Ответственный за документ. |
Автор |
СправочникСсылка.Пользователи | DontCheck | Автор; служебный, не переносится при заполнении по структуре. |
Комментарий |
Строка | DontCheck | Произвольный комментарий. |
КраткийСоставДокумента |
Строка | DontCheck | Авто-представление состава (список физлиц). |
КраткийСоставВидовРасчетаДокумента |
Строка | DontCheck | Авто-список видов удержаний. |
Табличная часть Удержания:
| Колонка | Тип | Назначение |
|---|---|---|
Физлицо |
СправочникСсылка.ФизическиеЛица | Сотрудник, у которого удерживаем. |
ВидРасчета |
ПланВидовРасчетаСсылка.УдержанияОрганизаций | Вид удержания; определяет алгоритм расчёта. |
Размер |
Число | Сумма или процент (по настройке вида расчёта). |
Результат |
Число | Итоговая сумма удержания (заполняется расчётом). |
СпособОтраженияВБухучете |
СправочникСсылка.СпособыОтраженияЗарплатыВРеглУчете | Индивидуальный способ для строки. |
Физлицо, но во всём коде (ObjectModule, ManagerModule) обращение идёт строкой "ФизЛицо" — с заглавной «Л»: Удержания.ВыгрузитьКолонку("ФизЛицо"), Рассчитать(Объект, ФизЛицо = …). Платформа разрешает идентификаторы регистронезависимо, поэтому ошибки нет; но при написании запросов/кода ориентируйтесь на метаданное имя Физлицо, а строковые литералы в типовом коде встречаются в варианте ФизЛицо.Формы: ФормаДокумента (основная), ФормаСписка (с групповым изменением), ФормаВыбора. Печатная форма (макет): ПФ_MXL_ВедомостьУдержаний («Ведомость удержаний»).
Приоритет способа отражения (3 уровня, по убыванию): 1) колонка Удержания.СпособОтраженияВБухучете → 2) шапка СпособОтраженияВБухучете → 3) способ из вида расчёта (ВидРасчета).
Жизненный цикл обработчиков (ObjectModule)
| Обработчик | Строк | Что делает |
|---|---|---|
ОбработкаЗаполнения |
~14 | При заполнении структурой удаляет Автор, переносит свойства, вызывает ЗаполнениеДокументов.ЗаполнитьШапкуДокумента. |
ПередЗаписью |
~13 | Вне обмена данными формирует КраткийСоставДокумента и КраткийСоставВидовРасчетаДокумента из ТЧ Удержания. |
ОбработкаПроведения |
~33 | Готовит наборы записей; при ручной корректировке выходит; иначе формирует движения по двум регистрам накопления. |
ПриКопировании |
~5 | Ставит дату нового документа на начало текущего дня пользователя. |
ЗаполнитьНаборыЗначенийДоступа (обл. «Управление доступом») |
~6 | Формирует наборы RLS по организации, подразделению и списку физлиц. |
Отдельно, в ManagerModule:
| Процедура/функция | Строк | Что делает |
|---|---|---|
Рассчитать(Объект, ФизЛицо, КомментироватьРасчет) |
~16 | После ПроверитьЗаполнение() делегирует расчёт ПроведениеРасчетовСервер.РассчитатьДокумент(...). |
ПодготовитьПараметрыПроведения(Ссылка, Отказ) |
~53 | Запросом собирает реквизиты и таблицу удержаний в структуру параметров проведения. |
ДобавитьКомандыПечати / Печать / ПечатьВедомость |
46 / 33 / 263 | Регистрация и вывод печатной формы «Ведомость удержаний». |
objects/ указана процедура ОбработкаПроверкиЗаполнения с перечнем проверок. В реальном ObjectModule.bsl её нет — как и любых Сообщить/ВызватьИсключение. Обязательность Организация/ПериодРегистрации/строк ТЧ обеспечивается свойствами «Заполнять проверку» в метаданных (стандартный механизм платформы) и вызовом ПроверитьЗаполнение() внутри ManagerModule.Рассчитать. Списки «проверок» из objects/ — реконструкция, а не код.Как формируется проведение — реальный код (3.0.72.1)
Главное: документ не делает проводок Дт/Кт. ОбработкаПроведения пишет в два регистра накопления по зарплате через серверный модуль РасчетЗарплатыСервер. Бухгалтерское отражение — задача отдельного документа «Отражение зарплаты в бухучёте».
Источник — ObjectModule.bsl, процедура ОбработкаПроведения (реальный код, без сокращений):
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// ПОДГОТОВКА ПРОВЕДЕНИЯ ПО ДАННЫМ ДОКУМЕНТА
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект);
Если РучнаяКорректировка Тогда
Возврат;
КонецЕсли;
ПараметрыПроведения = Документы.РегистрацияРазовыхУдержанийРаботниковОрганизаций.ПодготовитьПараметрыПроведения(Ссылка, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Реквизиты = ПараметрыПроведения.Реквизиты[0];
ТаблицаВыплаченныеДоходы = РасчетЗарплатыСервер.ПодготовитьТаблицуВыплаченныеДоходыНУ(Реквизиты,
ПараметрыПроведения.Удержания,
Движения.ВыплаченныеДоходыРаботникамОрганизацийНУ.ВыгрузитьКолонки(),
ВидДвиженияНакопления.Приход,
Отказ);
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаВыплаченныеДоходы, "ВыплаченныеДоходыРаботникамОрганизацийНУ", Движения, Отказ);
// Взаиморасчеты с работниками
ТаблицаВзаиморасчетыСРаботниками = РасчетЗарплатыСервер.ПодготовитьТаблицуВзаиморасчеты(Реквизиты,
ПараметрыПроведения.Удержания,
Движения.ВзаиморасчетыСРаботникамиОрганизаций.ВыгрузитьКолонки(),
ВидДвиженияНакопления.Приход,
Отказ);
РасчетЗарплатыСервер.СформироватьДвижения(ТаблицаВзаиморасчетыСРаботниками, "ВзаиморасчетыСРаботникамиОрганизаций", Движения, Отказ);
КонецПроцедуры
Разбор по строкам:
1. ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению(ЭтотОбъект) — инициализирует наборы записей всех регистров документа (унифицированный механизм проведения).
2. Если РучнаяКорректировка Тогда Возврат — при ручной корректировке авто-формирование движений полностью пропускается: записи остаются такими, какими их подготовил/отредактировал пользователь. Это зеркало флага из шапки.
3. ПодготовитьПараметрыПроведения(Ссылка, Отказ) — функция ManagerModule, собирает запросом реквизиты документа и нормализованную таблицу удержаний (см. ниже). При Отказ = Истина — выходим.
4. ВыплаченныеДоходыРаботникамОрганизацийНУ — РасчетЗарплатыСервер.ПодготовитьТаблицуВыплаченныеДоходыНУ(...) строит таблицу движений (вид движения Приход), затем СформироватьДвижения(...) записывает её в одноимённый регистр. Это данные для налогового учёта по зарплате (ИПН, формы по доходам физлиц).
5. ВзаиморасчетыСРаботникамиОрганизаций — аналогично: ПодготовитьТаблицуВзаиморасчеты(...) (вид движения Приход) → СформироватьДвижения(...). Это взаиморасчёты с работником (например, движение по остатку займа/задолженности).
Кто что формирует (вызов → смысл):
| Вызов в коде | Что пишет |
|---|---|
ПроведениеСервер.ПодготовитьНаборыЗаписейКПроведению |
инициализация наборов записей регистров |
…ПодготовитьПараметрыПроведения (ManagerModule) |
сбор реквизитов + таблицы удержаний запросом |
РасчетЗарплатыСервер.ПодготовитьТаблицуВыплаченныеДоходыНУ + СформироватьДвижения |
регистр ВыплаченныеДоходыРаботникамОрганизацийНУ (НУ по зарплате) |
РасчетЗарплатыСервер.ПодготовитьТаблицуВзаиморасчеты + СформироватьДвижения |
регистр ВзаиморасчетыСРаботникамиОрганизаций (долги работника) |
А вот функция сбора параметров — ManagerModule.ПодготовитьПараметрыПроведения (фрагмент реального кода, начало):
Функция ПодготовитьПараметрыПроведения(Ссылка, Отказ) Экспорт
ПараметрыПроведения = Новый Структура;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Период", КонецМесяца(Ссылка.ПериодРегистрации));
// … ТекстЗапросаРеквизитыДокумента → ПараметрыПроведения.Реквизиты …
// … учёт функциональной опции "ПоддержкаРаботыСоСтруктурнымиПодразделениями" …
// … определение Налогоплательщика по структурному подразделению …
// … ТекстЗапросаУдержания → ПараметрыПроведения.Удержания …
Возврат ПараметрыПроведения;
КонецФункции
Важные детали из кода:
- Период = КонецМесяца(Ссылка.ПериодРегистрации) — внутри проведения период всегда приводится к концу месяца. Подтверждает: ПериодРегистрации — это месяц, а не день.
- Учитывается функциональная опция ПоддержкаРаботыСоСтруктурнымиПодразделениями: от неё зависит, как определяется налогоплательщик (по структурной единице или по организации) — важно для корректного НУ при обособленных подразделениях.
- В структуру ПараметрыПроведения кладутся как минимум Реквизиты (шапка) и Удержания (нормализованная ТЧ) — именно их потребляет ОбработкаПроведения.
Движения по регистрам
| Регистр | Тип | Вид движения | Что пишет |
|---|---|---|---|
ВыплаченныеДоходыРаботникамОрганизацийНУ |
Накопления | Приход | Удержанные суммы для налогового учёта по зарплате (ИПН, формы по доходам физлиц). |
ВзаиморасчетыСРаботникамиОрганизаций |
Накопления | Приход | Взаиморасчёты с работником по удержанию (например, движение по остатку займа/задолженности). |
Бухгалтерских проводок (Хозрасчетный/Типовой, Налоговый по счетам) документ НЕ формирует. Это типовая для зарплатного контура схема: расчётные документы пишут в зарплатные регистры, а проводки в план счетов делает документ «Отражение зарплаты в бухучёте» (Документ.ОтражениеЗарплатыВБухучете) / «Отражение зарплаты в регламентированном учёте» (Документ.ОтражениеЗарплатыВРеглУчете). Оба объекта присутствуют в конфигурации 3.0.72.1.
СпособыОтраженияЗарплатыВРеглУчете) и вида удержания. Ориентир по плану счетов Казахстана для зарплатного контура: задолженность по оплате труда — 3350, ИПН к перечислению — 3120, ОПВ/соц.отчисления/соц.налог/ВОСМС — 3210/3220/3230/3240, расходы на оплату труда — 7210/8410. Удержание из зарплаты обычно отражается по дебету 3350 в корреспонденции со счётом, заданным способом отражения (возврат займа — со счётом расчётов по займу работника, возврат переплаты — со счётом затрат и т.п.). Конкретную пару Дт/Кт сверяйте по проведённому «Отражению зарплаты в бухучёте» и по способу отражения, а не по этому документу. Российские счета (70/68/69) здесь неприменимы.objects/ регистр ВыплаченныеДоходыРаботникамОрганизацийНУ помечен как «вероятно, остатки», измерения/ресурсы перечислены гипотетически. Реальный код фиксирует только факт записи с видом движения Приход; точную структуру измерений/ресурсов обоих регистров нужно смотреть в их собственных метаданных (в разборе документа их нет). См. поле issues.Валидации
Явных проверок в ObjectModule нет. Фактически обязательность обеспечивается так:
- Свойства метаданных «Заполнять проверку = ВыдаватьОшибку» для Организация и ПериодРегистрации (ShowError) → срабатывают при стандартной ПроверитьЗаполнение().
- ManagerModule.Рассчитать перед расчётом вызывает ДокументОбъект.ПроверитьЗаполнение() и при провале — выходит (расчёт не выполняется).
- Проведение без расчёта: с пустой колонкой Результат движения соберутся некорректно/пусто — поэтому на практике обязателен предварительный «Рассчитать» (кроме режима ручной корректировки, где Результат вводится руками).
- RLS: ЗаполнитьНаборыЗначенийДоступа ограничивает доступ по организации, подразделению и списку физлиц — пользователь без прав на физлицо/организацию документ не увидит/не проведёт.
Зависимости (общие модули)
| Модуль | Роль |
|---|---|
ПроведениеСервер |
Подготовка наборов записей к проведению (критический). |
РасчетЗарплатыСервер |
Построение таблиц движений и СформироватьДвижения для обоих регистров; наборы RLS. |
ПроведениеРасчетовСервер |
Ядро расчёта удержаний — РассчитатьДокумент("УдержанияОрганизаций", …) (критический). |
ПроцедурыУправленияПерсоналомСервер |
Формирование краткого состава документа/видов расчёта. |
ЗаполнениеДокументов |
ЗаполнитьШапкуДокумента при заполнении по структуре. |
ПроцедурыНалоговогоУчетаВызовСервераПовтИсп |
Определение налогоплательщика по структурной единице (НУ). |
ОбщегоНазначения |
ТекущаяДатаПользователя, СтрокаТаблицыЗначенийВСтруктуру. |
УправлениеПечатью |
Команды и вывод печатной формы «Ведомость удержаний». |
УправлениеДоступом / УправлениеДоступомСлужебный |
RLS (ограничение на уровне записей). |
- «Удержания нет в Дт/Кт». Так и должно быть — проводки делает «Отражение зарплаты в бухучёте». Проверяйте отражение и способ отражения (
СпособыОтраженияЗарплатыВРеглУчете), а не сам документ удержаний.- «Сумма к выплате не уменьшилась». Почти всегда документ не рассчитан (
Результатпуст) или не проведён, либо период регистрации не совпадает с месяцем ведомости. Цепочка строгая: заполнить → Рассчитать → провести.- «Не та сумма удержания». Логика суммы — в виде расчёта (
ПланВидовРасчета.УдержанияОрганизаций) и в ядреПроведениеРасчетовСервер. Либо включён режим ручной корректировки — тогда сумма ровно та, что вписали руками.
- Два этапа — расчёт и проведение разделены.
Рассчитать(ManagerModule) лишь заполняетРезультат; движения пишутся вОбработкаПроведения. При автоматизации: сначалаДокументы.…Рассчитать(Объект)(или через форму), затемЗаписать(РежимЗаписиДокумента.Проведение).РучнаяКорректировка = Истина→ раннийВозвратвОбработкаПроведениясразу послеПодготовитьНаборыЗаписейКПроведению. Авто-движения не формируются — отвечает пользователь.- Пересчёт проведённого заблокирован: цепочка из формы — отмена проведения → расчёт → проведение (
ПослеЗакрытияВопросаПередРассчетом). В коде:ОтменитьПроведение()→Рассчитать()→Провести().- Имя колонки физлица: метаданное
Физлицо, строковый литерал в типовом коде —"ФизЛицо"(см. [KZ30-RRU-01]). Для надёжности обращайтесь кУдержания[i].Физлицокак к свойству объекта.- Период всегда к месяцу:
КонецМесяца(ПериодРегистрации)в проведении. Фильтры сотрудников и движения завязаны на месяц, не на день.- Функциональная опция
ПоддержкаРаботыСоСтруктурнымиПодразделениямименяет определение налогоплательщика — учитывайте при тестах с обособленными подразделениями.
🔗 Связанные разделы
- nachislenie-zarplaty — начисление зарплаты: формирует доход, на фоне которого считаются удержания.
- otrazhenie-zarplaty-v-buhuchete — документ, который делает бухгалтерские проводки по зарплате и удержаниям (Дт/Кт по плану счетов КЗ).
- vedomost-na-vyplatu-zarplaty — ведомость на выплату: подхватывает разовые удержания и уменьшает сумму к выдаче.
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание документа (на релизе 3.0.72.1): проведение в регистры ВыплаченныеДоходыРаботникамОрганизацийНУ и ВзаиморасчетыСРаботникамиОрганизаций, без прямых бухгалтерских проводок. |
🆕 |