// Маппинг данных // Парсинг 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)); КонецФункции