Персонифицированный учет в среде 1С 7.7 "Зарплата и кадры"
Анализ существующих автоматизированных информационных систем и их классификация. Разработка подсистемы персонифицированного учета предприятия. Информационное, алгоритмическое и техническое обеспечение. Программный модуль подсистемы пенсионного учета.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.10.2013 |
Размер файла | 1,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
КонецЕсли;
Если (ТЗ.ДатаПриемаД<ДатаН) тогда //и (Сред(Кадр.ПУ,1,1)="2")
ТЗ.ДатаПриема=""; ТЗ.ДатаПриемаД=Дата(0);
КонецЕсли;
ДатаУ=?(ДатаУ>ДатаК," ",ДатаУ);
ТЗ.ДатаУвольнения=ФормДата(ДатаУ);
ТЗ.ПричинаУвольнения=" ";//КодПричины;
ТЗ.ВидДоговора=КодМР;
//24----------отменяющая------------------------------------------------------------------------
ИначеЕсли (ТЗ=ТЗ2) и (П2=4) Тогда //уволенные и принятые за период , не "03"
Если КодМР="03" Тогда Возврат; КонецЕсли; //по договорам
// Если ((ДатаУ>ДатаК) или (ДатаУ<ДатаН)) и ((ДатаП>ДатаК) или (ДатаП<ДатаН)) Тогда Возврат; КонецЕсли;
Если ФлагНС=1 Тогда ТЗ.НОВАЯСТРОКА(); КонецЕсли;
ТЗ.ФПУ="ПУ-2"; ТЗ.Тип="О"; ТЗ.РегНомер=номерПФ;
ТЗ.Наименование=Кадр; ТЗ.ДВИЖ="ДВИЖ";
ТЗ.Имя=Врег(Лев(Имя,1));
ТЗ.Отчество=Врег(Лев(отчество,1));
ТЗ.фамилия=ВРЕГ(фамилия);
ТЗ.СтраховойНомер=СтраховойНомер;
ТЗ.ДатаПриема="";
ТЗ.ДатаПриемаД=Дата(0);
ДатаУ="";
ТЗ.ДатаУвольнения="";
ТЗ.ПричинаУвольнения="";
ТЗ.ВидДоговора="";
КонецЕсли;
//3***********************
ИначеЕсли (ТЗ=ТЗ3) Тогда
РазобратьИмя(Кадр.Владелец,Имя,Отчество,Фамилия);
РазобратьОстальное(Кадр.Владелец,Кадр,ДатаР,Ргород,Ррайон,Робласть,Рстрана,Пол,Бел,ДокументВид,
ДокументСерия,ДокументНомер,ДокументДатаВыдачи,ДокументЛичныйНомер,ДокументКемВыдан,
СтраховойНомер,ФамРанее,ИмяРанее,ОтчРанее,ДатРанее); // сообщить(ДатаП);
//** КодПФ=Формат(Кадр.КатегорияПФ.Получить(ДатаП).ПорядковыйНомер(),"Ч(0)2.0");
КодПФ=Формат(Кадр.КатегорияПФ.Получить(ДатаК).ПорядковыйНомер(),"Ч(0)2.0");
КодПФ=?((Строка(КодПФ)="01") и (ДатаУ<ДатаН) и (Кадр.Владелец.код<>"63024") и (Кадр.Владелец.код<>"60870"),"06",КодПФ);
//31-------назначение пенсии-----------
Если (ТЗ=ТЗ3) и (П3=1) Тогда // Если ((ДатаУ<ДатаН) или (ДатаУ>ДатаК)) или (Число(КодПричины)<>2) Тогда Возврат; КонецЕсли;
Если (КодПФ="06") тогда возврат; КонецЕсли; //(КодПФ="03") или
ДатаПенсК=ДобавитьМесяц(Кадр.Владелец.ДатаРождения,?(Пол="М",12*60-1,12*55-1));
ДатаПенсК=?(Найти(Константа.списокПенсионеров,Строка(кадр.Владелец.Код))<>0,КонМесяца(ДатаПенсК)+1,ДатаПенсК);
//*
ДатаПенсК=?((Досрочно=0),ДатапенсК,ДатаК);
Если NOT((ДатаПенсК<=ДатаК) и (ДатаПенсК>=ДатаН)) тогда возврат; КонецЕсли;
Если ПустоеЗначение(ДатаР)=1 тогда сообщить(""+Кадр.Владелец.Код+Кадр.Владелец+" ДатаРожд="+Кадр.Владелец.ДатаРождения);возврат; конецесли;
Если КодМР="03" тогда
Если НачМесяца(ТекДог.Начало)>КонМесяца(ДатаПенсК) тогда флагНС=0; возврат; конецесли;
КонецЕсли; // флагНС=?(КодМР="01",1,?(НачМесяца(ТекДог.Начало)>КонМесяца(ДатаПенсК),0,1));
Если ФлагНС=1 Тогда ТЗ.НОВАЯСТРОКА(); КонецЕсли;
ТЗ.Наименование=Кадр;
ТЗ.ФПУ="ПУ-3"; ТЗ.Тип="П"; ТЗ.РегНомер=номерПФ;
ТЗ.СтраховойНомер=СтраховойНомер;
ТЗ.Имя=Врег(Лев(Имя,1));
ТЗ.Отчество=Врег(Лев(отчество,1));
ТЗ.фамилия=ВРЕГ(фамилия);
ТЗ.КатегорияПФ=КодПФ;
ТЗ.ДоговорДок= ?(КодМР="01","",ТекДог.ТекущийДокумент());
ТЗ.Договор= ?(КодМР="01","",ТекДог.НомерДок);
//ТЗ.ДатаДоговора= ?(КодМР="01","",ФормДата(мин(текДог.ДатаДок,ТекДог.Начало)));
Если КодМР="03" тогда
НачДоговора= текДог.Начало;
Если Начмесяца(текДог.ДатаДок)<>НачМесяца(ТекДог.Начало) тогда НачДоговора= Начмесяца(текДог.ДатаДок); КонецЕсли;
КонецЕсли;
ТЗ.ДатаДоговора= ?(КодМР="01","",?(ТекДог.ДатаДок<ДатаН,ФормДата(ДатаН),ФормДата(мин(текДог.ДатаДок,НачДоговора))));
ТЗ.ДатаЗ=ФормДата(ДатаЗ);
ОпределитьПериод(ДатаН,ДатаПенсК,Кв,Г);
ТЗ.Кварталы=0;//*-2006Кв;
ТЗ.Год=Г;
//32---------исходная---------
ИначеЕсли (ТЗ=ТЗ3) и (П3=2) Тогда
Если ПустоеЗначение(Кадр.НомСтраховой)=1 тогда сообщить(""+ТТ+" нет стр№ "+":"+ДатаП+"-"+?(ДатаУ=ДатаК+1,".............. ",ДатаУ)+" "+Сотр.Код+Кадр+"-"+Лев(Сотр.Подразделение.Получить(ДатаК),3)+" л№:"+Кадр.ДокументЛичныйНомер); ТТ=ТТ+1; //Возврат ;
конецЕсли;
Если ФлагНС=1 Тогда ТЗ.НОВАЯСТРОКА(); КонецЕсли;
ТЗ.Наименование=Кадр;
ТЗ.ФПУ="ПУ-3"; ТЗ.Тип="И"; ТЗ.РегНомер=номерПФ;
ТЗ.СтраховойНомер=СтраховойНомер;
ТЗ.Имя=Врег(Лев(Имя,1));
ТЗ.Отчество=Врег(Лев(отчество,1));
ТЗ.фамилия=ВРЕГ(фамилия);
ТЗ.КатегорияПФ=КодПФ;
ТЗ.ДоговорДок= ?(КодМР="01","",ТекДог.ТекущийДокумент());
ТЗ.Договор= ?(КодМР="01","",ТекДог.НомерДок); //ТЗ.ДатаДоговора= ?(КодМР="01","",ФормДата(мин(текДог.ДатаДок,ТекДог.Начало)));
Если КодМР="03" тогда
НачДоговора= текДог.Начало;
Если Начмесяца(текДог.ДатаДок)<>НачМесяца(ТекДог.Начало) тогда НачДоговора= Начмесяца(текДог.ДатаДок); КонецЕсли;
КонецЕсли;
ТЗ.ДатаДоговора= ?(КодМР="01","",?(ТекДог.ДатаДок<ДатаН,ФормДата(ДатаН),ФормДата(мин(текДог.ДатаДок,НачДоговора))));
ТЗ.ДатаЗ=ФормДата(ДатаЗ);
ОпределитьПериод(ДатаН,ДатаК,Кв,Г);
ТЗ.Кварталы=0;//2006Кв;
ТЗ.Год=Г;
//33---------корректирующая---------
ИначеЕсли (ТЗ=ТЗ3) и (П3=3) Тогда
//Если ((ДатаУ<ДатаК) и (КодМР="01")) или ((ДатаУ<ДатаН) и (КодМР="03")) Тогда Возврат; КонецЕсли;
Если ПустоеЗначение(Кадр.НомСтраховой)=1 тогда
сообщить(""+ТТ+" нет стр№ "+":"+ДатаП+"-"+?(ДатаУ=ДатаК+1,"..............",ДатаУ)+" "+Сотр.Код+Кадр+"-"+Лев(Сотр.Подразделение.Получить(ДатаК),3)+" л№:"+Кадр.ДокументЛичныйНомер);
ТТ=ТТ+1;
конецЕсли;
Если ФлагНС=1 Тогда ТЗ.НОВАЯСТРОКА(); КонецЕсли;
ТЗ.Наименование=Кадр;
ТЗ.ФПУ="ПУ-3"; ТЗ.Тип="К"; ТЗ.РегНомер=номерПФ;
ТЗ.СтраховойНомер=СтраховойНомер;
ТЗ.Имя=Врег(Лев(Имя,1));
ТЗ.Отчество=Врег(Лев(отчество,1));
ТЗ.фамилия=ВРЕГ(фамилия);
ТЗ.КатегорияПФ=КодПФ;
ТЗ.ДоговорДок= ?(КодМР="01","",ТекДог.ТекущийДокумент());
ТЗ.Договор= ?(КодМР="01","",ТекДог.НомерДок); // ТЗ.ДатаДоговора= ?(КодМР="01","",ФормДата(мин(ДатаДог,ТекДог.Начало)));
Если КодМР="03" тогда
НачДоговора= текДог.Начало;
Если Начмесяца(текДог.ДатаДок)<>НачМесяца(ТекДог.Начало) тогда НачДоговора= Начмесяца(текДог.ДатаДок); КонецЕсли;
КонецЕсли;
ТЗ.ДатаДоговора= ?(КодМР="01","",?(ТекДог.ДатаДок<ДатаН,ФормДата(ДатаН),ФормДата(мин(текДог.ДатаДок,НачДоговора))));
ТЗ.ДатаЗ=ФормДата(ДатаЗ);
ОпределитьПериод(ДатаН,ДатаК,Кв,Г);
ТЗ.Кварталы=0;//2006Кв;
ТЗ.Год=Г;
тз.ЗаМесяцы=?(Списком=0,ОпрЗаМесяцы(),"");
//34---------отменяющая---------
ИначеЕсли (ТЗ=ТЗ3) и (П3=4) Тогда //Если ((ДатаУ<ДатаК) и (КодМР="01")) или ((ДатаУ<ДатаН) и (КодМР="03")) Тогда Возврат; КонецЕсли;
Если ПустоеЗначение(Кадр.НомСтраховой)=1 тогда
сообщить(""+ТТ+" нет стр№ "+":"+ДатаП+"-"+?(ДатаУ=ДатаК+1,"..............",ДатаУ)+" "+Сотр.Код+Кадр+"-"+Лев(Сотр.Подразделение.Получить(ДатаК),3)+" л№:"+Кадр.ДокументЛичныйНомер);
ТТ=ТТ+1;
конецЕсли;
Если ФлагНС=1 Тогда ТЗ.НОВАЯСТРОКА(); КонецЕсли;
ТЗ.Наименование=Кадр;
ТЗ.ФПУ="ПУ-3"; ТЗ.Тип="О"; ТЗ.РегНомер=номерПФ;
ТЗ.СтраховойНомер=СтраховойНомер;
ТЗ.Имя=Врег(Лев(Имя,1));
ТЗ.Отчество=Врег(Лев(отчество,1));
ТЗ.фамилия=ВРЕГ(фамилия);
ТЗ.КатегорияПФ=КодПФ;
ТЗ.ДоговорДок= ?(КодМР="01","",ТекДог.ТекущийДокумент());
ТЗ.Договор= ?(КодМР="01","",ТекДог.НомерДок); //ТЗ.ДатаДоговора= ?(КодМР="01","",ФормДата(мин(ДатаДог,ТекДог.Начало)));
Если КодМР="03" тогда
НачДоговора= текДог.Начало;
Если Начмесяца(текДог.ДатаДок)<>НачМесяца(ТекДог.Начало) тогда НачДоговора= Начмесяца(текДог.ДатаДок); КонецЕсли;
КонецЕсли;
ТЗ.ДатаДоговора= ?(КодМР="01","",?(ТекДог.ДатаДок<ДатаН,ФормДата(ДатаН),ФормДата(мин(текДог.ДатаДок,НачДоговора))));
ТЗ.ДатаЗ=ФормДата(ДатаЗ);
ОпределитьПериод(ДатаН,ДатаК,Кв,Г);
ТЗ.Кварталы=0;//2006Кв;
ТЗ.Год=Г;
Конецесли;
КонецЕсли;
Если ((ТЗ=ТЗ1) или (ТЗ=ТЗ2)) и (ТЗ.КоличествоСтрок()>0) тогда
форма.КнНомСтр.Доступность(1); форма.КнНомСтр.Видимость(1);
КонецЕсли;
КонецПроцедуры
//*******************************************
ПроцедураДатыФильтр(Сотр);//даты приема увольнения
ДатаП=Дата(0);
ДатаУ=Дата(0);
КодПричины="";
Если (Сотр.ПриказОбУвольнении.Выбран()=1) Тогда
ДатаУ=Сотр.ПриказОбУвольнении.ДатаУвольнения;
КодПричины=?(Сотр.ПриказОбУвольнении.Основание=Перечисление.ОснованияУвольнения.СоСмертью,"1",
?(Сотр.ПриказОбУвольнении.Основание=Перечисление.ОснованияУвольнения.УходНаПенсию,"2",""));
иначе ДатаУ=ДатаК+1; //будет больше конечной
КонецЕсли;
Если (Сотр.ПриказОПриеме.Выбран()=1) Тогда
Если Сотр.ПриказОПриеме.Вид()="ПриказОПриемеНаРаботу" Тогда
ДатаП=Сотр.ПриказОПриеме.ДатаПриема;
КодМР="01";
Иначе //"Договор"
Дог.ИспользоватьВладельца(Сотр);
Дог.ВыбратьЭлементы();
Пока Дог.ПолучитьЭлемент()=1 Цикл
ТекДог=Дог.ТекущийЭлемент().Документ;
КонецЦикла;
ДатаП=ТекДог.Начало;
ДатаУ=ТекДог.Окончание;
КодМР="03";
КонецЕсли;
иначе сообщить("нет документа прием на работу, взята 01.01.00 "+Сотр.Наименование+Сотр.Код); ДатаУ="01.01.2000"; Возврат;
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура ВвестиНовСтр()
Списком=0;
ОткрытьПодбор("Справочник.КадровыеДанные","ПУ",?(ТЗ.КоличествоСтрок()>0,ТЗ.Наименование,""),1);
КонецПроцедуры
//*******************************************
Процедура УдалитьСтр()
КС=ТЗ.ТекущаяСтрока();
Если ТЗ.КоличествоСтрок()>0 тогда ТЗ.УдалитьСтроку(ТЗ.ТекущаяСтрока());
Если ТЗ.КоличествоСтрок()>КС Тогда ТЗ.ТекущаяСтрока(КС);
Иначе ТЗ.ТекущаяСтрока(КС-1);
Конецесли;
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура ОпределитьКадр(Сотр,Кадр) //-определить даты приема-увольнения
ДатаП=Дата(0); КодМР="";
ДатаУ=Дата(0);
КодПричины="";
Если (Сотр.ПриказОбУвольнении.Выбран()=1) Тогда
ДатаУ=Сотр.ПриказОбУвольнении.ДатаУвольнения;
КодПричины=?(Сотр.ПриказОбУвольнении.Основание=Перечисление.ОснованияУвольнения.СоСмертью,"1",
?(Сотр.ПриказОбУвольнении.Основание=Перечисление.ОснованияУвольнения.УходНаПенсию,"2",""));
иначе ДатаУ=ДатаК+1; //будет больше конечной
КонецЕсли;
Если (Сотр.ПриказОПриеме.Выбран()=1) Тогда
Если Сотр.ПриказОПриеме.Вид()="ПриказОПриемеНаРаботу" Тогда
ДатаП=Сотр.ПриказОПриеме.ДатаПриема;
КодМР="01";
//*-пропускать пенсионеров
Если УчетПенсионеров=1 тогда ЕстьПенсионер=0;
ДокСв.ВыбратьДокументы(,ДатаК);
Пока ДокСв.ПолучитьДокумент()=1 Цикл
Если ДокСв.ПометкаУдаления()=1 тогда продолжить; конецЕсли; //:::05.2008
Если Сотр<>ДокСв.Сотрудник Тогда Продолжить; КонецЕсли;
ДокСв.ВыбратьСтроки();
Пока ДокСв.ПолучитьСтроку()=1 Цикл
Если (ДокСв.УТ=Перечисление.ОсобыеУсловияТруда.ПЕНСИЯ) тогда
Начало=ДокСв.Начало;
Окончание=ДокСв.Окончание;
Если (Окончание<ДатаН) или (Начало>ДатаК) Тогда //*- т.е пенсинер, но не в отч.году, игнорируем
Продолжить;
Иначе ЕстьПенсионер=1; сообщить("найден пенсионер "+Сотр.Код+" "+Сотр);
Прервать;
КонецЕсли;
КонецЕсли;
Конеццикла;
Конеццикла;
Если (ЕстьПенсионер=1) и (П3=2) тогда //*-заполняем исходную. С учетом пенсионеров означент, что их надо пропустить
ИначеЕсли (ЕстьПенсионер=1) и (П3=3) Тогда ЗаполнитьСтроку(Кадр.ТекущийЭлемент(),1); //*-заполняем корр. С учетом пенсионеров означент, что только их надо брать
ИначеЕсли (ЕстьПенсионер=0) и (П3=2) Тогда ЗаполнитьСтроку(Кадр.ТекущийЭлемент(),1); //*-заполняем исходную. только неренсионеры
ИначеЕсли (ЕстьПенсионер=0) и (П3=3) Тогда //*-заполняем корр. С учетом пенсионеров означент, непенсионеров не берем
КонецЕсли;
//*-пропускать пенсионеров
Иначе
ЗаполнитьСтроку(Кадр.ТекущийЭлемент(),1);
КонецЕсли;
Иначе //Вид()="Договор"
Если (УчетПенсионеров=1) и (П3=3) тогда возврат; конецесли;//*-договорники не нужны когда корр и учет
Дог.ИспользоватьВладельца(Сотр);
Дог.ВыбратьЭлементы();
МесДог=0;
Пока Дог.ПолучитьЭлемент()=1 Цикл
ТекДог=Дог.ТекущийЭлемент().Документ;
ДатаП=ТекДог.Начало;
ДатаУ=ТекДог.Окончание;
Если Начмесяца(ДатаП)<>Начмесяца(ДатаУ) тогда
// теперь дата договора определяет период
ДатаП=НачМесяца(ТекДог.ДатаДок);
ДатаУ=КонМесяца(ТекДог.ДатаДок);
Конецесли;
КодМР="03";
ФлагНС=1;
Если ((ТекДог.Окончание<=ДатаК) и (ТекДог.Окончание>=ДатаН))
или ((ТекДог.Начало>=ДатаН) и (ТекДог.Начало<=ДатаК)) тогда
Если МесДог=ДатаМесяц(ДатаУ) тогда продолжить; КонецЕсли; //былоТекДог.Окончание;
ЗаполнитьСтроку(Кадр.ТекущийЭлемент(),ФлагНС); МесДог=ДатаМесяц(ДатаУ); //ТекДог.Окончание;
КонецЕсли;
Если ФлагНС=0 тогда Прервать; КонецЕсли;
КонецЦикла;
КонецЕсли;
иначе сообщить("-"+Сотр+"нет приема на работу, взята 01.01.2000 ***"+Сотр.Наименование+Сотр.Код); ДатаУ="01.01.2000"; Возврат;
КонецЕсли;
ТЗ.ТекущаяСтрока(ТЗ.КоличествоСтрок());
КонецПроцедуры
//*******************************************
Процедура ОбработкаПодбора(КадрП)
ОпределитьКадр(КадрП.Владелец,КадрП); // сообщить(ДатаП); //
КонецПроцедуры
//*******************************************
Процедура ИсправитьСтр()
Если ТЗ.КоличествоСтрок()=0 тогда Возврат;КонецЕсли;
КЭл= ТЗ.Наименование; КС=ТЗ.ТекущаяСтрока();
ОткрытьФормуМодально(КЭл,Контекст); //ОпределитьКадр(КЭл.Владелец,КЭл);
ДатыФильтр(КЭл.Владелец); //
ЗаполнитьСтроку(КЭл,0);
ТЗ.ТекущаяСтрока(КС);
КонецПроцедуры
//***********************************************
Процедура ЗаполнитьТЗ()
Перем Запрос, ТекстЗапроса, Таб;
//---
Списком=1;
Если (тз=тз3) и (П3=1) и (ЖрнЗарплата.ТекущийПериод().Датаокончания<ДатаК) тогда
Если Вопрос("Расчет за выбранный период не завершен. Данные могут быть неполными. Продолжить?",4)=7 тогда возврат;
Конецесли;
КонецЕсли;
ТПК();
Кол03=0; ТТ=1; ВзнИт=0; ПосИт=0; ВзнИт=0;
Если (ТЗ=ТЗ3) и (П3=2) тогда //для пу-3 исходная- Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(зпр2)
|с ДатаН по ДатаК;
|Объект = ЖурналРасчетов.Зарплата.Объект;
|ВидРасч = ЖурналРасчетов.Зарплата.ВидРасч;
|ПериодР = ЖурналРасчетов.Зарплата.ПериодРегистрации;
|Результат = ЖурналРасчетов.Зарплата.Результат;
|Функция РезультатСумма = Сумма(Результат);
|Группировка Объект упорядочить по Объект.Наименование без групп;
|Условие((ВидРасч.ВходитВГруппу(ГруппаРасчетов.ОблагаетсяПФ)=1) );
|Условие(ПериодР.ДатаНачала<ДатаК);
//|Условие(объект.Категория.Получить(ДатаК).Наименование=""1Контрактники6"");
|Условие(объект.Категория.Получить(ДатаК).Наименование<>""1Контрактники6"");
|Условие (Результат<>0);
|"//}}ЗАПРОС
;
Если Подр.Выбран()=1 тогда
ТекстЗапроса=ТекстЗапроса+ "
|Условие(Подр=Запрос.объект.Подразделение.Получить(ДатаК) );" ;
иначе
ТекстЗапроса=ТекстЗапроса+ "
|Условие(""ТПК""<>Запрос.объект.Подразделение.Получить(ДатаК).Код );" ;
КонецЕсли;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда ВОЗВРАТ;КонецЕсли;
сообщить("всего начислений "+Подр+"="+Запрос.РезультатСумма);
Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("зпр2");Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
ВсегоДог=0;
Пока Запрос.Группировка(1) = 1 Цикл
Если Запрос.РезультатСумма=0 тогда продолжить; конецесли;
НомСтрах=""; ПУ=""; СтрСот="";СтрСот1=""; кодпричины=""; Сотр=Запрос.Объект;
Кадр.ИспользоватьВладельца(Запрос.Объект);
Кадр.ВыбратьЭлементы();
Если (кадр.ПолучитьЭлемент()=0) тогда
сообщить("не найдены кадровые данные:"+Запрос.Объект.Код+":"+Запрос.Объект); продолжить;
КонецЕсли;
Если (ПустоеЗначение(Кадр.НомСтраховой)=1) тогда //нет страх№ //печать //***
НомСтрах=Кадр.НомСтраховой;
ПУ=СокрЛП(Кадр.ПУ); КодК="0"+Кадр.КатегорияПФ.Получить(ДатаК).ПорядковыйНомер();
СтрСот=?(Запрос.Объект.ПриказОПриеме.Вид()="ПриказОПриемеНаРаботу",Запрос.Объект.ПриказОПриеме.ДатаПриема,Запрос.Объект.ПриказОПриеме.Начало);
СтрСот1=?(Запрос.Объект.ПриказОбувольнении.Вид()="ПриказОбУвольнении","-"+Запрос.Объект.ПриказОбУвольнении.ДатаУвольнения,"-");
КодПричины=?(Запрос.Объект.ПриказОбУвольнении.Основание=Перечисление.ОснованияУвольнения.СоСмертью,"1",
?(Запрос.Объект.ПриказОбУвольнении.Основание=Перечисление.ОснованияУвольнения.УходНаПенсию,"2",""));
Таб.ВывестиСекцию("Объект"); продолжить; //не заполнять без страх№
Иначе //продолжить; //не заполнять со страх№
//Таб.ВывестиСекцию("Объект1");
КонецЕсли; //***
ОпределитьКадр(Запрос.Объект,Кадр.ТекущийЭлемент());
КонецЦикла;
сообщить("по договорам="+ВсегоДог);
Таб.ВывестиСекцию("Итого");
Таб.Показать("зпр2 исходная", "");
//***
ИначеЕсли (ТЗ=ТЗ3) и (П3=3) тогда //для пу-3 корректирующая- Запрос
начкор=ДатаН; конКор=ДатаК; //2006
Если ВвестиПериод(НачКор,КонКор,"введите период, в котором корректировались записи")=0 тогда
возврат;
Конецесли;; //2006
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(зпр2)
|Период с НачКор по КонКор;
|Объект = ЖурналРасчетов.Зарплата.Объект;
|ВидРасч = ЖурналРасчетов.Зарплата.ВидРасч;
|ПериодР = ЖурналРасчетов.Зарплата.ПериодРегистрации;
|ПериодД = ЖурналРасчетов.Зарплата.ПериодДействия;
|Результат = ЖурналРасчетов.Зарплата.Результат;
|Функция РезультатСумма = Сумма(Результат);
|Группировка Объект упорядочить по Объект.Наименование без групп;
|Группировка ПериодД;
|Условие((ВидРасч.ВходитВГруппу(ГруппаРасчетов.ОблагаетсяПФ)=1) );
|Условие(объект.Категория.Получить(ДатаК).Наименование<>""1Контрактники"");
|Условие ((ПериодД.ДатаНачала>=ДатаН) и (ПериодД.ДатаОкончания<=ДатаК));
|Условие (Результат<>0);
|"//}}ЗАПРОС
;
Если Подр.Выбран()=1 тогда
ТекстЗапроса=ТекстЗапроса+ "
|Условие(Подр=Запрос.объект.Подразделение.Получить(ДатаК) );" ;
иначе
ТекстЗапроса=ТекстЗапроса+ "
|Условие(""ТПК""<>Запрос.объект.Подразделение.Получить(ДатаК).Код );" ;
КонецЕсли;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат;КонецЕсли;
сообщить("всего начислений "+Подр+"="+Запрос.РезультатСумма);
Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("зпр2");Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Пока Запрос.Группировка(1) = 1 Цикл
Если Запрос.РезультатСумма=0 тогда продолжить; конецесли;
НомСтрах=""; ПУ=""; СтрСот="";СтрСот1=""; кодпричины=""; Сотр=Запрос.Объект;
Кадр.ИспользоватьВладельца(Запрос.Объект);
Кадр.ВыбратьЭлементы();
Если (кадр.ПолучитьЭлемент()=0) тогда
сообщить("не найдены кадровые данные:"+Запрос.Объект.Код+":"+Запрос.Объект); продолжить;
КонецЕсли;
Если (ПустоеЗначение(Кадр.НомСтраховой)=1) тогда //нет страх№ //печать //***
НомСтрах=Кадр.НомСтраховой;
ПУ=СокрЛП(Кадр.ПУ); КодК="0"+Кадр.КатегорияПФ.Получить(ДатаК).ПорядковыйНомер();
СтрСот=?(Запрос.Объект.ПриказОПриеме.Вид()="ПриказОПриемеНаРаботу",Запрос.Объект.ПриказОПриеме.ДатаПриема,Запрос.Объект.ПриказОПриеме.Начало);
СтрСот1=?(Запрос.Объект.ПриказОбувольнении.Вид()="ПриказОбУвольнении","-"+Запрос.Объект.ПриказОбУвольнении.ДатаУвольнения,"-");
КодПричины=?(Запрос.Объект.ПриказОбУвольнении.Основание=Перечисление.ОснованияУвольнения.СоСмертью,"1",
?(Запрос.Объект.ПриказОбУвольнении.Основание=Перечисление.ОснованияУвольнения.УходНаПенсию,"2",""));
Таб.ВывестиСекцию("Объект"); продолжить; //не заполнять без страх№
Иначе //продолжить; //не заполнять со страх№
КонецЕсли; //***
ОпределитьКадр(Запрос.Объект,Кадр.ТекущийЭлемент());
ТЗ.ЗаМесяцы="!";
СтрЗаМес="";
Пока Запрос.Группировка(2) = 1 Цикл
СтрЗаМес=стрЗаМес+","+Формат(ДатаМесяц(Запрос.ПериодД.ДатаНачала),"Ч(0)2"); //сообщить(""+тз.Наименование+" "+строка(стрзаМес)+" *" +ТЗ.ЗаМесяцы);
КонецЦикла;
ТЗ.ЗаМесяцы=СтрЗаМес;
КонецЦикла;
Таб.ВывестиСекцию("Итого");
Таб.Показать("зпр2 корректирующая", "");
Иначе
Сотр.ПорядокНаименований(); //сотр.Порядоккодов();
Сотр.ВыбратьЭлементы();
Пока Сотр.ПолучитьЭлемент()=1 Цикл //только сотрудники и договорники
Если Сотр.ЭтоГруппа()=1 тогда Продолжить; КонецЕсли;
Если (Число(Сотр.Код)<=60000) и (Число(Сотр.Код)>=20000) тогда Продолжить; КонецЕсли; //это ошибка
Если (Число(Сотр.Код)>=64000) и (Число(Сотр.Код)<69000) тогда
Продолжить;
КонецЕсли; //это ученики и пенсионеры
Если (СокрЛП(Сотр.Должность.Получить(ДатаН))="Пенсионер") или
(СокрЛП(Сотр.Должность.Получить(ДатаК))="") или
(СокрЛП(Сотр.Должность.Получить(ДатаК).Код)="540") тогда //неспис состав
Продолжить;
КонецЕсли; //это пенсионеры
Если Подр.Выбран()=1 тогда
Если Подр<>Сотр.Подразделение.Получить(ДатаК) Тогда Продолжить; КонецЕсли ;
Иначе
Если Сотр.Подразделение.Получить(ДатаК).Код="ТПК" Тогда Продолжить; КонецЕсли ;
КонецЕсли;
Кадр.ИспользоватьВладельца(Сотр);
Кадр.ВыбратьЭлементы();
Если Кадр.ПолучитьЭлемент()=0 тогда
сообщить("не найдены кадровые данные:"+Сотр.Код+":"+Сотр); продолжить;
КонецЕсли;
ОпределитьКадр(Сотр.ТекущийЭлемент(),Кадр.ТекущийЭлемент());
конецЦикла;
КонецЕсли;
предупреждение("Готово",1);
сообщить("в т.ч. по дог-подр: "+Кол03);
КонецПроцедуры
//*******************************************
Процедура ЗаполнитьИзАрхива()
Если (П3=3) тогда //*-корректировка
начкор=ДатаН; конКор=ДатаК; //2006
Если ВвестиПериод(НачКор,КонКор,"введите период, в котором корректировались записи")=0 тогда
возврат;
Конецесли;; //2006
списком=1;
КонецЕсли;
Сотр=СоздатьОбъект("Справочник.Сотрудники");
ДПУ=СоздатьОбъект("Справочник.ДокументыПУ");
Текст=СоздатьОбъект("Текст"); Текст.Очистить();
ДПУ.Выбрать("Выберите файл для заполнения таблицы ","Основная");
Если ДПУ.Выбран()=0 Тогда Возврат; КонецЕсли;
Текст.Открыть(КаталогИБ()+"ДПУ_ТН\"+ДПУ.Код+".txt"); сообщить(Текст.КоличествоСтрок());
Если Текст.КоличествоСтрок()=0 тогда сообщить(""+ДПУ.Код+".txt пустой");Возврат; КонецЕсли;
Если (ДПУ.ДатаН<>ДатаН) или (ДПУ.ДатаК<>ДатаК) тогда
Если (Вопрос("Файл не соответствует выбранному периоду.
| Продолжить?",4)=7) тогда возврат; конецЕсли;
КонецЕсли;
Для Счетчик=1 по Текст.КоличествоСтрок() цикл
СтрТекста=Текст.ПолучитьСтроку(Счетчик);
Если Сотр.НайтиПоКоду(Сред(СтрТекста,1,5))=0 тогда сообщить("в файле неверный таб№ "+СтрТекста);
продолжить;
КонецЕсли;
Кадр.ИспользоватьВладельца(Сотр);
Кадр.ВыбратьЭлементы();
Если Кадр.ПолучитьЭлемент()=1 тогда
ОпределитьКадр(Сотр.ТекущийЭлемент(),Кадр.ТекущийЭлемент()); //сообщить(""+Кадр.ПУ+Сотр.Код+Сотр);
иначе сообщить("не найдены кадровые данные "+Сотр+"_"+Кадр);
КонецЕсли;
КонецЦикла; ДПУ="";
Если ((ТЗ=ТЗ1) или (ТЗ=ТЗ2)) и (ТЗ.КоличествоСтрок()>0) тогда
форма.КнНомСтр.Доступность(1); форма.КнНомСтр.Видимость(1);
КонецЕсли;
КонецПроцедуры
//***************************************************
Процедура ВыбратьТекстовый(ПУТ,КолДок,ФПУ,ТЗКС,ПУТ_ТН)
ДПУ=СоздатьОбъект("Справочник.ДокументыПУ");
НеЗаписан=0;
отв=Вопрос("Записать"+ ФПУ+" тип "+КолДок+" в новый текстовый файл?",3);
Если отв=2 Тогда возврат;
ИначеЕсли отв=6 Тогда
ДПУ.Новый();
Иначе ДПУ.Выбрать("Выберите файл для записи "+ФПУ+" тип "+КолДок,"Основная");
Если ДПУ.Выбран()=0 Тогда сообщить(ФПУ+" тип "+КолДок+ " не записана ");НеЗаписан=1;Возврат;
Иначе ДПУ.ТекущийЭлемент(); Если Лев(ДПУ.Метка,4)="сдан" тогда Предупреждение("Нельзя обновлять сданный в ФСЗН файл:"+ДПУ.Код); Возврат;КонецЕсли;
КонецЕсли;
КонецЕсли;
ДПУ.Вид=ФПУ; ДПУ.Тип=КолДок; ДПУ.ДатаЗаполнения=ДатаЗ; ДПУ.ДатаН=ДатаН; ДПУ.ДатаК=ДатаК; ДПУ.Количество=ТЗКС;
ДПУ.Выплат=0; ДПУ.Пособий=0; ДПУ.Взносов=0;
ДПУ.Записать();
ПУТ.ВставитьСтроку(1,"ЗГЛВ=1.3=");
ПУТ.ВставитьСтроку(2,"<ПАЧК="+СокрЛП(НомерНалогоплательщика)+"="+номерПФ+"="+Врег(КНО)+""+СокрЛП(Врег(Константа.НазваниеОрганизации))+"="+Число(ДПУ.Код)+"= = =1="); //1:"+СтрДлина(КолДок)+"
ПУТ.Записать(КаталогИБ()+"ДПУ\"+ДПУ.Код+".txt");
ПУТ_ТН.Записать(КаталогИБ()+"ДПУ_ТН\"+ДПУ.Код+".txt");
сообщить(ДПУ.Вид+" тип "+ДПУ.Тип+ " записана в "+КаталогИБ()+"ДПУ\"+ДПУ.Код+".txt Дата заполнения:"+ДПУ.ДатаЗаполнения );
ПУТ.Очистить(); ПУТ_ТН.Очистить();
Тпачка.НоваяСтраница();
Тпачка.ВывестиСекцию("Заг");
Тпачка.ВывестиСекцию("Секция_1");
Тпачка.ВывестиСекцию("Секция_11");
КонецПроцедуры
//*******************************************
Процедура СформироватьТекстовыйПУ1()
ПУ1Т=СоздатьОбъект("Текст"); ПУ1Т.Очистить();
ПУ1Т_ТН=СоздатьОбъект("Текст"); ПУ1Т_ТН.Очистить();
Тип1="" ; КолДок=""; ТЗ1КС=0;
ТЗ1.Сортировать(" -3, +1");
ТЗ1.ВыбратьСтроки();
Пока ТЗ1.ПолучитьСтроку()=1 Цикл
Пдр=ТЗ1.Наименование.Владелец.Подразделение.Получить(ДатаК);
Пдр="таб№"+ТЗ1.Наименование.Владелец.Код+" "+Пдр+" ";
Пдр=Пдр+?(ТЗ1.Наименование.Владелец.ПриказОПриеме.Вид()="ПриказОПриемеНаРаботу",ТЗ1.Наименование.Владелец.ПриказОПриеме.ДатаПриема,ТЗ1.Наименование.Владелец.ПриказОПриеме.Начало);
Если Тип1<>ТЗ1.Тип Тогда КолДок=КолДок+ТЗ1.Тип; Тип1=ТЗ1.Тип; КонецЕсли;
Стр="";Для КК=2 по ТЗ1.КоличествоКолонок() Цикл
СтрЗн=СокрЛП(ТЗ1.ПолучитьЗначение(ТЗ1.НомерСтроки,КК));
СтрЗН=?(СтрЗн<>"",СтрЗн," ");
Стр =Стр+СтрЗн+"="; Если (КК>4) и (КК<24) тогда Список.ПрисоединитьСекцию("Секция_1|Секция_2");КонецЕсли;
КонецЦикла;
ПУ1Т.ДобавитьСтроку("<"+Стр+">");
ПУ1Т_ТН.ДобавитьСтроку(""+ТЗ1.Наименование.Владелец.Код+ТЗ1.Наименование+" "+тз1.ФПУ+"-"+тз1.тип);
ТЗ1КС=ТЗ1КС+1; Список.ПрисоединитьСекцию("Секция_3|Секция_2"); Список.ВывестиСекцию("Секция_5");
ФПУ=Сред(ТЗ1.ФПУ,4,1)+ТЗ1.Тип;
Т1.НоваяСтраница();
Т1.ВывестиСекцию("Секция");
Если ТЗ1КС=150 тогда //*-200//*- //ТЗ2КС=0; ТЗ3КС=0;
ПУ1Т.ВставитьСтроку(1,"ТИПД=ПУ-1="+ТЗ1КС+"= = = =>");
ВыбратьТекстовый(ПУ1Т,КолДок,"ПУ-1",ТЗ1КС,ПУ1Т_ТН) ; Тпачка.ВывестиСекцию("Секция_2");
Тип1="" ; КолДок=""; ТЗ1КС=0; Тпачка.ВывестиСекцию("Секция_4");
КонецЕсли;
КонецЦикла;
ТЗ2КС=0; ТЗ3КС=0;
ПУ1Т.ВставитьСтроку(1,"ТИПД=ПУ-1="+ТЗ1КС+"= = = =>");
ВыбратьТекстовый(ПУ1Т,КолДок,"ПУ-1",ТЗ1КС,ПУ1Т_ТН) ; Тпачка.ВывестиСекцию("Секция_2");
Тпачка.ВывестиСекцию("Секция_4");
КонецПроцедуры
//*******************************************
Процедура СформироватьТекстовыйПУ2()
Перем КК,Кв,Г,Листов;
ОпределитьПериод(ДатаН,ДатаК,Кв,Г) ; СтатусСтрока(""+КВ+" "+Г);
ПУ2Т=СоздатьОбъект("Текст"); ПУ2Т.Очистить();
ПУ2Т_ТН=СоздатьОбъект("Текст"); ПУ2Т_ТН.Очистить();
Тип1=""; КолДок=""; Записей=0;
ТЗ2.Сортировать(" -3,+1,+15");
ТЗ2.ВыбратьСтроки();
Пока ТЗ2.ПолучитьСтроку()=1 Цикл
Стр="";
Для КК=5 по (ТЗ2.КоличествоКолонок()-1) Цикл
СтрЗн=СокрЛП(ТЗ2.ПолучитьЗначение(ТЗ2.НомерСтроки,КК));
СтрЗН=?(СтрЗн<>"",СтрЗн," ");
Стр =Стр+СтрЗн+"=";
КонецЦикла;
Если Тип1<> ТЗ2.Тип Тогда
Если Тип1<>"" тогда //т.е. не в начале
Т2.ВывестиСекцию("Конец");
Листов=Цел(Т2.ВысотаТаблицы()/56)+1;
ПУ2Т.ВставитьСтроку(1,"ТИПД=ПУ-2="+Листов+"= = = =>");
ПУ2Т.ВставитьСтроку(2,"<ПУ-2"+"="+Тип1+"="+номерПФ+"= = ="+Записей+"="+ТелефонКадр+"="+ФормДата(ДатаЗ)+"="+?(Тип1="Р"," ",Кв)+"="+Г+"=");
ВыбратьТекстовый(ПУ2Т,КолДок,"ПУ-2",Записей,ПУ2Т_ТН);
ТЗ1КС=0 ; ТЗ2КС=Записей; ТЗ3КС=0;
Тпачка.ВывестиСекцию("Секция_2");
Тпачка.ВывестиСекцию("Секция_4");
КолДок=""; Записей=0;
КонецЕсли;
Тип1=ТЗ2.Тип; КолДок=ТЗ2.Тип; ФПУ=Сред(ТЗ2.ФПУ,4,1)+ТЗ2.Тип;
Т2.НоваяСтраница();
Т2.ВывестиСекцию("Начало"); Листов=0;
КонецЕсли;
Записей=Записей+1;
ПУ2Т.ДобавитьСтроку(""+Стр+"");
ПУ2Т_ТН.ДобавитьСтроку(""+ТЗ2.Наименование.Владелец.Код+ТЗ2.Наименование+" "+тз2.ФПУ+"-"+тз2.тип);
Т2.ВывестиСекцию("Строка");
КонецЦикла; Т2.ВывестиСекцию("Конец");
ПУ2Т.ЗаменитьСтроку(ПУ2Т.Количествострок(),""+Стр+">");
Листов=Цел(Т2.ВысотаТаблицы()/56)+1;
ПУ2Т.ВставитьСтроку(1,"ТИПД=ПУ-2="+Листов+"= = = =>");
ПУ2Т.ВставитьСтроку(2,"<ПУ-2"+"="+Тип1+"="+номерПФ+"= = ="+Записей+"="+ТелефонКадр+"="+ФормДата(ДатаЗ)+"="+?(Тип1="Р"," ",Кв)+"="+Г+"=");
ВыбратьТекстовый(ПУ2Т,КолДок,"ПУ-2",Записей,ПУ2Т_ТН);
ТЗ1КС=0 ; ТЗ2КС=Записей; ТЗ3КС=0;
Тпачка.ВывестиСекцию("Секция_2");
Тпачка.ВывестиСекцию("Секция_4");
КолДок=""; Записей=0;
КонецПроцедуры
//*******************************************
Процедура Начисления(ТЗ)
Сот=ТЗ.Наименование.Владелец;
Взн1=0; Взн35=0; ВыпТ4=0; ПосТ4=0; ВзнТ4=0;НеОблТ4=0;
ТекГод=ДатаГод(ДатаН);
ДатаРожд=ТЗ.Наименование.Владелец.ДатаРождения;
ДатаПенс=ДобавитьМесяц(ДатаРожд,?(нрег(сокрлп(ТЗ.Наименование.Пол))="мужской",12*60,12*55));
ДатаПенс=?(Найти(Константа.списокПенсионеров,Строка(ТЗ.Наименование.Владелец.Код))<>0,КонМесяца(ДатаПенс)+1,ДатаПенс);
ДатаНач=?(Тз.Тип="П",ДатаН,НачГода(ДатаН)); //ДатаНач=НачГода(ДатаН); испр.11.2005
ДатаКон=ДатаК;
если (СокрЛП(ТЗ.Тип)="П") тогда
ДатаКон=?((Досрочно=0),ДобавитьМесяц(ДатаПенс,-1),ДатаКон);
Кадр.использоватьВладельца(ТЗ.Наименование.Владелец);
если Кадр.НайтиПоКоду(ТЗ.Наименование.Владелец.Код)=1 тогда
Кадр.СправкаВСобесПо=КонМесяца(ДатаКон); Кадр.Записать();
сообщить("заполнена дата предоставления справки с собес "+КонМесяца(Датакон)+" "+ТЗ.Наименование);
Конецесли;
конецесли;
Если Сот.ПриказОприеме.Вид()="ПриказОПриемеНаРаботу" тогда
Если ДатаГод(Сот.ПриказОприеме.ДатаПриема)=ТекГод тогда сообщить(""+сот+" прием"+Сот.ПриказОприеме.ДатаПриема);
ДатаНач= Сот.ПриказОприеме.ДатаПриема; //с месяца приема на работу начнем
Конецесли;
Конецесли;
Для Сч=ДатаМесяц(ДатаНач) по ДатаМесяц(ДатаКон) Цикл //всегда начисления с нач.года
ОчерДата=Дата(ТекГод,Сч,1);
Выплат=0;Пособий=0;Взносов=0; //за месяц
Если СокрЛП(ТЗ.Тип)="О" Тогда
Продолжить;
КонецЕсли;
Если (Дата(ТЗ.ДатаДоговора)<>Дата(0)) и (ОчерДата<>НачМесяца(Дата(ТЗ.ДатаДоговора))) тогда
Продолжить;
КонецЕсли;
ЖрнЗарплата.ВыбратьЗаписиПоОбъекту(Сот,ОчерДата,КонМесяца(ОчерДата)); //-по отчетному м-цу
Пока ЖрнЗарплата.ПолучитьЗапись()=1 Цикл
Если ((СокрЛП(ТЗ.Тип)="И")) и (ЖрнЗарплата.ПериодРегистрации.ДатаНачала>ДатаКон) Тогда ///сообщить(ЖрнЗарплата.Результат);//-*-*-*-*-*-
Продолжить;
КонецЕсли;
Если ((СокрЛП(ТЗ.Тип)="К")) и (ЖрнЗарплата.ПериодРегистрации.ДатаНачала>ДатаКон) // тогда
и (ПериодСтр(НачКор,КонКор)=ПериодСтр(ДатаНач,ДатаКон)) Тогда
сообщить("без сумм:"+ЖрнЗарплата.Результат+" "+ЖрнЗарплата.ВидРасч+" в отчетном периоде:"+ЖрнЗарплата.ПериодРегистрации+" за "+ЖрнЗарплата.ПЕриодДействия+" "+ЖрнЗарплата.Объект);//-*-*-*-*-*-
Продолжить;
КонецЕсли;
Если ЖрнЗарплата.ВидРасч=ВидРасчета.ОплатаБЛ_ТР тогда //552вид
//*-07.2007 больничный по травме облагается ПФ, не должен включаться вообще. В док-те о стаже на даты больничного СТРАХСЛУЧ
сообщить("страховой случай-больничный по травме облагается ПФ, не должен включаться вообще.Заполнить в св.о стаже СТРАХСЛУЧ. Выплат="+ ЖрнЗарплата.Результат+" "+ЖрнЗарплата.Объект);
продолжить;
Конецесли;
Если ЖрнЗарплата.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ОблагаетсяПФ)=1 Тогда //*-сообщить(ЖрнЗарплата.ВидРасч);
Выплат=Выплат+ЖрнЗарплата.Результат;
стФСЗН= ЖрнЗарплата.Объект.СтавкаФСЗН.Получить(ЖрнЗарплата.ПериодДействия.ДатаОкончания);
Если ДатаГод(ДатаН)<2009 тогда
СтФСЗН=?(СтФСЗН=6,6,35);
иначе
СтФСЗН=?(СтФСЗН=6,6,34);
КонецЕсли;
Взносов=Взносов+ окр(ЖрнЗарплата.Результат*(СтФСЗН+СтПенс)/100);
ВзнТ4=ВзнТ4+ окр(ЖрнЗарплата.Результат*(СтФСЗН+СтПенс)/100);
Взн35=Взн35+окр(ЖрнЗарплата.Результат*СтФСЗН/100)
ИначеЕсли (ЖрнЗарплата.ВидРасч.ВходитВГруппу(ГруппаРасчетов.БольничныеЛисты)=1) и
(ЖрнЗарплата.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ОблагаетсяПФ)=0) Тогда // сообщить("*00000"+ЖрнЗарплата.ВидРасч);
Пособий=Пособий+ЖрнЗарплата.Результат;
ИначеЕсли ЖрнЗарплата.ВидРасч=ВидРасчета.ПенсионныйФонд Тогда //Взносов=Взносов+ЖрнЗарплата.Результат*36; //ВзнТ4=ВзнТ4+ЖрнЗарплата.Результат;
Взн1=Взн1+ЖрнЗарплата.Результат;
КонецЕсли;
КонецЦикла;
// //*по выплате- общ.сумме за месяц //Взносов=окр(Выплат*0.35)+окр(взн1);
МесНач=Формат(Сч,"Ч(0)2");
Если ПустоеЗначение( сот.ПриказОбУвольнении.ДатаУвольнения)=0 тогда
Если КонМесяца(сот.ПриказОбУвольнении.ДатаУвольнения)<КонМесяца(ОчерДата) тогда
Если (Выплат<>0) или (Пособий<>0) или (Взносов<>0) тогда
сообщить("после ув. нач. за "+КонМесяца(ОчерДата)+" "+сот+" ув."+КонМесяца(сот.ПриказОбУвольнении.ДатаУвольнения)+" "+Формат(ДатаМесяц(сот.ПриказОбУвольнении.ДатаУвольнения),"Ч(0)2"));
Т4.ВывестиСекцию("ПослеУв");
КонецЕсли;
МесНач=Формат(ДатаМесяц(сот.ПриказОбУвольнении.ДатаУвольнения),"Ч(0)2");
КонецЕсли;
Конецесли;
если ДатаГод(ДатаН)<2009 тогда
НеОбл=0;
Иначе
//*-учет константы СреднеРеспЗаработокРАБОЧИХ 2010
НеОбл=макс(Выплат-4*Константа.СреднеРеспЗаработокРАБОЧИХ.Получить(ОчерДата),0);
КонецЕсли;
Взносов=Взносов-окр(Необл*(СтФСЗН+СтПенс)/100); //*-2010
ВзнТ4=ВзнТ4-окр(Необл*(СтФСЗН+СтПенс)/100);
Взн35=Взн35-окр(Необл*СтФСЗН/100);
тзНач.ПолучитьСтрокуПоНомеру(МесНач);
тзНач.Выплат=тзНач.Выплат+Выплат-НЕобл;//*-2010Выплат;
тзНач.Пособий=тзНач.Пособий+Пособий;
тзНач.Взносов=тзНач.Взносов+Взносов;
Если ДатаГод(ДатаН)<2009 тогда
СтФСЗН=?(пустоеЗначение(СтФСЗН)=0,СтФСЗН,35);
иначе
СтФСЗН=?(пустоеЗначение(СтФСЗН)=0,СтФСЗН,34);
КонецЕсли;
тзНач.СтавкаНалога=СтФСЗН+СтПенс;
ВыпТ4=ВыпТ4+Выплат;
ПосТ4=ПосТ4+Пособий;
НеоблТ4=НеоблТ4+Необл; //*-2010
КонецЦикла;
//тзНач.выбратьстроку();
НПоП=НпоП+1; Т4.ВывестиСекцию("Сум_строка");
ВыпИт=ВыпИт+выпТ4; ПосИт=ПосИт+ПосТ4; ВзнИт=ВзнИт+ВзнТ4; ВзнИт1=ВзнИт1+Взн1; ВзнИт35=ВзнИт35+Взн35;
НеОблит=Необлит+НеоблТ4;// сообщить(НеоблИт);
КонецПроцедуры
//*******************************************
Процедура Стаж(ТЗ)
НачалоПенсия="";
ОкончаниеПенсия="";
КоэфПенсия=1;
Если СокрЛП(ТЗ.Тип)="К" Тогда //возврат;
КонецЕсли;
Сот=ТЗ.Наименование.Владелец;
ДокСв.ВыбратьДокументы(,ДатаК);
Пока ДокСв.ПолучитьДокумент()=1 Цикл
Если Сот<>ДокСв.Сотрудник Тогда Продолжить; КонецЕсли;
Если ДокСв.ПометкаУдаления()=1 тогда продолжить; конецЕсли; //:::05.2008
ДокСв.ВыбратьСтроки();
Пока ДокСв.ПолучитьСтроку()=1 Цикл
Если (ДокСв.УТ=Перечисление.ОсобыеУсловияТруда.ПЕНСИЯ) и ((П3=4) или (П3=2)) тогда продолжить; конецесли; //????отменять как
Начало=ДокСв.Начало;
Окончание=ДокСв.Окончание; //сообщить(""+Начало+"-"+Окончание);
Если (Окончание<ДатаН) или (Начало>ДатаК) Тогда ;Продолжить; КонецЕсли;
Если ПустоеЗначение(ТЗ.ДоговорДок)=0 Тогда //сообщить("***"+ТЗ.ДоговорДок); сообщить(ДокСв.Дог);
Если (ТЗ.ДоговорДок=ДокСв.Дог) тогда //сообщить(""+Сот.Код+Сот.Наименование+" "+ДокСв.Дог);
тзСт.НоваяСтрока();
тзСт.Начало=Макс(ДатаН,Начало);
тзСт.Окончание=Мин(Окончание,ДатаК);
тзСт.Код=?(СокрЛП(ДокСв.Код)=""," ",СокрЛП(ДокСв.Код));
тзСт.УТ=ДокСв.УТ;
тзСт.Показатель=СокрЛП(Формат(ДокСв.Показатель,"Ч 04.0"));
тзСт.РабНеделя=СокрЛП(Формат(ДокСв.РабНеделя,"Ч 01.0"));
Если СокрЛП(ТЗ.Тип)="О" Тогда тзСт.Код=" "; тзСт.УТ=" "; тзСт.Показатель=" "; тзСт.РабНеделя=" ";
КонецЕсли;
возврат;
КонецЕсли;
Иначе //нет договора
Если ДокСв.Дог.Вид()="Договор" тогда Продолжить; КонецЕсли;
тзСт.НоваяСтрока();
тзСт.Начало=Макс(ДатаН,Начало);
тзСт.Окончание=Мин(Окончание,ДатаК);
тзСт.Код=?(СокрЛП(ДокСв.Код)=""," ",СокрЛП(ДокСв.Код));
тзСт.УТ=ДокСв.УТ;
тзСт.Показатель=СокрЛП(Формат(ДокСв.Показатель,"Ч 04.0"));
Если тзСт.Показатель="" тогда тзСт.Показатель="0"; конецесли;
тзСт.РабНеделя=СокрЛП(Формат(ДокСв.РабНеделя,"Ч 01.0"));
Если СокрЛП(ТЗ.Тип)="О" Тогда тзСт.Код=" "; тзСт.УТ=" "; тзСт.Показатель="0"; тзСт.РабНеделя="0";
КонецЕсли;
КонецЕсли;
Если (тзСт.УТ=Перечисление.ОсобыеУсловияТруда.ПЕНСИЯ) тогда
НачалоПенсия=ДокСв.Начало; ОкончаниеПенсия=ДокСв.Окончание;
коэфПенсия= (ДокСв.Окончание-ДокСв.Начало+1)/(КонМесяца(ДокСв.Окончание)-НачМесяца(ДокСв.Окончание)+1);
// сообщить(коэфПенсия);
Если ДокСв.окончание>ДатаК тогда
предупреждение("Дата назначения пенсии "+ДокСв.Окончание+" должна быть не больше выбранной:"+Датак);
конецесли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
//************************************************
Процедура ВставитьНачСт(ПУ3Т,место,Тип_,Строка1,Первая,ТЗ3КС,ПУ3Т_ТН,КатегорияПФ_,ДатаПриема_)
//уже готовые таблицы тзНач и тзСт заносятся в текстовый ПУ3Т.ДобавитьСтроку с
КолНач=0;
//НАЧИСЛЕНИЯ
тзНач.Сортировать("+1");
тзНач.ВыбратьСтроки(); КолСтроктзНач=0;
Пока тзНач.ПолучитьСтроку()=1 Цикл Вып_=" "; Пос_=" "; Взн_=" ";
Если (П3=1) или (П3=3) тогда
если (число(тзНач.МесНач)>Датамесяц(ОкончаниеПенсия)) и (НачалоПенсия<>"") и (П3<>3) тогда
//обнуляем все что больше даты пенсии //только если не корректиру=щая ,а назначение пенсии П3=1
тзНач.Выплат=0; тзНач.Пособий=0; тзНач.Взносов=0;
сообщить("обнуляем суммы после пенсии "+тзНач.МесНач+" пенсия от "+окончаниеПенсия);
иначеЕсли (число(тзНач.МесНач)=Датамесяц(ОкончаниеПенсия)) и (ДатаК<>КонГода(ОкончаниеПенсия)) тогда
//берем часть суммы, в случае отчета не за год! (П3=3-назн.пенсии)
тзНач.Выплат=окр(тзНач.Выплат*КоэфПенсия);
сообщить(""+НачалоПенсия+" "+КоэфПенсия);
тзНач.Пособий=окр(тзНач.Пособий*КоэфПенсия);
тзНач.Взносов=окр(тзНач.Взносов*КоэфПенсия);
Конецесли;
Конецесли;
строкаН="";
Если (КатегорияПФ_="01") и (ДатаГод(ДатаПриема_)=ДатаГод(ДатаН)) и (ДатаМесяц(ДатаПриема_)>число(тзНач.МесНач)) тогда
продолжить; //не нужны нули до даты приема
КонецЕсли;
Если ((((тзНач.Пособий<>0) или (тзНач.Взносов<>0) или (тзНач.Выплат<>0)))
или (тзСт.найтизначение(Перечисление.ОсобыеУсловияТруда.ДЕТИ,строкаН,"УТ")=1) // выводятся нулевые суммы для ДЕТИ
или ((КатегорияПФ_="01") ) ) //090208 выводятся нулевые суммы для неуволенных без сведений о стаже
Тогда //2006(СокрЛП(ТЗ.Тип)<>"К") и
Если (тзНач.Взносов<0) тогда сообщить("отрицательные взносы ="+тзНач.Взносов+" "+тз3.Наименование.наименование); КонецЕсли;
КолНач=КолНач+1;
//*-2007
Вып_="0"; Пос_="0";Взн_="0";
Если (КатегорияПФ_="03") или (КатегорияПФ_="06") тогда Пос_=" ";КонецЕсли; //*-
Если (тзНач.Выплат<>0) тогда Вып_=СокрЛП(Формат(тзНач.Выплат,"Ч015")); КонецЕсли;
Если (тзНач.Пособий<>0) тогда Пос_=СокрЛП(Формат(тзНач.Пособий,"Ч015")); КонецЕсли;
Если (тзНач.Взносов<>0) тогда Взн_=СокрЛП(Формат(тзНач.Взносов,"Ч015")); КонецЕсли;
Если тзНач.ставкаНалога=0 тогда КолНач=КолНач-1; продолжить; конецесли; //ставка не заполняется после увольнения. Нам не нужны эти строчки
ПУ3Т.ДобавитьСтроку("НЧСЛ="+Формат(тзНач.МесНач,"Ч(0)2.0")+"="+Вып_+"="+Пос_+"="+Взн_+"="+тзНач.ставкаНалога+"=");
КонецЕсли;
Т3.вывестиСекцию("Месяц");
Конеццикла;
Вып=Вып+тзНач.Итог("Выплат");Пос=Пос+тзНач.Итог("Пособий");Взн=Взн+тзНач.Итог("Взносов");
вып=окр(Вып);
Т3.вывестиСекцию("Итого");
//СТАЖ
колСт=тзСт.КоличествоСтрок(); //*-не выводить такое кол-во строк из тзСт
тзСт.ВыбратьСтроки();
Пока тзСт.ПолучитьСтроку()=1 цикл
Т3.вывестиСекцию("Строка");
Показатель=?(СокрЛП(тзСт.Показатель)="","00",сокрЛП(тзСт.Показатель));
Если тзСт.УТ<>Перечисление.ОсобыеУсловияТруда.СП2 тогда Показатель=" ";
конецесли;
Если тзСт.УТ=Перечисление.ОсобыеУсловияТруда.СП2 тогда Показатель=" ";
колСт=колСт-1; продолжить;//*-2010 СП2 не выводится в ПУ3
конецесли;
//::::://
Если (тзСт.УТ=Перечисление.ОсобыеУсловияТруда.ПЕНСИЯ) и (П3=3) тогда
Если тзНач.КоличествоСтрок()>ДатаМесяц(тзСт.Окончание) тогда
колСт=колСт-1;
продолжить;
КонецЕсли;
КонецЕсли;
ПУ3Т.ДобавитьСтроку("СТАЖ="+ФормДата(тзСт.Начало)+"="+ФормДата(тзСт.Окончание)+"="+
?(СокрЛП(тзСт.Код)=""," ",сокрЛП(тзСт.Код))+"="+тзСт.УТ+"="+Показатель+"="+?(СокрЛП(тзСт.РабНеделя)=""," ",тзСт.РабНеделя)+"=");
конеццикла;
Если тзСт.КоличествоСтрок()=0 тогда
Т3.вывестиСекцию("ПСтрока");Т3.вывестиСекцию("ПСтрока");
КонецЕсли;
КолСтрок=ПУ3Т.КоличествоСтрок();
Стр=ПУ3Т.ПолучитьСтроку(КолСтрок);
ПУ3Т.ЗаменитьСтроку(КолСтрок,?(Найти(стр,"ПУ-3=О=")=0,Стр+">",Стр)); //не ставить > в середине строки, если отменяющая
Стр=ПУ3Т.ПолучитьСтроку(Место);
//*-2007
Вып_="0"; Пос_="0";Взн_="0";
КолСт=?(КолСт=0," ",КолСт) ;
Если (КатегорияПФ_="03") или (КатегорияПФ_="06") тогда Пос_=" "; КонецЕсли; //*-
Стр="<"+Стр+?(тзНач.Итог("Выплат")<>0,окр(тзНач.Итог("Выплат")),Вып_)+"="
+?(тзНач.Итог("Пособий")<>0,тзНач.Итог("Пособий"),Пос_)+"="
+?(тзНач.Итог("Взносов")<>0,тзНач.Итог("Взносов"),Взн_)+"="
+КолНач+"="+колСт+"="+ДатаЗаполнения+"="
+?(Кварталы=0," ",Кварталы)+"="+Год+"="+ТелефонБух+"="; //2006
Стр=?(Найти(стр,"ПУ-3=О=")<>0,Стр+">",Стр); // ставить > в конце строки, если отменяющая
ПУ3Т.ЗаменитьСтроку(Место,Стр);
Если (КатегорияПФ_<>"01") и
((Найти(стр,"ПУ-3=И=")<>0) и (тзНач.Итог("Выплат")=0) и (тзНач.Итог("Пособий")=0) и (тзНач.Итог("Взносов")=0)) тогда
сообщить("000000000000000000нулевые суммы-удаляются "+стр);
ПУ3Т.УдалитьСтроку(Место); //не выводить сведения без сумм (нулевые значения) ; нули выводить неуволенным: КатегорияПФ_="01"
ТЗ3КС=ТЗ3КС-1;
Конецесли;
Т3.ВывестиСекцию("Конец");
Если (Строка1=1) Тогда
Первая=1;
Строка1=0; ТЗ1КС=0; ТЗ2КС=0;
ПУ3Т.ВставитьСтроку(1,"ТИПД=ПУ-3="+ТЗ3КС+"="+?(Вып<>0,Вып," ")+"="+?(Пос<>0,Пос," ")+"="+?(Взн<>0,Взн," ")+"=>");
ВыбратьТекстовый(ПУ3Т,Тип_,"ПУ-3",ТЗ3КС,ПУ3Т_ТН) ;
Если ДПУ.Выбран()=1 тогда ДПУ.Выплат=Вып; ДПУ.Пособий=Пос; ДПУ.Взносов=Взн;
ДПУ.Записать();
КонецЕсли;
Тпачка.ВывестиСекцию("Секция_2");
ВыпИ=?(СокрЛП(Тип_)="И",Вып,0); ПосИ=?(СокрЛП(Тип_)="И",Пос,0); ВзнИ=?(СокрЛП(Тип_)="И",Взн,0);
ВыпК=?(СокрЛП(Тип_)="К",Вып,0); ПосК=?(СокрЛП(Тип_)="К",Пос,0); ВзнК=?(СокрЛП(Тип_)="К",Взн,0);
ВыпП=?(СокрЛП(Тип_)="П",Вып,0); ПосП=?(СокрЛП(Тип_)="П",Пос,0); ВзнП=?(СокрЛП(Тип_)="П",Взн,0);
Тпачка.ВывестиСекцию("Секция_3");
Тпачка.ВывестиСекцию("Секция_4");
ТЗ3КС=0; Вып=0; Пос=0; Взн=0;;
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура СформироватьТекстовыйПУ3()
Перем КК,Кв,Г,Листов;
ВыпИт=0; ПосИт=0; ВзнИт=0; ВзнИт1=0; ВзнИт35=0; НпоП=0; Ни=0;
НеоблИт=0;
ОпределитьПериод(ДатаН,ДатаК,Кв,Г) ;
Т4.ВывестиСекцию("Сум_заг");
ПУ3Т=СоздатьОбъект("Текст"); ПУ3Т.Очистить();
ПУ3Т_ТН=СоздатьОбъект("Текст"); ПУ3Т_ТН.Очистить();
Первая=1; Строка1=0;
Тип1=""; КолДок=""; Записей=0; Место=0;
ТЗ1КС=0; ТЗ2КС=0; ТЗ3КС=0;
Вып=0; Пос=0; Взн=0; //для первой строки
НаимВлК="";
Тип_=""; Наименование_=""; СтраховойНомер_=""; КатегорияПФ_=""; ДатаПриема_=Дата(0);
//***
ТЗ3.Сортировать(" +3, +1, +5, +9"); //Тип,наименование,страховойНомер,КатегорияПФ
ТЗ3.ВыбратьСтроки();
Пока ТЗ3.ПолучитьСтроку()=1 Цикл //сообщить("-"+Тип_+" "+ тз3.Наименование_+" "+СтраховойНомер_+" "+КатегорияПФ_);
Если (ТЗ3.Тип=тип_) и (ТЗ3.СтраховойНомер=СтраховойНомер_) и (ТЗ3.КатегорияПФ=КатегорияПФ_) и (ТЗ3.КатегорияПФ="01") тогда
сообщить("уволен и принят-"+Тип_+" "+ тз3.Наименование+" "+СтраховойНомер_+" "+КатегорияПФ_);
Если ТЗ3.Наименование.Владелец.Код<>НаимВлК тогда
ПУ3Т_ТН.ДобавитьСтроку(""+ТЗ3.Наименование.Владелец.Код+ТЗ3.Наименование+" "+тз3.ФПУ+"-"+тз3.тип);
НаимВлК=ТЗ3.Наименование.Владелец.Код;
КонецЕсли;
Начисления(ТЗ3);
Стаж(ТЗ3);
продолжить;
Иначе
Если первая=0 тогда
ВставитьНачСт(ПУ3Т,место,Тип_,Строка1,Первая,ТЗ3КС,ПУ3Т_ТН,КатегорияПФ_,ДатаПриема_) ;
КонецЕсли;
Тип_=ТЗ3.Тип; СтраховойНомер_=ТЗ3.СтраховойНомер; КатегорияПФ_=ТЗ3.КатегорияПФ; //сообщить("-"+Тип_+" "+ тз3.Наименование+" "+СтраховойНомер_+" "+КатегорияПФ_);
Если ТЗ3.Наименование.Владелец.ПриказОприеме.Вид()="ПриказОприемеНаРаботу" тогда
ДатаПриема_=ТЗ3.Наименование.Владелец.ПриказОприеме.ДатаПриема;
КонецЕсли;
КонецЕсли;
Т3.НоваяСтраница();
первая=0;
ТЗ3КС=ТЗ3КС+1; //*-200//*- Если (ТЗ3КС=200) или ((Тип_<>ТЗ.Тип) и (Тип_<>"")) тогда Строка1=1; КонецЕсли;
Если (ТЗ3КС=150) или ((Тип_<>ТЗ.Тип) и (Тип_<>"")) тогда Строка1=1; КонецЕсли;
тзНач.УдалитьСтроки();
для сч=1 по 12 цикл
тзНач.новаяСтрока(); тзНач.МесНач=Формат(Сч,"Ч(0)2");
Конеццикла;
тзСт.УдалитьСтроки();
ФПУ=Сред(ТЗ3.ФПУ,4,1)+ТЗ3.Тип;
ДатаЗаполнения=ТЗ3.ДатаЗ; Кварталы=ТЗ3.Кварталы; Год=ТЗ3.Год;
РазобратьИмя(ТЗ3.Наименование.Владелец,Имя,Отчество,Фамилия); Т3.вывестиСекцию("Начало");
Стр="";
Для КК=2 по 13 Цикл
СтрЗн=СокрЛП(ТЗ3.ПолучитьЗначение(ТЗ3.НомерСтроки,КК));
СтрЗН=?(СтрЗн<>"",СтрЗн," ");
Стр =Стр+СтрЗн+"=";
КонецЦикла; //колонки
ПУ3Т.ДобавитьСтроку(Стр); Место=ПУ3Т.КоличествоСтрок();
Если ТЗ3.Наименование.Владелец.Код<>НаимВлК тогда
ПУ3Т_ТН.ДобавитьСтроку(""+ТЗ3.Наименование.Владелец.Код+ТЗ3.Наименование);
НаимВлК=ТЗ3.Наименование.Владелец.Код;
КонецЕсли;
Начисления(ТЗ3);
Стаж(ТЗ3);
состояние(""+тз.НомерСтроки+" "+тз3.Наименование.наименование);
КонецЦикла; //***по строкам тз ***
ВставитьНачСт(ПУ3Т,место,Тип_,1,Первая,ТЗ3КС,ПУ3Т_ТН,КатегорияПФ_,ДатаПриема_) ;
Т4.ВывестиСекцию("Сум_Ит");
Т4.Показать();
КонецПроцедуры
//*******************************************
Процедура Сформировать()
ОчиститьОкноСообщений();
Если ТЗ1.КоличествоСтрок()>0 Тогда СформироватьТекстовыйПУ1(); Список.Показать("список "+Подр);
Если НеЗаписан=0 Тогда Если Печфор=1 тогда
Т1.Показать("ПУ-1"); КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ТЗ2.КоличествоСтрок()>0 Тогда СформироватьТекстовыйПУ2();
Если НеЗаписан=0 Тогда
Если Печфор=1 тогда Т2.Показать("ПУ-2"); КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ТЗ3.КоличествоСтрок()>0 Тогда СформироватьТекстовыйПУ3();//****
Если НеЗаписан=0 Тогда
Если Печфор=1 тогда Т3.Показать("ПУ-3");КонецЕсли;
КонецЕсли;//Т3.Показать("ПУ-3");
КонецЕсли;
Тпачка.Показать("описание пачки ДПУ");
КонецПроцедуры
//*******************************************
Процедура ТаблицуСформировать(ТЗн,К);
Если (ТЗн=ТЗ1) Тогда
ТЗн.НоваяКолонка("Наименование","Справочник.КадровыеДанные",40,,"Сотрудник") ; ТЗн.ВидимостьКолонки("Наименование",0);
ТЗн.НоваяКолонка("ФПУ","Строка",4,,"ФормаПУ",6); //ТЗн.ВидимостьКолонки("ФПУ",0);
ТЗн.НоваяКолонка("Тип","Строка",1,,"Тип",3); //ТЗн.ВидимостьКолонки("Тип",0);
ТЗн.НоваяКолонка("РегНомер","Строка",9,,""); ТЗн.ВидимостьКолонки("РегНомер",0);
ТЗн.НоваяКолонка("Фамилия","Строка",28,,"Фамилия",14);
ТЗн.НоваяКолонка("Имя","Строка",28,,"Имя",14);
ТЗн.НоваяКолонка("Отчество","Строка",20,,"Отчество",14);
ТЗн.НоваяКолонка("Пол","Строка",1,,"Пол",3);
ТЗн.НоваяКолонка("Бел","Строка",1,,"Бел",3);
ТЗн.НоваяКолонка("ДатаР","Строка",10,,"дата рожд",12);
ТЗн.НоваяКолонка("Ргород","Строка",28,,"город рожд",20);
ТЗн.НоваяКолонка("Ррайон","Строка",28,,"район рожд",20);
ТЗн.НоваяКолонка("Робласть","Строка",28,,"область рожд",20);
ТЗн.НоваяКолонка("Рстрана","Строка",28,,"страна рожд",20);
ТЗн.НоваяКолонка("ДокументСерия","Строка",10,,"Серия");
ТЗн.НоваяКолонка("ДокументНомер","Строка",20,,"НомерДокумента",10);
ТЗн.НоваяКолонка("ДокументДатаВыдачи","Строка",10,,"ДатаВыдачи",14);
ТЗн.НоваяКолонка("ДокументКемВыдан","Строка",56,,"КемВыдан",20);
ТЗн.НоваяКолонка("ДокументЛичныйНомер","Строка",14,,"ЛичныйНомер",20);
ТЗн.НоваяКолонка("Индекс","Строка",6,,"Индекс",7);
ТЗн.НоваяКолонка("Адрес","Строка",84,,"Адрес",30);
ТЗн.НоваяКолонка("ТелефонС","Строка",11,,"Телефон сл");
ТЗн.НоваяКолонка("ТелефонД","Строка",11,,"Телефон дом");
ТЗн.НоваяКолонка("ДатаЗ","Строка",10,,"Дата заполн",14);
ТЗн.НоваяКолонка("СтраховойНомер","Строка",14,,"СтраховойНомер",16);
ТЗн.НоваяКолонка("ФамРанее","Строка",28,,"ФамРанее");
ТЗн.НоваяКолонка("ИмяРанее","Строка",28,,"ИмяРанее");
ТЗн.НоваяКолонка("ОтчРанее","Строка",28,,"ОтчРанее");
ТЗн.НоваяКолонка("ДатРанее","Строка",10,,"ДатРанее",14);
ИначеЕсли (ТЗн=ТЗ2) Тогда
ТЗн.НоваяКолонка("Наименование","Справочник.КадровыеДанные",40,,"Сотрудник") ; ТЗн.ВидимостьКолонки("Наименование",0);
ТЗн.НоваяКолонка("ФПУ","Строка",4,,"ФормаПУ",6); //ТЗн.ВидимостьКолонки("ФПУ",0);
ТЗн.НоваяКолонка("Тип","Строка",1,,"Тип",3); //3 //ТЗн.ВидимостьКолонки("Тип",0);
ТЗн.НоваяКолонка("РегНомер","Строка",9,,""); ТЗн.ВидимостьКолонки("РегНомер",0);
ТЗн.НоваяКолонка("ДВИЖ","Строка",4,,"ДВИЖ",8);
ТЗн.НоваяКолонка("Фамилия","Строка",28,,"Фамилия",14);
ТЗн.НоваяКолонка("Имя","Строка",1,,"Имя",3);
ТЗн.НоваяКолонка("Отчество","Строка",1,,"Отчество",3);
ТЗн.НоваяКолонка("СтраховойНомер","Строка",14,,"СтраховойНомер",16);
ТЗн.НоваяКолонка("ДатаПриема","Строка",10,,"ДатаПриема",11); //10
ТЗн.НоваяКолонка("ВидДоговора","Строка",2,,"ВидДоговора (01,03)",4);
ТЗн.НоваяКолонка("ДатаУвольнения","Строка",10,,"ДатаУвольнения",11);
ТЗн.НоваяКолонка("Пусто1","Строка",1,,"",1); ТЗн.ВидимостьКолонки("Пусто1",0);
ТЗн.НоваяКолонка("ПричинаУвольнения","Строка",1,,"ПричинаУвольнения (1,2)",3);
ТЗн.НоваяКолонка("ДатаПриемаД","Дата",,,"ДатаПриемаД",11); ТЗн.ВидимостьКолонки("ДатаПриемаД",0);
ИначеЕсли (ТЗн=ТЗ3) Тогда
ТЗн.НоваяКолонка("Наименование","Справочник.КадровыеДанные",40,,"Сотрудник") ; ТЗн.ВидимостьКолонки("Наименование",0);
ТЗн.НоваяКолонка("ФПУ","Строка",4,,"ФормаПУ",6);
ТЗн.НоваяКолонка("Тип","Строка",1,,"Тип",3);
ТЗн.НоваяКолонка("РегНомер","Строка",9,,""); ТЗн.ВидимостьКолонки("РегНомер",0);
ТЗн.НоваяКолонка("СтраховойНомер","Строка",14,,"СтраховойНомер",16);
ТЗн.НоваяКолонка("Фамилия","Строка",28,,"Фамилия",14);
ТЗн.НоваяКолонка("Имя","Строка",28,,"Имя",3);
ТЗн.НоваяКолонка("Отчество","Строка",20,,"Отчество",3);
ТЗн.НоваяКолонка("КатегорияПФ","Строка",2,,"Категория (01,03)",4);
ТЗн.НоваяКолонка("Договор","Строка",8,,"Договор",12);
ТЗн.НоваяКолонка("ДатаДоговора","Строка",10,,"ДатаДоговора",10);
ТЗн.НоваяКолонка("Пусто1","Строка",1,,""); ТЗн.ВидимостьКолонки("Пусто1",0);
ТЗн.НоваяКолонка("Пусто2","Строка",1,,""); ТЗн.ВидимостьКолонки("Пусто2",0);
ТЗн.НоваяКолонка("ВыплатВсего","Число",10,,"Выплат всего",12); ТЗн.ВидимостьКолонки("ВыплатВсего",0);
ТЗн.НоваяКолонка("ПособийВсего","Число",10,,"Пособий всего",12); ТЗн.ВидимостьКолонки("ПособийВсего",0);
ТЗн.НоваяКолонка("ВзносовВсего","Число",10,,"Взносов всего",12); ТЗн.ВидимостьКолонки("ВзносовВсего",0);
ТЗн.НоваяКолонка("КолОНач","Число",2,,"КолОНач",3); ТЗн.ВидимостьКолонки("КолОНач",0);
ТЗн.НоваяКолонка("КолОСтаж","Число",2,,"КолОстаж",3); ТЗн.ВидимостьКолонки("КолОСтаж",0);
ТЗн.НоваяКолонка("ДатаЗ","Строка",10,,"Дата заполн",10);
ТЗн.НоваяКолонка("Кварталы","Число",4,,"Кварталы(1234)",6);
ТЗн.НоваяКолонка("Год","Число",4,,"Год",6);
ТЗн.НоваяКолонка("ДоговорДок","Документ",,,"Договор",12); ТЗн.ВидимостьКолонки("ДоговорДок",0);
ТЗн.НоваяКолонка("ЗаМесяцы","Строка",40,,"ЗаМесяцы",12); // ТЗн.ВидимостьКолонки("ЗаМесяцы",0);
//-
тзНач=СоздатьОбъект("ТаблицаЗначений");
тзНач.Новаяколонка("МесНач","число",2);
тзНач.Новаяколонка("Выплат","Число",17,2);
тзНач.Новаяколонка("Пособий","Число",17,2);
тзНач.Новаяколонка("Взносов","Число",17,2);
ТЗнач.НоваяКолонка("СтавкаНалога","Число",2,,"Ставка",2);
тзСт=СоздатьОбъект("ТаблицаЗначений");
тзСт.Новаяколонка("Начало","Дата");
тзСт.Новаяколонка("Окончание","Дата",17,2);
тзСт.Новаяколонка("Код","Строка",10);
тзСт.Новаяколонка("УТ","Перечисление.ОсобыеУсловияТруда",10);
тзСт.Новаяколонка("Показатель","строка",4);
тзСт.Новаяколонка("РабНеделя","строка",1);
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура ПриСменеПериода()
Если ((ТЗ2.КоличествоСтрок()=0) и (ТЗ1.КоличествоСтрок()=0)) тогда
ВвестиПериод(ДатаН,ДатаК);
Иначе Предупреждение("Необходимо сначала сформировать отчеты или очистить таблицы");
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура ПриСменеП1()
Если П1=1 Тогда Форма.зап.Доступность(1);
ИначеЕсли П1=2 Тогда Форма.зап.Доступность(1);
ИначеЕсли П1=3 Тогда Форма.зап.Доступность(0);
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура ПриСменеП2() //Предупреждение("проверьте период!");
Если П2=1 Тогда Форма.зап.Доступность(1);
ИначеЕсли П2=2 Тогда Форма.зап.Доступность(1);
ИначеЕсли П2=3 Тогда Форма.зап.Доступность(1);
ИначеЕсли П2=4 Тогда Форма.зап.Доступность(1);
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура ПриСменеП3()
Если П3=1 Тогда Форма.ТЗ21.Видимость(0); Форма.ТЗ31.Видимость(0);Форма.зап.Доступность(1);
Форма.ЗапИзАрх.Доступность(1); ТЗ3.ВидимостьКолонки("ЗаМесяцы",0);
ИначеЕсли П3=2 Тогда Форма.ТЗ21.Видимость(0); Форма.ТЗ31.Видимость(0);Форма.зап.Доступность(1);
Форма.ЗапИзАрх.Доступность(1); ТЗ3.ВидимостьКолонки("ЗаМесяцы",0);
ИначеЕсли П3=3 Тогда Форма.ТЗ21.Видимость(0); Форма.ТЗ31.Видимость(0);Форма.зап.Доступность(1);
Форма.ЗапИзАрх.Доступность(1); ТЗ3.ВидимостьКолонки("ЗаМесяцы",1);
ИначеЕсли П3=4 Тогда Форма.ТЗ21.Видимость(0); Форма.ТЗ31.Видимость(0);Форма.зап.Доступность(1);
Форма.ЗапИзАрх.Доступность(1); ТЗ3.ВидимостьКолонки("ЗаМесяцы",0);
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура ПриОткрытии()
Руководитель="Малинка В.И." ; НомерПФ=Константа.НомерДляПФ; КНО="";
НомерНалогоплательщика=Константа.НомерНалогоплательщика;
ГлБух="Городова Ж.А.";
СтавкаНалога=36;
ТелефонБух="237-00-29"; ТелефонКадр="264-63-51";
ОчиститьОкноСообщений();
П1=1; П2=1; П3=1; ПриСменеП1();
форма.КнНомСтр.Видимость(0);
форма.КнНомСтр.Доступность(0);
слои[1]="ПУ1"; Назв[1]="ПУ-1";
слои[2]="ПУ2"; Назв[2]="ПУ-2";
слои[3]="Пу3"; Назв[3]="ПУ-3";
ПечФор=0;
Форма.ИспользоватьЗакладки(1);
Для i = 1 По 3 Цикл
Форма.Закладки.ДобавитьЗначение(i,Назв[i]);
КонецЦикла;
Форма.ИспользоватьСлой("Кнопки",2);
Форма.ИспользоватьСлой(слои[1],1);
СтНомер=1; ТЗ=ТЗ1;
Подобные документы
Варианты использования информационной подсистемы "InventoryManagement". Основные проблемные ситуации, возникающие при функционировании, методы и средства для их решения. Информационное и программное обеспечение подсистемы. Разработка базы данных.
дипломная работа [6,7 M], добавлен 29.06.2011Назначение и логическая структура системы документооборота ИП Быкова Л.Ф. Техническое задание и программное обеспечение информационной подсистемы учета закупок и реализации продовольственной продукции; создание базы данных и клиентского приложения.
дипломная работа [5,7 M], добавлен 11.06.2014Анализ технических средств, разработка структуры подсистемы. Создание программного приложения в среде InduSoft Web Studio. Информационный расчет аналогового ввода сигналов. Адресация каналов модулей. Экспериментальная проверка подсистемы в составе стенда.
дипломная работа [1,7 M], добавлен 16.05.2017Разработка автоматизированной информационной подсистемы учета свидетельств обязательного пенсионного страхования для Управления Пенсионного фонда России. Атрибуты сущностей базы данных, создание интерфейса формы и описание логической структуры программы.
дипломная работа [7,5 M], добавлен 24.06.2011Эволюция технического обеспечения. Основные требования, применение и характеристики современных технических средств автоматизированных информационных систем. Комплексные технологии обработки и хранения информации. Создание базы данных учета и продажи.
курсовая работа [127,1 K], добавлен 01.12.2010Анализ современного состояния проблемы по учету движения кадров на предприятии. Изучение мирового рынка информационных систем учета и контроля персонала. Разработка программного продукта для конкретного предприятия. Охрана труда при работе с компьютером.
дипломная работа [3,4 M], добавлен 23.04.2015Характеристика информационных систем учета медицинских услуг, представленных на современном рынке. Разработка приложения "Учет услуг в спортивном клубе "Т-Фитнес": средства управления графического интерфейса пользователя, создание меню и основные формы.
дипломная работа [1,8 M], добавлен 14.10.2010Разработка подсистемы учета перечней льготных должностей в Отделении Пенсионного фонда Российской Федерации по Краснодарскому краю. Организация трудовых моментов. Функциональная структура подсистемы. Характеристика задач, логическое проектирование.
реферат [414,5 K], добавлен 15.06.2012Диагностический анализ системы управления ООО "Система". Оценка функциональной структуры функционирующей АСУ, ее плюсы и минусы. Проектирование подсистемы "Учет разрабатываемых программных продуктов". Расчет затрат на разработку программного продукта.
дипломная работа [5,7 M], добавлен 29.06.2011Анализ функциональной структуры автоматизированной системы управления. Обоснование необходимости создания подсистемы учета материальных средств, проектирование информационной базы данных. Расчет себестоимости разработки внедряемого программного продукта.
дипломная работа [5,4 M], добавлен 26.06.2011