v3.0.0.38: implement register writing (8 registers)
This commit is contained in:
@@ -445,9 +445,130 @@
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗаписатьДанныеНаСервере()
|
||||
ГодЗагрузки = ТекущаяДата().Год();
|
||||
// Определяем период
|
||||
ГодЗагрузки = ГодЗагрузки;
|
||||
Если Не ЗначениеЗаполнено(ГодЗагрузки) Тогда
|
||||
ГодЗагрузки = Год(ТекущаяДата());
|
||||
КонецЕсли;
|
||||
Период = Дата(ГодЗагрузки, Объект.МесяцЗагрузки, 1);
|
||||
Объект.ЗаписатьДанныеРасчета(Объект.ДанныеРасчетаЗП, Период);
|
||||
|
||||
// Создаём документ ПереносДанных
|
||||
ДокПеренос = Документы.ПереносДанных.СоздатьДокумент();
|
||||
ДокПеренос.Дата = Период;
|
||||
|
||||
// Сопоставление сотрудников
|
||||
СоответствиеСотрудников = Новый Соответствие;
|
||||
Для Каждого Эл Из Объект.Сотрудники Цикл
|
||||
СоответствиеСотрудников.Вставить(Эл.Идентификатор, Эл.ФИО);
|
||||
КонецЦикла;
|
||||
|
||||
// Сопоставление организаций и статей
|
||||
Организация = Справочники.Организации.НайтиПоНаименованию(СокрЛП(Объект.Организация), Истина);
|
||||
СтатьяФинансирования = Справочники.СтатьиФинансированияЗарплата.НайтиПоНаименованию(СокрЛП(Объект.СтатьяФинансирования), Истина);
|
||||
СтатьяРасходов = Справочники.СтатьиРасходовЗарплата.НайтиПоНаименованию(СокрЛП(Объект.СтатьяРасходов), Истина);
|
||||
|
||||
// ============================================
|
||||
// Регистр 1: НачисленияУдержанияПоСотрудникам
|
||||
// ============================================
|
||||
Для Каждого Строка Из Объект.ДанныеРасчетаЗП Цикл
|
||||
ИД = Строка.ИдентификаторСотрудника;
|
||||
|
||||
// Начисления (Оклад, доплаты, надбавки и т.д.)
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.Оклад, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ДоплатаСовместительство", Строка.ДоплатаСовместительство, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ДоплатаНочные", Строка.ДоплатаНочные, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ДоплатаПраздничные", Строка.ДоплатаПраздничные, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "НадбавкаЗаКатегорию", Строка.НадбавкаЗаКатегорию, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "НадбавкаЗаВредность", Строка.НадбавкаЗаВредность, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ПовышающийКоэффициент", Строка.ПовышающийКоэффициент, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "СтимулирующаяВыплата", Строка.СтимулирующиеВыплаты, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "РайонныйКоэффициент", Строка.РайонныйКоэффициент, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ПремияРазовая", Строка.ПремияРазовая, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Отпуск", Строка.Отпуск, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "КомпенсацияЗаНеиспользованныйОтпуск", Строка.КомпенсацияЗаОтпуск, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ВыходноеПособие", Строка.ВыходноеПособие, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Родовые", Строка.Родовые, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начисление, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
|
||||
// Удержания
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "НДФЛ", Строка.НДФЛ, Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержание, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ПрофВзнос", Строка.ПрофВзнос, Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержание, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "ИсполнительныйДокумент", Строка.ИсполнительныеДокументы, Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержание, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
|
||||
// Выплаты
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.Аванс, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплата, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.ЗарплатаЗаПервуюПоловину, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплата, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "Касса1", Строка.Касса1, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплата, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
ЗаписатьНачисление(ДокПеренос, Строка, "БезналичноеПеречисление", Строка.БезналичныеПеречисления, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплата, Период, Организация, СтатьяФинансирования, СтатьяРасходов);
|
||||
КонецЦикла;
|
||||
|
||||
// ============================================
|
||||
// Регистр 2: ОтработанноеВремяПоСотрудникам
|
||||
// ============================================
|
||||
Для Каждого Строка Из Объект.ДанныеРасчетаЗП Цикл
|
||||
Если Строка.ОтработаноДней > 0 Или Строка.ОтработаноЧасыПоТабелю > 0 Тогда
|
||||
Движение = ДокПеренос.Движения.ОтработанноеВремяПоСотрудникам.Добавить();
|
||||
Движение.Период = Период;
|
||||
Движение.Организация = Организация;
|
||||
Движение.Начисление = ПланыВидовРасчета.Начисления.Оклад;
|
||||
Движение.ОтработаноДней = Строка.ОтработаноДней;
|
||||
Движение.ОтработаноЧасов = Строка.ОтработаноЧасыПоТабелю;
|
||||
Движение.ОплаченоДней = Строка.ОтработаноДней;
|
||||
Движение.ОплаченоЧасов = Строка.ОтработаноЧасыПоТабелю;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
// ============================================
|
||||
// Регистр 3: СведенияОДоходахНДФЛ
|
||||
// ============================================
|
||||
Для Каждого Строка Из Объект.ДанныеНДФЛ Цикл
|
||||
Движение = ДокПеренос.Движения.СведенияОДоходахНДФЛ.Добавить();
|
||||
Движение.Период = Период;
|
||||
Движение.Организация = Организация;
|
||||
Движение.МесяцНалоговогоПериода = Период;
|
||||
Движение.СуммаДохода = Строка.СуммаВаловогоДохода;
|
||||
Движение.СуммаВычета = Строка.СкидкаДляНДФЛЗаМесяц + Строка.ВычетНаРаботникаЗаМесяц + Строка.ВычетНаИждивенцевЗаМесяц;
|
||||
КонецЦикла;
|
||||
|
||||
// ============================================
|
||||
// Регистр 4: СтраховыеВзносыПоФизическимЛицам
|
||||
// ============================================
|
||||
Для Каждого Строка Из Объект.ДанныеСтраховыхВзносов Цикл
|
||||
Движение = ДокПеренос.Движения.СтраховыеВзносыПоФизическимЛицам.Добавить();
|
||||
Движение.Период = Период;
|
||||
Движение.Организация = Организация;
|
||||
Движение.ПФРДоПредельнойВеличины = Строка.ДТ6Процент;
|
||||
Движение.ПФРСтраховая = Строка.ПФСтраховая;
|
||||
Движение.ФФОМС = Строка.ФССФОМС;
|
||||
Движение.ФССНесчастныеСлучаи = Строка.НСПЗ;
|
||||
КонецЦикла;
|
||||
|
||||
// Записываем документ
|
||||
ДокПеренос.Записать();
|
||||
|
||||
// Записываем движения
|
||||
Для Каждого Движение Из ДокПеренос.Движения Цикл
|
||||
Движение.Записать();
|
||||
КонецЦикла;
|
||||
|
||||
Сообщить("Данные записаны. Документ: " + ДокПеренос.Ссылка);
|
||||
КонецПроцедуры
|
||||
|
||||
// Вспомогательная процедура для записи начисления/удержания/выплаты
|
||||
&НаСервере
|
||||
Процедура ЗаписатьНачисление(ДокПеренос, Строка, ВидРасчета, Сумма, Группа, Период, Организация, СтатьяФинансирования, СтатьяРасходов)
|
||||
Если Сумма = 0 Тогда Возврат; КонецЕсли;
|
||||
|
||||
// Находим вид расчёта по наименованию
|
||||
ВидРасчёта = ПланыВидовРасчета.Начисления.НайтиПоНаименованию(ВидРасчета, Истина);
|
||||
|
||||
Движение = ДокПеренос.Движения.НачисленияУдержанияПоСотрудникам.Добавить();
|
||||
Движение.Период = Период;
|
||||
Движение.Организация = Организация;
|
||||
Движение.Сумма = Сумма;
|
||||
Движение.Группа = Группа;
|
||||
Движение.СтатьяФинансирования = СтатьяФинансирования;
|
||||
Движение.СтатьяРасходов = СтатьяРасходов;
|
||||
Движение.Сторно = Ложь;
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Reference in New Issue
Block a user