Настройка - Расчет зарплаты - Настройка состава начислений - Включить отпуск без оплаты Настройка - Начисления - Создать - "Возмещение социальных расходов" Назначение - Компенсационные выплаты, Только если введено значение показателя Редактировать формулу - Создать показатель - Сумма компенсации - формула СуммаКомпенсации, ставим галочку Настройка - Шаблоны ввода исходных данных - Создать "Ввод данных компенсации социальных расходов" - Вкладка Дополнительно - Сотрудников, Вкладка Показатели зарплаты - Сумма компенсации Зарплата - Данные для расчета зарплаты - Создать "Ввод данных компенсации социальных расходов" - Заполняем Создаем отпуска на 2 периода для 2 разных сотрудников Создаем документ "Расчет лимитов", реквизиты - Организация, Показатель. ТЧ Сотрудники реквизиты - Сотрудник, КоличествоДетей, ПлановыйЛимит, Коэффициент, ЗаработанныйЛимит, ПодтвержденныеРасходы, ОстатокЛимитаНаНачалоПериода, ФактическиВозмещенныеРасходы Создаем РС ЛимитВозмещенияРасходов, измерение - Должность, ресурсы - СуммаВозмещенияСоциальныхРасходов для сумм расходов в зависимости от должности Создаем РН ПодтвержденныеРасходы (Обороты) - Измерения (Сотрудник), Ресурсы (ПодтвержденныйРасход) для учета подтвержденных расходов из документа "Расчет лимитов" Создаем РН ЗаработанныеЛимиты(Остатки) - Измерения-Сотрудник,Год. Ресурсы - СуммаЛимита Регистратор - РасчетЛимитов Для учета прихода и расхода заработанных лимитов из документа "Расчет лимитов" ###################################################################################################### ---Форма РасчетЛимитов--- &НаКлиенте Процедура Заполнить(Команда) ЗаполнитьНаСервере(); КонецПроцедуры &НаСервере Процедура ЗаполнитьНаСервере() МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; ПараметрыПолучения = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц(); ПараметрыПолучения.Организация = Объект.Организация; ПараметрыПолучения.КадровыеДанные = "Сотрудник, Должность, КоличествоДетей, ТарифнаяСтавка"; ПараметрыПолучения.НачалоПериода = НачалоМесяца(Объект.Дата); ПараметрыПолучения.ОкончаниеПериода = КонецМесяца(Объект.Дата); КадровыйУчет.СоздатьВТСотрудникиОрганизации(МенеджерВременныхТаблиц, Истина, ПараметрыПолучения, "ВТСотрудникиОрганизации"); Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | ВТСотрудникиОрганизации.Сотрудник КАК Сотрудник, | ВТСотрудникиОрганизации.Должность КАК Должность, | ВТСотрудникиОрганизации.КоличествоДетей КАК КоличествоДетей, | &Месяц КАК Месяц, | &ДатаНачала КАК ДатаНачала, | &ДатаОкончания КАК ДатаОкончания, | &ДатаАктуальности КАК ДатаАктуальности, | ЕСТЬNULL(ЛимитВозмещенияРасходов.СуммаВозмещенияСоциальныхРасходов, 0) * ВТСотрудникиОрганизации.КоличествоДетей КАК ПлановыйЛимит |ПОМЕСТИТЬ ВТСотрудники |ИЗ | ВТСотрудникиОрганизации КАК ВТСотрудникиОрганизации | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЛимитВозмещенияРасходов КАК ЛимитВозмещенияРасходов | ПО ВТСотрудникиОрганизации.Должность = ЛимитВозмещенияРасходов.Должность"; Запрос.УстановитьПараметр("ДатаАктуальности", КонецМесяца(Объект.Дата)); Запрос.УстановитьПараметр("ДатаНачала", НачалоМесяца(Объект.Дата)); Запрос.УстановитьПараметр("ДатаОкончания", КонецМесяца(Объект.Дата)); Запрос.УстановитьПараметр("Месяц", Месяц(Объект.Дата)); Запрос.Выполнить(); ПараметрыПолученияДанных = УчетРабочегоВремениРасширенный.ПараметрыДляЗапросВТДанныеУчетаВремениИСостоянийСотрудников(); ПараметрыПолученияДанных.Вставить("ИмяВТСотрудники", "ВТСотрудники"); ПараметрыПолученияДанных.Вставить("ИмяВТРезультат", "ВТДанныеУчета"); ПараметрыПолученияДанных.ДатаНачала = НачалоМесяца(Объект.Дата); ПараметрыПолученияДанных.ДатаОкончания = КонецМесяца(Объект.Дата); ПараметрыПолученияДанных.МесяцДатаНачала = НачалоМесяца(Объект.Дата); ПараметрыПолученияДанных.МесяцДатаОкончания = КонецМесяца(Объект.Дата); ПараметрыПолученияДанных.ДатаАктуальности = КонецМесяца(Объект.Дата); ПараметрыПолученияДанных.Организация = Объект.Организация; УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаВремениИСостоянийСотрудников(МенеджерВременныхТаблиц, Истина, ПараметрыПолученияДанных); Запрос.Текст = "ВЫБРАТЬ | ВТДанныеУчетаВремениПоСостояниям.Сотрудник КАК Сотрудник, | СУММА(ВТДанныеУчетаВремениПоСостояниям.Дни) КАК Дни |ПОМЕСТИТЬ ВТДнейОтпуска |ИЗ | ВТДанныеУчетаВремениПоСостояниям КАК ВТДанныеУчетаВремениПоСостояниям |ГДЕ | ВТДанныеУчетаВремениПоСостояниям.ВидУчетаВремени = &ВидУчетаВремени | |СГРУППИРОВАТЬ ПО | ВТДанныеУчетаВремениПоСостояниям.Сотрудник |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТСотрудники.Сотрудник КАК Сотрудник, | ВТСотрудники.КоличествоДетей КАК КоличествоДетей, | ВТСотрудники.ПлановыйЛимит КАК ПлановыйЛимит, | (&КалендарныйДней - ЕСТЬNULL(ВТДнейОтпуска.Дни, 0)) / &КалендарныйДней КАК Коэффициент, | (&КалендарныйДней - ЕСТЬNULL(ВТДнейОтпуска.Дни, 0)) / &КалендарныйДней * ВТСотрудники.ПлановыйЛимит КАК ЗаработанныйЛимит, | ЕСТЬNULL(ЗаработанныеЛимитыОстаткиИОбороты.СуммаЛимитаНачальныйОстаток, 0) КАК ОстатокЛимитаНаНачалоПериода |ИЗ | ВТСотрудники КАК ВТСотрудники | ЛЕВОЕ СОЕДИНЕНИЕ ВТДнейОтпуска КАК ВТДнейОтпуска | ПО ВТСотрудники.Сотрудник = ВТДнейОтпуска.Сотрудник | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаработанныеЛимиты.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК ЗаработанныеЛимитыОстаткиИОбороты | ПО ВТСотрудники.Сотрудник = ЗаработанныеЛимитыОстаткиИОбороты.Сотрудник"; Запрос.УстановитьПараметр("ВидУчетаВремени", Справочники.ВидыИспользованияРабочегоВремени.НеоплачиваемыйОтпускПоЗаконодательству); Запрос.УстановитьПараметр("КалендарныйДней", День(КонецМесяца(Объект.Дата))); Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(Объект.Дата)); Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(Объект.Дата)); Объект.Сотрудники.Загрузить(Запрос.Выполнить().Выгрузить()); КонецПроцедуры &НаКлиенте Процедура СотрудникиОстатокЛимитаНаНачалоПериодаПриИзменении(Элемент) Стр = Элементы.Сотрудники.ТекущиеДанные; Если Стр.ПодтвержденныеРасходы > (Стр.ОстатокЛимитаНаНачалоПериода + Стр.ЗаработанныйЛимит) Тогда Стр.ФактическиВозмещенныеРасходы = Стр.ОстатокЛимитаНаНачалоПериода + Стр.ЗаработанныйЛимит; Иначе Стр.ФактическиВозмещенныеРасходы = Стр.ПодтвержденныеРасходы; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура СотрудникиПодтвержденныеРасходыПриИзменении(Элемент) Стр = Элементы.Сотрудники.ТекущиеДанные; Если Стр.ПодтвержденныеРасходы > (Стр.ОстатокЛимитаНаНачалоПериода + Стр.ЗаработанныйЛимит) Тогда Стр.ФактическиВозмещенныеРасходы = Стр.ОстатокЛимитаНаНачалоПериода + Стр.ЗаработанныйЛимит; Иначе Стр.ФактическиВозмещенныеРасходы = Стр.ПодтвержденныеРасходы; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура СотрудникиФактическиВозмещенныеРасходыПриИзменении(Элемент) Стр = Элементы.Сотрудники.ТекущиеДанные; Если Стр.ПодтвержденныеРасходы > (Стр.ОстатокЛимитаНаНачалоПериода + Стр.ЗаработанныйЛимит) Тогда Стр.ФактическиВозмещенныеРасходы = Стр.ОстатокЛимитаНаНачалоПериода + Стр.ЗаработанныйЛимит; Иначе Стр.ФактическиВозмещенныеРасходы = Стр.ПодтвержденныеРасходы; КонецЕсли; КонецПроцедуры ########################################################################################################################## Код модуля для РасчетЛимитов копируем из РегистрацияПереработок В начале пишем движения для РазовыхПоказателей, потом добавляем ПодтвержденныеРасходы(Оброты), ЗаработанныйЛимит(Остатки) Проверяем стоят ли движения документа Снимаем проведение с Данные для расчета зарплаты; ############################################################################################################################# ---Модуль объекта РасчетЛимитов--- #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Область ОбработчикиСобытий Процедура ОбработкаПроведения(Отказ, РежимПроведения) // Проведение документа ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект); ЗаписатьЗначенияПоказателейРасчетаЗарплаты(Движения, Отказ); СформироватьДвиженияПодтвержденныеРасходы(Отказ, РежимПроведения); СформироватьДвиженияЗаработанныйЛимит(Отказ, РежимПроведения); КонецПроцедуры #КонецОбласти #Область СлужебныеПроцедурыИФункции Процедура ЗаписатьЗначенияПоказателейРасчетаЗарплаты(Движения, Отказ) ЗначенияПоказателей = Новый ТаблицаЗначений; ЗначенияПоказателей.Колонки.Добавить("ПериодДействия", Новый ОписаниеТипов("Дата")); ЗначенияПоказателей.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники")); ЗначенияПоказателей.Колонки.Добавить("Показатель", Новый ОписаниеТипов("СправочникСсылка.ПоказателиРасчетаЗарплаты")); ЗначенияПоказателей.Колонки.Добавить("Значение", Новый ОписаниеТипов("Число")); Для каждого Сотрудник Из Сотрудники Цикл НоваяСтрока = ЗначенияПоказателей.Добавить(); НоваяСтрока.ПериодДействия = НачалоМесяца(Дата); НоваяСтрока.Сотрудник = Сотрудник.Сотрудник; НоваяСтрока.Показатель = Показатель; НоваяСтрока.Значение = Сотрудник.ФактическиВозмещенныеРасходы; КонецЦикла; РасчетЗарплатыРасширенный.ЗарегистрироватьЗначенияРазовыхПоказателейСотрудников(Движения, Организация, ЗначенияПоказателей); КонецПроцедуры #КонецОбласти #КонецЕсли #Область ОбработчикиСобытий Процедура СформироватьДвиженияПодтвержденныеРасходы(Отказ, РежимПроведения) Движения.ПодтвержденныеРасходы.Записывать = Истина; Для Каждого ТекСтрокаСотрудники Из Сотрудники Цикл Движение = Движения.ПодтвержденныеРасходы.Добавить(); Движение.Период = Дата; Движение.Сотрудник = ТекСтрокаСотрудники.Сотрудник; Движение.ПодтвержденныеРасходы = ТекСтрокаСотрудники.ПодтвержденныеРасходы; КонецЦикла; КонецПроцедуры #КонецОбласти #Область ОбработчикиСобытий Процедура СформироватьДвиженияЗаработанныйЛимит(Отказ, РежимПроведения) Движения.ЗаработанныеЛимиты.Записывать = Истина; Для Каждого ТекСтрокаСотрудники Из Сотрудники Цикл Движение = Движения.ЗаработанныеЛимиты.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Сотрудник = ТекСтрокаСотрудники.Сотрудник; Движение.СуммаЛимита = ТекСтрокаСотрудники.ЗаработанныйЛимит; КонецЦикла; Для Каждого ТекСтрокаСотрудники Из Сотрудники Цикл Движение = Движения.ЗаработанныеЛимиты.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Сотрудник = ТекСтрокаСотрудники.Сотрудник; Движение.СуммаЛимита = ТекСтрокаСотрудники.ФактическиВозмещенныеРасходы; КонецЦикла; КонецПроцедуры #КонецОбласти ############################################################################################################## Подтвержденные расходы пишем вручную, создаем еще 2 периода, проводим проверяем ---Отчет--- Берем таблицу ЗаработанныеЛимитыОстаткиИОбороты, период Месяц Вытаскиваем поля Период, Сотрудник, НачальныйОстаток, КонечныйОстаток, Приход, Расход Псевдонимы Месяц, ОстаткоЛимитаНаНачалоПериода, ОстатокЛимитаНаКонецПериода, ЗаработаноЛимитовЗаПериод, ФактическиВозмещенныеРасходы Дополнительно - ВТ_НачКонОстЛимитов Запрос пакета 2 - Берем ВТ_НачКонОстЛимитов и РН ПодтвержденныеРасходы.Обороты (Период Месяц) Связь - Таблица1 ВТ_НачКонОстЛимитов - по Сотруднику Берем все поля ВТ_НачКОнОстЛимитов Берем поле ПодтвержденныйРасходОборот - Проверка на NULL Псевдоним ПодтвержденныеРасходы Ресурсы -все Параметры - СтандартныйПериод Параметры - Период - Быстрый доступ Конструктор - Список - Далее Сотрудник, Месяц, ОстатокЛимитаНаНачало, ЗаработаноЛимитов, ПодтвержденныеРасходы, ФактическиВозмещенные, ОстатокЛимитаНаКонец Поля группировки - Сотрудник, Месяц Упорядочивание - Сотрудник, Месяц Другие настройки - Общих итогов нету Другие настройки - Заголовок - Выводить заголовок ################################################################################################################################### ---Пояснительная записка--- Начальная настройка Добавлен показатель "Сумма компенсации". Для сотрудника. Числовой. Накапливается по отдельным значениям документами ввода данных для расчета зарплаты. Добавлено начисление "Возмещение социальных расходов". Формула: "Сумма компенсации". Назначение - Компенсационные выплаты, Только если введено значение показателя Объекты конфигурации Создан РС "ЛимитВозмещенияРасходов" для сопоставления должности сотрудника плановому лимиту на одного ребенка. Периодичность: "Непериодический". Режим записи: "Независимый". Создан РН "ЗаработанныеЛимиты" для учета задолженности лимитов и построения отчета по возмещению социальных расходов. Вид регистра: "Остатки". Измерения: "Сотрудник". Ресурсы: "СуммаЛимита" Создан РН "ПодтвержденныеРасходы" для учета социальных расходов на основании предоставленных документов. Создан документ "Расчет лимитов" для учета ежемесячно "зарабатываемых" лимитов социальных расходов. Табличная часть документа заполняется по команде "Заполнить" всеми сотрудниками организации. Документ делает движения по типовому РН "Значения оперативных показателей расчета зарплаты (для сотрудников)", по РН "Взаиморасчеты по социальным расходам" (Приход), по РН "Взаиморасчеты по социальным расходам" (Расход) и по РН "ЗаработанныеЛимиты" Создан отчет "Возмещение социальных расходов". Источники данных для отчета: РН "ЗаработанныеЛимитыОстаткиИОбороты": "Остаток лимита на начало периода", "Заработано лимита за период", "Остаток лимита на конец периода" РН "ПодтвержденныеРасходы": ""ПодтвержденныеРасходы": " Заполнение На работу 1 января 2025 года приняты 3 сотрудника, оплата по окладу, у двух сотрудников есть дети. Введены данные по расчету лимитов и по регистрации фактических социальных расходов за январь, февраль, март 2025 года и за февраль и март 2025 года зарегистрирован отпуск у 1 сотрудника. Оплата по окладу, и возмещение социальных расходов начисляются типовым документом "Начисление зарплаты и взносов". В этом же документе расчитывается НДФЛ и страховые взносы.