v3.0.0.51
This commit is contained in:
@@ -472,6 +472,15 @@
|
||||
СоответствиеСотрудников.Вставить(Эл.Идентификатор, Эл.ФИО);
|
||||
КонецЦикла;
|
||||
|
||||
// Кэш сотрудников: Идентификатор -> (Сотрудник, ФизическоеЛицо)
|
||||
КэшСотрудников = Новый Соответствие;
|
||||
Для Каждого Эл Из Объект.Сотрудники Цикл
|
||||
СотрСсылка = Справочники.Сотрудники.НайтиПоНаименованию(СокрЛП(Эл.ФИО), Истина);
|
||||
Если ЗначениеЗаполнено(СотрСсылка) Тогда
|
||||
КэшСотрудников.Вставить(Эл.Идентификатор, Новый Структура("Сотрудник, ФизическоеЛицо", СотрСсылка, СотрСсылка.ФизическоеЛицо));
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
// Сопоставление организаций и статей
|
||||
Организация = Справочники.Организации.НайтиПоНаименованию(СокрЛП(Объект.Организация), Истина);
|
||||
СтатьяФинансирования = Справочники.СтатьиФинансированияЗарплата.НайтиПоНаименованию(СокрЛП(Объект.СтатьяФинансирования), Истина);
|
||||
@@ -482,35 +491,38 @@
|
||||
// ============================================
|
||||
Для Каждого Строка Из Объект.ДанныеРасчетаЗП Цикл
|
||||
ИД = Строка.ИдентификаторСотрудника;
|
||||
ДанныеСотр = КэшСотрудников.Получить(ИД);
|
||||
ФизЛицо = ?(ДанныеСотр <> Неопределено, ДанныеСотр.ФизическоеЛицо, Неопределено);
|
||||
СотрудникСсылка = ?(ДанныеСотр <> Неопределено, ДанныеСотр.Сотрудник, Неопределено);
|
||||
|
||||
// Начисления (Оклад, доплаты, надбавки и т.д.)
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.Оклад, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ДоплатаСовместительство", Строка.ДоплатаСовместительство, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ДоплатаНочные", Строка.ДоплатаНочные, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ДоплатаПраздничные", Строка.ДоплатаПраздничные, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "НадбавкаЗаКатегорию", Строка.НадбавкаЗаКатегорию, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "НадбавкаЗаВредность", Строка.НадбавкаЗаВредность, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ПовышающийКоэффициент", Строка.ПовышающийКоэффициент, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "СтимулирующаяВыплата", Строка.СтимулирующиеВыплаты, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "РайонныйКоэффициент", Строка.РайонныйКоэффициент, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ПремияРазовая", Строка.ПремияРазовая, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Отпуск", Строка.Отпуск, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "КомпенсацияЗаНеиспользованныйОтпуск", Строка.КомпенсацияЗаОтпуск, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ВыходноеПособие", Строка.ВыходноеПособие, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Родовые", Строка.Родовые, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.Оклад, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ДоплатаСовместительство", Строка.ДоплатаСовместительство, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ДоплатаНочные", Строка.ДоплатаНочные, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ДоплатаПраздничные", Строка.ДоплатаПраздничные, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "НадбавкаЗаКатегорию", Строка.НадбавкаЗаКатегорию, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "НадбавкаЗаВредность", Строка.НадбавкаЗаВредность, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ПовышающийКоэффициент", Строка.ПовышающийКоэффициент, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "СтимулирующаяВыплата", Строка.СтимулирующиеВыплаты, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "РайонныйКоэффициент", Строка.РайонныйКоэффициент, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ПремияРазовая", Строка.ПремияРазовая, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Отпуск", Строка.Отпуск, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "КомпенсацияЗаНеиспользованныйОтпуск", Строка.КомпенсацияЗаОтпуск, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ВыходноеПособие", Строка.ВыходноеПособие, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Родовые", Строка.Родовые, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
|
||||
// Удержания
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "НДФЛ", Строка.НДФЛ, Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержано, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ПрофВзнос", Строка.ПрофВзнос, Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержано, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ИсполнительныйДокумент", Строка.ИсполнительныеДокументы, Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержано, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "НДФЛ", Строка.НДФЛ, Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержано, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ПрофВзнос", Строка.ПрофВзнос, Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержано, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ИсполнительныйДокумент", Строка.ИсполнительныеДокументы, Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержано, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
|
||||
// Выплаты
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.Аванс, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.ЗарплатаЗаПервуюПоловину, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Касса1", Строка.Касса1, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "БезналичноеПеречисление", Строка.БезналичныеПеречисления, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ПремияАванс", Строка.ПремияАванс, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ВыплатыВМежрасчетный", Строка.ВыплатыВМежрасчетный, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.Аванс, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.ЗарплатаЗаПервуюПоловину, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Касса1", Строка.Касса1, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "БезналичноеПеречисление", Строка.БезналичныеПеречисления, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ПремияАванс", Строка.ПремияАванс, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ВыплатыВМежрасчетный", Строка.ВыплатыВМежрасчетный, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
|
||||
КонецЦикла;
|
||||
|
||||
// Регистр 2: ОтработанноеВремяПоСотрудникам
|
||||
@@ -532,9 +544,13 @@
|
||||
// Регистр 3: СведенияОДоходахНДФЛ
|
||||
// ============================================
|
||||
Для Каждого Строка Из Объект.ДанныеНДФЛ Цикл
|
||||
ДанныеСотр = КэшСотрудников.Получить(Строка.ИдентификаторСотрудника);
|
||||
Если ДанныеСотр = Неопределено Тогда Продолжить; КонецЕсли;
|
||||
Движение = ДокПеренос.Движения.СведенияОДоходахНДФЛ.Добавить();
|
||||
Движение.Период = Период;
|
||||
Движение.ГоловнаяОрганизация = Организация;
|
||||
Движение.Организация = Организация;
|
||||
Движение.ФизическоеЛицо = ДанныеСотр.ФизическоеЛицо;
|
||||
Движение.МесяцНалоговогоПериода = Период;
|
||||
Движение.СуммаДохода = Строка.СуммаВаловогоДохода;
|
||||
Движение.СуммаВычета = Строка.СкидкаДляНДФЛЗаМесяц + Строка.ВычетНаРаботникаЗаМесяц + Строка.ВычетНаИждивенцевЗаМесяц;
|
||||
@@ -544,9 +560,14 @@
|
||||
// Регистр 4: СтраховыеВзносыПоФизическимЛицам
|
||||
// ============================================
|
||||
Для Каждого Строка Из Объект.ДанныеСтраховыхВзносов Цикл
|
||||
ДанныеСотр = КэшСотрудников.Получить(Строка.ИдентификаторСотрудника);
|
||||
Если ДанныеСотр = Неопределено Тогда Продолжить; КонецЕсли;
|
||||
Движение = ДокПеренос.Движения.СтраховыеВзносыПоФизическимЛицам.Добавить();
|
||||
Движение.Период = Период;
|
||||
Движение.Организация = Организация;
|
||||
Движение.ФизическоеЛицо = ДанныеСотр.ФизическоеЛицо;
|
||||
Движение.Сотрудник = ДанныеСотр.Сотрудник;
|
||||
Движение.Начисление = ПланыВидовРасчета.Начисления.Оклад;
|
||||
Движение.ПФРДоПредельнойВеличины = Строка.ДТ6Процент;
|
||||
Движение.ПФРСтраховая = Строка.ПФСтраховая;
|
||||
Движение.ФФОМС = Строка.ФССФОМС;
|
||||
@@ -564,51 +585,18 @@
|
||||
// ============================================
|
||||
ДвиженияВзаиморасчеты = ДокПеренос.Движения.ВзаиморасчетыССотрудниками;
|
||||
Для Каждого Строка Из Объект.ДанныеРасчетаЗП Цикл
|
||||
ДанныеСотр = КэшСотрудников.Получить(Строка.ИдентификаторСотрудника);
|
||||
Если ДанныеСотр = Неопределено Тогда Продолжить; КонецЕсли;
|
||||
Если Строка.ВсегоНаРуки <> 0 Тогда
|
||||
Движение = ДвиженияВзаиморасчеты.Добавить();
|
||||
Движение.Период = Период;
|
||||
Движение.Организация = Организация;
|
||||
Движение.ФизическоеЛицо = Строка.ФизическоеЛицо;
|
||||
Движение.Сотрудник = Строка.Сотрудник;
|
||||
Движение.Подразделение = Строка.Подразделение;
|
||||
Движение.СтатьяФинансирования = СтатьяФинансирования;
|
||||
Движение.СтатьяРасходов = СтатьяРасходов;
|
||||
Движение.СуммаВзаиморасчетов = Строка.ВсегоНаРуки;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
// ============================================
|
||||
// Регистр 7: БухгалтерскиеВзаиморасчетыССотрудниками (остатки)
|
||||
// ============================================
|
||||
ДвиженияБухВзаиморасчеты = ДокПеренос.Движения.БухгалтерскиеВзаиморасчетыССотрудниками;
|
||||
Для Каждого Строка Из Объект.ДанныеРасчетаЗП Цикл
|
||||
Если Строка.ВсегоНаРуки <> 0 Тогда
|
||||
Движение = ДвиженияБухВзаиморасчеты.Добавить();
|
||||
Движение.Период = Период;
|
||||
Движение.Организация = Организация;
|
||||
Движение.ФизическоеЛицо = Строка.ФизическоеЛицо;
|
||||
Движение.Сотрудник = Строка.Сотрудник;
|
||||
Движение.Подразделение = Строка.Подразделение;
|
||||
Движение.СтатьяФинансирования = СтатьяФинансирования;
|
||||
Движение.СтатьяРасходов = СтатьяРасходов;
|
||||
Движение.СуммаВзаиморасчетов = Строка.ВсегоНаРуки;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
// ============================================
|
||||
// Регистр 8: ДанныеОВремениДляРасчетаСреднегоОбщий
|
||||
// ============================================
|
||||
ДвиженияСреднего = ДокПеренос.Движения.ДанныеОВремениДляРасчетаСреднегоОбщий;
|
||||
Для Каждого Строка Из Объект.ДанныеРасчетаЗП Цикл
|
||||
Если Строка.ОтработаноДней <> 0 Тогда
|
||||
Движение = ДвиженияСреднего.Добавить();
|
||||
Движение.Период = Период;
|
||||
Движение.Организация = Организация;
|
||||
Движение.ФизическоеЛицо = Строка.ФизическоеЛицо;
|
||||
Движение.Сотрудник = Строка.Сотрудник;
|
||||
Движение.НормаДнейКалендарных = Строка.ОтработаноДнейКалендарных;
|
||||
Движение.ФизическоеЛицо = ДанныеСотр.ФизическоеЛицо;
|
||||
Движение.Сотрудник = ДанныеСотр.Сотрудник;
|
||||
Движение.Начисление = ПланыВидовРасчета.Начисления.Оклад;
|
||||
Движение.ОтработаноДней = Строка.ОтработаноДней;
|
||||
Движение.ОтработаноДнейКалендарных = Строка.ОтработаноДнейКалендарных;
|
||||
Движение.КоличествоСтавок = Строка.КоличествоСтавок;
|
||||
Движение.ДнейБолезниУходаЗаДетьми = 0;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -624,7 +612,7 @@
|
||||
|
||||
// Вспомогательная процедура для записи начисления/удержания/выплаты
|
||||
&НаСервере
|
||||
Процедура ЗаписатьНачисление(ДокПеренос, Строка, ВидРасчета, Сумма, Группа, Период, Организация, СтатьяФинансирования, СтатьяРасходов)
|
||||
Процедура ЗаписатьНачисление(ДокПеренос, Строка, ВидРасчета, Сумма, Группа, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка)
|
||||
Если Сумма = 0 Тогда Возврат; КонецЕсли;
|
||||
|
||||
// Находим вид расчёта по наименованию
|
||||
@@ -633,9 +621,8 @@
|
||||
Движение = ДокПеренос.Движения.НачисленияУдержанияПоСотрудникам.Добавить();
|
||||
Движение.Период = Период;
|
||||
Движение.Организация = Организация;
|
||||
Движение.ФизическоеЛицо = Строка.ФизическоеЛицо;
|
||||
Движение.Сотрудник = Строка.Сотрудник;
|
||||
Движение.Подразделение = Строка.Подразделение;
|
||||
Движение.ФизическоеЛицо = ФизЛицо;
|
||||
Движение.Сотрудник = СотрудникСсылка;
|
||||
Движение.НачислениеУдержание = ВидРасчёта;
|
||||
Движение.Сумма = Сумма;
|
||||
Движение.ГруппаНачисленияУдержанияВыплаты = Группа;
|
||||
|
||||
Reference in New Issue
Block a user