Персонифицированный учет в среде 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;


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.