090ae55ddf
Два обработки:
1. Загрузка данных из табелей. Это отлаженная обработка.
Используется у заказчика
2. Загрузка расчетных данных из Excel. На переходном этапе. До
этого разрабатывалась в xiaomi mimo.
188 lines
18 KiB
Plaintext
188 lines
18 KiB
Plaintext
// Маппинг данных
|
||
// Парсинг Excel-листов, маппинг колонок на ПВР
|
||
// Зависит от: ЗагрузкаДанныхИзExcel_ЧтениеЭксель
|
||
|
||
&НаКлиенте
|
||
Функция НомерМесяцаВТекст(НомерМесяца) Экспорт
|
||
Массив = Новый Массив;
|
||
Массив.Добавить("Январь"); Массив.Добавить("Февраль");
|
||
Массив.Добавить("Март"); Массив.Добавить("Апрель");
|
||
Массив.Добавить("Май"); Массив.Добавить("Июнь");
|
||
Массив.Добавить("Июль"); Массив.Добавить("Август");
|
||
Массив.Добавить("Сентябрь"); Массив.Добавить("Октябрь");
|
||
Массив.Добавить("Ноябрь"); Массив.Добавить("Декабрь");
|
||
Если НомерМесяца >= 1 И НомерМесяца <= 12 Тогда
|
||
Возврат Массив[НомерМесяца - 1];
|
||
КонецЕсли;
|
||
Возврат "";
|
||
КонецФункции
|
||
|
||
&НаКлиенте
|
||
Функция СтрокаМесяцаНаЛистеСотрудника(МесяцЗагрузки) Экспорт
|
||
Смещение = МесяцЗагрузки;
|
||
Если Не ЗначениеЗаполнено(Смещение) Тогда Смещение = 1; КонецЕсли;
|
||
Возврат 35 + Смещение;
|
||
КонецФункции
|
||
|
||
&НаКлиенте
|
||
Функция НайтиЛистСотрудника(Книга, ЛистРасчет, НомерСтроки) Экспорт
|
||
Формула = ЛистРасчет.Cells(НомерСтроки, 1).Formula;
|
||
Если ЗначениеЗаполнено(Формула) Тогда
|
||
ИмяЛиста = ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ИзвлечьИмяЛистаИзФормулы(Формула);
|
||
Если ЗначениеЗаполнено(ИмяЛиста) Тогда
|
||
Возврат ЗагрузкаДанныхИзExcel_ЧтениеЭксель.НайтиЛист(Книга, ИмяЛиста);
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
ФИО = ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ПрочитатьЯчейкуСтрока(ЛистРасчет, НомерСтроки, 1);
|
||
Если ЗначениеЗаполнено(ФИО) Тогда
|
||
Возврат ЗагрузкаДанныхИзExcel_ЧтениеЭксель.НайтиЛист(Книга, ФИО);
|
||
КонецЕсли;
|
||
Возврат Неопределено;
|
||
КонецФункции
|
||
|
||
&НаКлиенте
|
||
Функция ПрочитатьКарточкуСотрудника(ЛистСотрудника) Экспорт
|
||
Данные = Новый Структура;
|
||
Данные.Вставить("ФИО", ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ПрочитатьЯчейкуСтрока(ЛистСотрудника, 2, 3));
|
||
Данные.Вставить("ИНН", "");
|
||
Данные.Вставить("СНИЛС", "");
|
||
Данные.Вставить("ЛицевойСчетВБанке", ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ПрочитатьЯчейкуСтрока(ЛистСотрудника, 3, 4));
|
||
Данные.Вставить("ВидЗанятости", ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ПрочитатьЯчейкуСтрока(ЛистСотрудника, 5, 1));
|
||
Данные.Вставить("АдресРегистрации", "");
|
||
Возврат Данные;
|
||
КонецФункции
|
||
|
||
&НаКлиенте
|
||
Функция ПрочитатьРасчетныеДанные(ЛистРасчет, Ном, ФИО) Экспорт
|
||
Ч = ЗагрузкаДанныхИзExcel_ЧтениеЭксель;
|
||
С = Новый Структура;
|
||
С.Вставить("ФИО", ФИО);
|
||
С.Вставить("Должность", Ч.ПрочитатьЯчейкуСтрока(ЛистРасчет, Ном, 2));
|
||
С.Вставить("СчетБК", Ч.ПрочитатьЯчейкуСтрока(ЛистРасчет, Ном, 3));
|
||
С.Вставить("ВидЗанятости", Ч.ПрочитатьЯчейкуСтрока(ЛистРасчет, Ном, 4));
|
||
С.Вставить("Оклад", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 8, ФИО));
|
||
С.Вставить("КоличествоСтавок", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 7, ФИО));
|
||
С.Вставить("ОтработаноДней", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 6, ФИО));
|
||
С.Вставить("ЧасыДежурства", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 9, ФИО));
|
||
С.Вставить("ЧасыНочные", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 10, ФИО));
|
||
С.Вставить("ЧасыПраздничные", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 11, ФИО));
|
||
С.Вставить("РабочиеЧасыПоТабелю", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 12, ФИО));
|
||
С.Вставить("ИзРасчетаМесячногоОкладаДни", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 13, ФИО));
|
||
С.Вставить("ДоплатаСовместительство", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 14, ФИО));
|
||
С.Вставить("ДоплатаСовмещениеПроцент", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 15, ФИО));
|
||
С.Вставить("ДоплатаИнтенсивность", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 16, ФИО));
|
||
С.Вставить("ИзРасчетаМесячногоОкладаЧасы", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 17, ФИО));
|
||
С.Вставить("ДоплатаНочные", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 18, ФИО));
|
||
С.Вставить("ДоплатаПраздничные", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 19, ФИО));
|
||
С.Вставить("ЗаСтаж", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 20, ФИО));
|
||
С.Вставить("НадбавкаЗаКатегорию", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 21, ФИО));
|
||
С.Вставить("НадбавкаЗаВредность", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 22, ФИО));
|
||
С.Вставить("ПовышающийКоэффициент", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 23, ФИО));
|
||
С.Вставить("СтимулирующиеВыплаты", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 24, ФИО));
|
||
С.Вставить("СтимулирующаяНадбавка", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 25, ФИО));
|
||
С.Вставить("РайонныйКоэффициент", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 26, ФИО));
|
||
С.Вставить("ВыплатыПоУказу597", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 27, ФИО));
|
||
С.Вставить("ПремияРазовая", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 28, ФИО));
|
||
С.Вставить("БольничныйЛистЗаСчетПредприятия", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 29, ФИО));
|
||
С.Вставить("ДоплатаПрофактиву", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 30, ФИО));
|
||
С.Вставить("ПусковыеОбсервация", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 31, ФИО));
|
||
С.Вставить("Отпуск", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 32, ФИО));
|
||
С.Вставить("КомпенсацияЗаОтпуск", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 33, ФИО));
|
||
С.Вставить("ПрочиеКомандировочныйУчебныйОтпуск", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 34, ФИО));
|
||
С.Вставить("ВыходноеПособие", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 35, ФИО));
|
||
С.Вставить("ПоУходуЗаРебенкомИнвалидом", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 36, ФИО));
|
||
С.Вставить("ДоплатаДоМРОТ", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 37, ФИО));
|
||
С.Вставить("Родовые", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 38, ФИО));
|
||
С.Вставить("ИтогоНачислено", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 39, ФИО));
|
||
С.Вставить("НДФЛ", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 40, ФИО));
|
||
С.Вставить("ПрофВзнос", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 41, ФИО));
|
||
С.Вставить("ИсполнительныеДокументы", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 42, ФИО));
|
||
С.Вставить("Аванс", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 43, ФИО));
|
||
С.Вставить("ПФСофинансирование", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 44, ФИО));
|
||
С.Вставить("ПремияУдержание", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 45, ФИО));
|
||
С.Вставить("Касса1", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 46, ФИО));
|
||
С.Вставить("Касса2", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 47, ФИО));
|
||
С.Вставить("Касса3", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 48, ФИО));
|
||
С.Вставить("ПособиеДо3ЛетУдержание", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 49, ФИО));
|
||
С.Вставить("БезналичныеПеречисления", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 50, ФИО));
|
||
С.Вставить("ВозвратВКассу", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 51, ФИО));
|
||
С.Вставить("Депонент", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 52, ФИО));
|
||
С.Вставить("ОстатокНаНачало", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 54, ФИО));
|
||
С.Вставить("ВсегоНаРуки", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 55, ФИО));
|
||
С.Вставить("ЗарплатаЗаПервуюПоловину", 0); // TODO: определить колонку
|
||
С.Вставить("ПремияАванс", 0); // TODO: определить колонку
|
||
С.Вставить("ВыплатыВМежрасчетный", 0); // TODO: определить колонку
|
||
С.Вставить("ИтогоУдержано",
|
||
С.НДФЛ + С.ПрофВзнос + С.ИсполнительныеДокументы + С.ПФСофинансирование
|
||
+ С.ПремияУдержание + С.ПособиеДо3ЛетУдержание + С.Депонент);
|
||
С.Вставить("ИтогоВыплачено",
|
||
С.Аванс + С.Касса1 + С.Касса2 + С.Касса3
|
||
+ С.БезналичныеПеречисления + С.ВозвратВКассу);
|
||
Возврат С;
|
||
КонецФункции
|
||
|
||
&НаКлиенте
|
||
Функция ПрочитатьНДФЛСоЛиста(ЛистСотрудника, ФИО, МесяцЗагрузки) Экспорт
|
||
Ч = ЗагрузкаДанныхИзExcel_ЧтениеЭксель;
|
||
СД = СтрокаМесяцаНаЛистеСотрудника(МесяцЗагрузки);
|
||
Если СД = 0 Тогда Возврат Неопределено; КонецЕсли;
|
||
Если Не ЗначениеЗаполнено(ФИО) Тогда Возврат Неопределено; КонецЕсли;
|
||
С = Новый Структура;
|
||
С.Вставить("ФИО", ФИО);
|
||
С.Вставить("МесяцРасчета", Ч.ПрочитатьЯчейкуСтрока(ЛистСотрудника, СД, 1));
|
||
С.Вставить("СуммаВаловогоДохода", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 4, ФИО));
|
||
С.Вставить("СуммаВаловогоДоходаСНачалаГода", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 6, ФИО));
|
||
С.Вставить("СкидкаДляНДФЛЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 8, ФИО));
|
||
С.Вставить("СкидкаДляНДФЛЗаГод", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 9, ФИО));
|
||
С.Вставить("СкидкаДляСВЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 10, ФИО));
|
||
С.Вставить("ВычетНаРаботникаЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 12, ФИО));
|
||
С.Вставить("ВычетНаИждивенцевЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 13, ФИО));
|
||
С.Вставить("ВсегоВычетовЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 14, ФИО));
|
||
С.Вставить("ОблагаемыйДоходЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 15, ФИО));
|
||
С.Вставить("ОблагаемыйДоходЗаГод", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 16, ФИО));
|
||
С.Вставить("НачисленныйНДФЛЗаГод", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 17, ФИО));
|
||
С.Вставить("ИтогоНДФЛЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 18, ФИО));
|
||
С.Вставить("НалоговаяБазаПоСВЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 23, ФИО));
|
||
С.Вставить("ИтогоФСС", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 37, ФИО));
|
||
Возврат С;
|
||
КонецФункции
|
||
|
||
&НаКлиенте
|
||
Функция ПрочитатьВзносыИзРасчета(ЛистРасчет, Ном, ФИО) Экспорт
|
||
Ч = ЗагрузкаДанныхИзExcel_ЧтениеЭксель;
|
||
С = Новый Структура;
|
||
С.Вставить("ФИО", ФИО);
|
||
С.Вставить("ДТ6Процент", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 58, ФИО));
|
||
С.Вставить("ДТ4Процент", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 59, ФИО));
|
||
С.Вставить("ПФСтраховая", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 60, ФИО));
|
||
С.Вставить("ФССФОМС", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 61, ФИО));
|
||
С.Вставить("НСПЗ", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 62, ФИО));
|
||
С.Вставить("Итого", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 63, ФИО));
|
||
С.Вставить("НалоговаяБазаПоСВЗаМесяц", 0);
|
||
С.Вставить("ИтогоФСС", 0);
|
||
Возврат С;
|
||
КонецФункции
|
||
|
||
&НаКлиенте
|
||
Функция ОпределитьГодЗагрузки(ЛистРасчет) Экспорт
|
||
ГодЗначение = ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ПрочитатьЯчейкуЧисло(ЛистРасчет, 3, 1, "");
|
||
Если ГодЗначение > 0 Тогда
|
||
Возврат Цел(ГодЗначение);
|
||
КонецЕсли;
|
||
ГодЗначение = ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ПрочитатьЯчейкуЧисло(ЛистРасчет, 4, 1, "");
|
||
Если ГодЗначение > 2000 Тогда
|
||
Возврат Цел(ГодЗначение);
|
||
КонецЕсли;
|
||
Возврат 0;
|
||
КонецФункции
|
||
|
||
&НаКлиенте
|
||
Функция ОпределитьОрганизацию(ЛистРасчет) Экспорт
|
||
Возврат СокрЛП(Строка(ЛистРасчет.Cells(4, 20).Value));
|
||
КонецФункции
|
||
|
||
&НаКлиенте
|
||
Функция ОпределитьСтатьюФинансирования(ЛистРасчет) Экспорт
|
||
Возврат СокрЛП(Строка(ЛистРасчет.Cells(8, 20).Value));
|
||
КонецФункции
|