Документ «Зарплата к выплате организаций»
Документ — это платёжная ведомость на выплату зарплаты: подбирает сотрудников и суммы к выплате за месяц (по задолженности из взаиморасчётов или по виду расчёта), умеет округлять и брать процент от начисленного, отмечает статус (выплачено / задепонировано / не выплачено), заполняет карт-счета и служит основанием для РКО / платёжных поручений. Бухгалтерских проводок сам НЕ делает — это ведомость, а не отражение в учёте.
🎯 Что это и зачем
Начисление зарплаты и её выплата в Бухгалтерии для Казахстана 3.0 — два разных шага. Сначала документом «Начисление зарплаты работникам организаций» считаются начисления, удержания (ИПН, ОПВ, ВОСМС) и формируется задолженность организации перед сотрудниками. Затем эту задолженность нужно выплатить — для этого и служит «Зарплата к выплате организаций».
Документ решает практичные задачи кассира/расчётчика: - собрать ведомость — кто и сколько получает за выбранный месяц; - рассчитать сумму к выплате — взять процент от начисленного (например, аванс 40 %) и/или округлить (например, до 10 ₸); - зафиксировать факт — отметить каждого как «выплачено», «задепонировано» (деньги не получены и переходят в депонент) или «не выплачено»; - подготовить платёж — заполнить карт-счета для банковского реестра или создать расходный кассовый ордер (РКО) для выдачи наличными; - напечатать платёжную ведомость и форму Т-2.
Кто работает: расчётчики зарплаты, бухгалтеры, кассиры. Периодичность — как минимум раз в месяц (зарплата), плюс отдельные ведомости на аванс и на депонированные суммы.
ОбработкаПроведения). Он — информационно-управленческая ведомость. Проводки по зарплате в бухгалтерский / регламентированный учёт делает отдельный документ «Отражение зарплаты в бухучёте» (и «…в регл. учёте»). Подробнее — в разделе [«Движения по регистрам»](#движения-по-регистрам) Части 2.🧭 Где найти в программе
Раздел «Зарплата» → пункт «Зарплата к выплате» (журнал ведомостей на выплату). Новый документ создаём кнопкой «Создать».
navigation-map.json точки входа именно для Документ.ЗарплатаКВыплатеОрганизаций нет. Раздел «Зарплата» определён по соседнему документу НачислениеЗарплатыРаботникамОрганизаций (в карте — Зарплата → Начисление зарплаты). Точное название пункта меню («Зарплата к выплате» / «Ведомости на выплату зарплаты» / «Выплата зарплаты») нужно сверить в конкретной базе Fresh. Это пробел карты навигации.👤 Часть 1. Для пользователя
Проходим по шагам, как в курсе: от пустой ведомости до проведённой выплаты с отметками статусов и подготовленным платежом.
Урок 1. Ведомость на выплату зарплаты за месяц
Когда: начисление за месяц проведено, нужно выплатить зарплату.
Шаг 1. Создаём документ
«Создать» в журнале «Зарплата к выплате». Откроется пустая ведомость.
Шаг 2. Заполняем шапку
Заполняем сверху вниз — порядок важен, потому что от него зависит автозаполнение таблицы: - Организация — работодатель (обязательно). При смене организации таблицу нужно перезаполнить. - Подразделение организации — необязательно; ограничивает подбор сотрудников одним подразделением. - Период начисления зарплаты — месяц, за который платим (обязательно). Вводится как месяц, хранится как первое число (например, 01.05.2026). - Способ выплаты — «Через банк», «Через кассу» или «Не через банк». - Способ расчёта сумм к выплате — например, «По задолженности» (берёт остаток долга из взаиморасчётов) или «По виду расчёта» (обязательно).
Шаг 3. Заполняем таблицу по задолженности
Кнопка «Заполнить» → «По задолженности» (или аналог) — табличная часть «Зарплата» автоматически заполнится сотрудниками и суммами: программа возьмёт остаток задолженности организации перед работниками из регистра взаиморасчётов за указанный месяц.
Шаг 4. Проверяем суммы
В таблице по каждому сотруднику видим Сумму (начислено к выплате), Депонированную сумму (долг прошлых месяцев, если подтягивается) и итоговую Сумму к выплате. Внизу — общая Сумма документа.
Шаг 5. Проводим / записываем
«Провести» или «Записать и закрыть». При записи программа соберёт краткий состав документа (число сотрудников и сумму) и пересчитает «Сумму документа».
Урок 2. Расчёт суммы к выплате: процент и округление (аванс)
Когда: платим не 100 % начисленного (аванс) или хотим круглые суммы в кассе.
Шаг 1. Открываем настройку расчёта
Кнопка «Рассчитать» — откроется модальное окно «Настройка расчёта сумм к выплате».
Шаг 2. Задаём параметры
- Процент выплаты — доля от начисленного (по умолчанию 100). Для аванса 40 % ставим 40.
- Размер округления — шаг округления (по умолчанию 1 = без округления). Для округления до десятков — 10, до сотен — 100.
Шаг 3. Запускаем расчёт
Нажимаем «Рассчитать» в окне настройки. Если документ был изменён — программа спросит, сохранить ли его перед расчётом; подтверждаем. Программа пересчитает Сумму к выплате по каждой строке: возьмёт процент от начисленного и округлит по заданному шагу.
Урок 3. Статусы выплаты и депонирование
Когда: после фактической выдачи — отметить, кто получил, а кто нет.
- Выделите строки сотрудников в таблице «Зарплата».
- Нажмите нужную команду статуса: - «Выплачено» — сотрудник получил зарплату; - «Задепонировано» — деньги не получены, сумма переходит в депонент (долг депонента); - «Не выплачено» — сброс статуса.
- В колонке «Выплаченность зарплаты» проставится выбранное значение. Запишите документ.
Урок 4. Подготовка платежа
Вариант А. Через банк — карт-счета
- Способ выплаты = «Через банк», таблица заполнена сотрудниками.
- Кнопка «Заполнить карт-счета» — программа подставит в колонку «Номер карт-счёта» счета сотрудников из регистра карт-счетов.
- У кого карт-счёт не найден — поле останется пустым (заполняем вручную). Записываем документ.
Вариант Б. Через кассу — РКО
- Откройте сохранённый документ.
- Кнопка «Выплата зарплаты РКО» — откроется новый расходный кассовый ордер с предзаполненными организацией, подразделением, периодом и основанием-ссылкой на эту ведомость.
- Допишите реквизиты РКО и проведите.
🛠 Часть 2. Для программиста
Источник: реальный код релиза 3.0.72.1 (Documents/ЗарплатаКВыплатеОрганизаций/Ext/ObjectModule.bsl и …/ManagerModule.bsl), плюс разбор objects/ и business-logic/. Где разбор расходится с кодом — отмечено в блоках «Несостыковка».
Структура объекта
Реквизиты шапки (ключевые).
- Обязательные (контролируются стандартной проверкой заполнения): Организация, ПериодНачисленияЗарплаты, СпособРасчетаСуммКВыплате.
- Условно обязательные: Банк — только если СпособВыплаты = ЧерезБанк; ВидРасчета — только если СпособРасчетаСуммКВыплате = ПоВидуРасчета (см. реальный код ОбработкаПроверкиЗаполнения ниже).
- Параметры расчёта: ПроцентВыплаты (по умолчанию 100), РазмерОкругления (по умолчанию 1 = без округления).
- Прочее: СпособВыплаты (Перечисление.СпособыВыплатыЗарплаты: ЧерезБанк / ЧерезКассу / …), ПодразделениеОрганизации, СтруктурноеПодразделение, ПериодНачисленияДепонированнойЗарплаты, служебные СуммаДокумента, КраткийСоставДокумента, Автор, Ответственный, Комментарий.
Табличная часть Зарплата: ФизЛицо, Сумма (начислено к выплате), ДепонированнаяСумма, СуммаКВыплате (итог), Авторасчет (Булево — строку можно пересчитывать автоматически), ВыплаченностьЗарплаты (Перечисление.ВыплаченностьЗарплаты: Выплачено / Задепонировано / НеВыплачено), НомерКартСчета (Справочник.КартСчета).
Формы: ФормаДокумента (основная), ФормаСписка, ФормаВыбора, ФормаНастройкиРасчета (модальное окно процента/округления).
Жизненный цикл (обработчики ObjectModule)
| Обработчик | Что делает (по реальному коду 3.0.72.1) |
|---|---|
ЗаполнитьНаборыЗначенийДоступа (экспорт) |
Собирает наборы значений доступа по Организация, СтруктурноеПодразделение и списку ФизЛицо из ТЧ Зарплата (через РасчетЗарплатыСервер). Для RLS-ограничений видимости документа. |
ОбработкаЗаполнения |
При заполнении из структуры — удаляет ключ Автор, копирует свойства в объект, затем ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект). |
ОбработкаПроверкиЗаполнения |
Строит МассивНепроверяемыхРеквизитов: исключает Банк (если способ ≠ ЧерезБанк) и ВидРасчета (если способ расчёта ≠ ПоВидуРасчета), затем ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива. |
ПриКопировании |
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект) — переинициализация шапки. |
ПередЗаписью |
Пропускает при ОбменДанными.Загрузка. Формирует КраткийСоставДокумента по ТЧ Зарплата (ключ ФизЛицо) и считает СуммаДокумента = Итог("Сумма") + Итог("ДепонированнаяСумма"). |
ОбработкаПроведения |
Отсутствует. Документ не формирует движений при проведении. |
objects/ утверждает, что ОбработкаПроверкиЗаполнения вызывает РасчетЗарплатыСервер.ОбработкаПроверкиЗаполненияДокумента, ПередЗаписью — ПроцедурыУправленияПерсоналомСервер.ПодготовитьШапкуДокумента, а ПриКопировании — ЗаполнитьНастройки. В реальном коде 3.0.72.1 этих вызовов нет: проверка только манипулирует массивом непроверяемых реквизитов, ПередЗаписью зовёт ЗаполнитьКраткийСоставДокумента, ПриКопировании — ЗаполнениеДокументов.ЗаполнитьШапкуДокумента. Ориентируемся на код.ВидРасчета не всегда обязателен. В таблице реквизитов objects/ ВидРасчета помечен «Да (ShowError)». По коду он исключается из проверки, когда СпособРасчетаСуммКВыплате <> ПоВидуРасчета, то есть обязателен только при расчёте по виду расчёта. Аналогично Банк — обязателен только при выплате через банк.Ключевая процедура — реальный код (3.0.72.1)
Самое содержательное в этом документе — не проведение (его нет), а проверка заполнения и расчёт сумм к выплате. Вот реальная ОбработкаПроверкиЗаполнения из ObjectModule.bsl:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
МассивНепроверяемыхРеквизитов = Новый Массив();
Если СпособВыплаты <> Перечисления.СпособыВыплатыЗарплаты.ЧерезБанк Тогда
МассивНепроверяемыхРеквизитов.Добавить("Банк");
КонецЕсли;
Если СпособРасчетаСуммКВыплате <> Перечисления.СпособыРасчетаСуммКВыплате.ПоВидуРасчета Тогда
МассивНепроверяемыхРеквизитов.Добавить("ВидРасчета");
КонецЕсли;
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
КонецПроцедуры
Разбор. Обязательность реквизитов задаётся в метаданных (свойство «Проверка заполнения = Выдавать ошибку»). Обработчик лишь снимает проверку с тех реквизитов, которые в текущей конфигурации шапки не нужны: Банк (выплата не через банк) и ВидРасчета (расчёт не по виду расчёта). Это типовой для зарплатных документов КЗ паттерн условной обязательности.
А вот как реально считается сумма к выплате — функция ЗаполнитьНастройки (значения по умолчанию) и SQL-генератор округления СформироватьТекстЗапросаДляОкругления из ManagerModule.bsl:
Функция ЗаполнитьНастройки(Объект) Экспорт
НастройкиРасчета =
Новый Структура(
"ПроцентВыплаты,
|РазмерОкругления",
100,
1);
Если ЗначениеЗаполнено(Объект.ПроцентВыплаты) Тогда
НастройкиРасчета.ПроцентВыплаты = Объект.ПроцентВыплаты
КонецЕсли;
Если Объект.РазмерОкругления <> 0 Тогда
НастройкиРасчета.РазмерОкругления = Объект.РазмерОкругления;
КонецЕсли;
Возврат НастройкиРасчета;
КонецФункции
Функция СформироватьТекстЗапросаДляОкругления(ИмяПоляСумма, Знач ИмяПоляРазмерОкругления, ЧислоЗнаковПослеЗапятой = 2) Экспорт
ИмяПоляРазмерОкругления = "ВЫБОР КОГДА " + ИмяПоляРазмерОкругления + " = 0 ТОГДА 1 ИНАЧЕ " + ИмяПоляРазмерОкругления + " КОНЕЦ";
ТекстРазмерностьРезультата = "ЧИСЛО(15, " + Формат(ЧислоЗнаковПослеЗапятой, "ЧГ=0; ЧН=0; ЧДЦ=0") + ")";
ТекстДеление = "ВЫРАЗИТЬ(" + ИмяПоляСумма + " / " + ИмяПоляРазмерОкругления + " КАК " + ТекстРазмерностьРезультата + ")";
ТекстУмножение = "ВЫРАЗИТЬ(" + ИмяПоляРазмерОкругления + " * " + ТекстДеление + " КАК " + ТекстРазмерностьРезультата + ")";
ТекстУмножение_1 = "ВЫРАЗИТЬ(" + ИмяПоляРазмерОкругления + " * (" + ТекстДеление + " - 1) КАК " + ТекстРазмерностьРезультата + ")";
Текст = "
|ВЫБОР КОГДА " + ИмяПоляСумма + " - " + ТекстУмножение + " >= 0 ТОГДА
| " + ТекстУмножение + "
|ИНАЧЕ
| " + ТекстУмножение_1 + "
|КОНЕЦ
|";
Возврат Текст;
КонецФункции
Разбор расчёта.
1. Процент применяется в запросе подбора: в ПодготовитьДанныеДляЗаполнения сумма берётся как СуммаВзаиморасчетовОстаток * &парамПроцентВыплаты (параметр — доля, не «делёная на 100» внутри этого выражения; формирование коэффициента — на стороне вызова/настроек).
2. Округление делается средствами СУБД одним запросом, а не Окр(): целочисленное деление на размер округления, обратное умножение, и выбор между «кратным вниз» и «кратным на шаг меньше» так, чтобы остаток Сумма − Кратное был неотрицательным. То есть это округление к ближайшему меньшему кратному с защитой от ухода в минус (floor-к-кратному), а не банковское округление.
3. РазмерОкругления = 0 трактуется как 1 (защита от деления на ноль прямо в тексте запроса).
ПодготовитьДанныеДляЗаполнения цикл пропуска параметров написан через И:
Если Не (Параметр.Ключ = "СпособРасчетаСуммКВыплате" И Параметр.Ключ = "РазмерОкругления" И Параметр.Ключ = "ВидРасчета" И Параметр.Ключ = "ПодразделениеОрганизации") Тогда …УсловиеКлюч = A И Ключ = B И …истинно никогда (один ключ не равен сразу четырём), поэтомуНе(...)всегда истинно и в запрос как параметры передаются все ключи, включая служебные. Похоже, задумывалосьИЛИ. На практике лишниеУстановитьПараметробычно безвредны, но это смысловая ошибка — фиксируем для сверки на стенде.
Расчёт суммы к выплате — текстом
СуммаКВыплате по строке = округление( (Сумма + ДепонированнаяСумма[или остаток задолженности]) × ПроцентВыплаты , РазмерОкругления ), где округление — floor-к-кратному из запроса выше. При автозаполнении исходная сумма берётся из остатков регистров взаиморасчётов; при ручном вводе — из колонок Сумма / ДепонированнаяСумма. Пересчёт командой «Рассчитать» затрагивает только строки с Авторасчет = Истина.
Движения по регистрам
| Что | Факт по коду 3.0.72.1 |
|---|---|
Бухгалтерские проводки (Типовой / Налоговый, БУ/НУ) |
Нет. Обработчик ОбработкаПроведения в модуле отсутствует. |
Регистр выплат СведенияОВыплатахРаботникамОрганизацийПоПлатежнымВедомостям |
Документ не пишет в него напрямую при проведении. Связь косвенная — через платёжные документы (РКО / платёжное поручение), оформляемые на основании ведомости. |
Регистры взаиморасчётов ВзаиморасчетыСРаботникамиОрганизаций, ВзаиморасчетыСДепонентамиОрганизаций |
Документ читает остатки этих регистров при автозаполнении (ПодготовитьДанныеДляЗаполнения), но не пишет в них. |
РегистрСведений.КартСчетаФизЛиц |
Читается при заполнении карт-счетов; запись — нет. |
Где же проводки по зарплате (план счетов КЗ). Их формирует отдельный документ «Отражение зарплаты в бухучёте» / «…в регл. учёте» на основании данных начисления. Ориентировочная картина для КЗ (точные счета определяются способами отражения зарплаты и учётной политикой — сверять по отчёту «Дт/Кт» документа отражения, а не по этой ведомости):
| Операция | Дт | Кт |
|---|---|---|
| Начисление оплаты труда (расходы) | 7210 / 8410 (расходы на оплату труда; счёт зависит от способа отражения) |
3350 (краткосрочная задолженность по оплате труда) |
| Удержан ИПН | 3350 |
3120 (ИПН к перечислению) |
| Удержаны ОПВ / соц. отчисления / ВОСМС | 3350 / счёт расходов |
3210 / 3220 / 3230 / 3240 |
| Выплата зарплаты (закрывает 3350) | 3350 |
счёт денег (1010 касса / 1030 банк) — формируется платёжным документом (РКО / п/п), а не этой ведомостью |
Валидации (ОбработкаПроверкиЗаполнения + формы)
- Метаданные требуют
Организация,ПериодНачисленияЗарплаты,СпособРасчетаСуммКВыплате; обработчик добавляет/снимает условную обязательностьБанкиВидРасчета(см. код выше). - В
ФормаНастройкиРасчета:РазмерОкругления = 1→ округление выключено; перед расчётом при изменённой форме — запрос на сохранение. - В
ФормаДокумента: документ редактируется только при «неоплаченном» статусе; команды расчёта / заполнения / РКО требуют сохранённого (не нового) документа; автозаполнение и заполнение карт-счетов выполняются как длительные операции (асинхронно, с прогресс-формой). - При ручной правке
Сумма/ДепонированнаяСумма/СуммаКВыплатеснимаетсяАвторасчет(обработчикЗарплатаПриОкончанииРедактирования).
Зависимости (общие модули)
РасчетЗарплатыСервер (наборы доступа, расчётные процедуры), ПроцедурыУправленияПерсоналомСервер (ЗаполнитьКраткийСоставДокумента), ЗаполнениеДокументов (ЗаполнитьШапкуДокумента), ОбщегоНазначения (УдалитьНепроверяемыеРеквизитыИзМассива). В ManagerModule — Запрос, УправлениеПечатью, Макет/ТабДокумент (печать Т-2), плюс данные из ВыборкаРаботники, РаботникиОрганизаций, КартСчетаФизЛиц, регистров взаиморасчётов.
- «Выплата не закрыла зарплату на счёте / нет проводок». Это ожидаемо: ведомость проводок не делает. Закрытие
3350— платёжным документом (РКО / п/п), а проводки начисления/отражения — документом «Отражение зарплаты в бухучёте». Проверять цепочку: Начисление → Отражение → Ведомость → РКО/п/п.- «Суммы к выплате округлились странно». Округление — floor-к-кратному в запросе (не банковское). Проверьте
РазмерОкругленияиПроцентВыплатыв окне «Рассчитать»; строки с ручной правкой (Авторасчет = Ложь) не пересчитываются. Карт-счета и реестр в банк — изКартСчетаФизЛиц; пустой карт-счёт = у физлица нет актуальной записи в регистре.
- Нет
ОбработкаПроведения— не ищите движения вObjectModule. Расчётная логика — вManagerModule.ПодготовитьДанныеДляЗаполнения(≈430 строк запросов к взаиморасчётам иРаботникиОрганизаций) иСформироватьТекстЗапросаДляОкругления.- Условная обязательность реквизитов задаётся снятием проверки в
ОбработкаПроверкиЗаполнения; добавляя новый способ выплаты/расчёта, не забудьте отразить его в этих двухЕсли.- Регистрационные процедуры
ManagerModule(ПриОпределенииНастроекВерсионированияОбъектов,ПриЗаполненииОграниченияДоступа) в 3.0.72.1 пустые (заглушки СтандартныхПодсистем) — разборbusiness-logic/, описывающий их как «регистрирует настройки / настраивает ограничения», завышает их роль. Реальное RLS — вОбработкаПроверкиЗаполнения/ЗаполнитьНаборыЗначенийДоступаобъекта и общих модулях. [KZ30-ZKV-0005]СуммаДокументавПередЗаписью=Сумма + ДепонированнаяСумма(а неСуммаКВыплате) — учитывайте при сверке итогов.
🔗 Связанные разделы
- nachislenie-zarplaty-rabotnikam — начисление зарплаты и формирование задолженности (вход для этой ведомости)
- otrazhenie-zarplaty-v-buhuchete — документ, который делает бухгалтерские проводки по зарплате (план счетов КЗ)
- vozvrat-zarplaty-rabotnikov — возврат излишне выплаченной зарплаты
- vvod-nachalnyh-ostatkov-po-zarplate — ввод начальных остатков задолженности по зарплате
🆕 Что нового
| Версия | Изменение | Тип |
|---|---|---|
| 3.0.72.1 | Первичное описание документа (на релизе 3.0.72.1) | 🆕 |
| 3.0.72.1 | Зафиксированы расхождения разбора objects/ с реальным кодом: вызовы в обработчиках, условная обязательность ВидРасчета/Банк, пустые регистрационные процедуры ManagerModule, дефект И/ИЛИ в ПодготовитьДанныеДляЗаполнения |
⚠️ |