Имя: Пароль:
1C
1C 7.7
v7: ЗиК обрабока.ЗаполнитьСписокСотрудников
0 ded20ded
 
22.04.13
15:45
ЗиК обрабока.ЗаполнитьСписокСотрудников, она увы заполняет на дату, и если сделать отчет свод за период например квартал, то в отчет попадают значения только текущего месяца, как получить чтобы в отчет попали все уволенные на выбранный период например квартал
1 ded20ded
 
22.04.13
15:48
Процедура ПриОткрытии()

   СписокПараметров = Форма.Параметр;
   Если ТипЗначенияСтр(СписокПараметров)="СписокЗначений" Тогда
       ДатаАктуальности = СписокПараметров.Получить("ДатаАктуальности");
       НачалоПериода     = СписокПараметров.Получить("НачалоПериода");
       ОкончаниеПериода = СписокПараметров.Получить("ОкончаниеПериода");
       ДатаАктуальности = ?(ПустоеЗначение(ДатаАктуальности)=1,РабочаяДата(),ДатаАктуальности);
       Идентификатор = СписокПараметров.Получить("Идентификатор");
       ИдентификаторДаты1 = СписокПараметров.Получить("Дата1");
       ИдентификаторДаты2 = СписокПараметров.Получить("Дата2");
       ПараметрыЗначения = СписокПараметров.Получить("Значение");
       
       // видимость значения
       Если ТипЗначения(ПараметрыЗначения)=2 Тогда
           СписокПараметровЗначения = глРазложить(ПараметрыЗначения);
           Если СписокПараметровЗначения.РазмерСписка()>1 Тогда
               ИдентификаторЗначения = СписокПараметровЗначения.ПолучитьЗначение(1);
               Заголовок = Сокрп(СписокПараметровЗначения.ПолучитьЗначение(2));
               Форма.ПодпЗначение.Заголовок(?(Прав(Заголовок,1)=":",Заголовок,Заголовок+":"));
               ТипВидЗначения    = СписокПараметровЗначения.ПолучитьЗначение(3);
               ДлинаЗначения    = ?(СписокПараметровЗначения.РазмерСписка()>3,СписокПараметровЗначения.ПолучитьЗначение(4),0);
               ТочностьЗначения= ?(СписокПараметровЗначения.РазмерСписка()>4,СписокПараметровЗначения.ПолучитьЗначение(5),0);
               Форма.Значение.НазначитьТип(ТипВидЗначения,ДлинаЗначения,ТочностьЗначения);
           КонецЕсли;
       КонецЕсли;
       
       // заполнение списка групп
       СписокГрупп.ДобавитьЗначение(0,"<<Все группы сотрудников>>");
       СписокГрупп.ДобавитьЗначение(ПолучитьПустоеЗначение("Справочник.Сотрудники"),"<<Вне групп>>");
       СпрСотрудники1 = СоздатьОбъект("Справочник.Сотрудники");
       СпрСотрудники2 = СоздатьОбъект("Справочник.Сотрудники");
       СпрСотрудники3 = СоздатьОбъект("Справочник.Сотрудники");
       СпрСотрудники1.ВключатьПодчиненные(0);
       СпрСотрудники2.ВключатьПодчиненные(0);
       СпрСотрудники3.ВключатьПодчиненные(0);
       СпрСотрудники1.ВыбратьЭлементы();
       Пока (СпрСотрудники1.ПолучитьЭлемент()=1) И (СпрСотрудники1.ЭтоГруппа()=1) Цикл
           СписокГрупп.ДобавитьЗначение(СпрСотрудники1.ТекущийЭлемент(),СпрСотрудники1.ПолноеНаименование());
           СпрСотрудники2.ИспользоватьРодителя(СпрСотрудники1.ТекущийЭлемент());
           СпрСотрудники2.ВыбратьЭлементы();
           Пока (СпрСотрудники2.ПолучитьЭлемент()=1) И (СпрСотрудники2.ЭтоГруппа()=1) Цикл
               СписокГрупп.ДобавитьЗначение(СпрСотрудники2.ТекущийЭлемент(),СпрСотрудники2.ПолноеНаименование());
               СпрСотрудники3.ИспользоватьРодителя(СпрСотрудники2.ТекущийЭлемент());
               СпрСотрудники3.ВыбратьЭлементы();
               Пока (СпрСотрудники3.ПолучитьЭлемент()=1) И (СпрСотрудники3.ЭтоГруппа()=1) Цикл
                   СписокГрупп.ДобавитьЗначение(СпрСотрудники3.ТекущийЭлемент(),СпрСотрудники3.ПолноеНаименование());
               КонецЦикла;
           КонецЦикла;
       КонецЦикла;
       
       // заполнение списка типов сотрудников
       ТипыСотрудников.ДобавитьЗначение(1,"Штатные сотрудники");
       ТипыСотрудников.ДобавитьЗначение(2,"Внутренние совместители");
       ТипыСотрудников.ДобавитьЗначение(3,"Внешние совместители");
       Если Константа.ЕстьВоенные=1 Тогда
           ТипыСотрудников.ДобавитьЗначение(4,"Военнослужащие по контракту");
           ТипыСотрудников.ДобавитьЗначение(5,"Военнослужащие по призыву");            
       КонецЕсли;
       Если Константа.ЕстьГосслужащие=1 Тогда
           ТипыСотрудников.ДобавитьЗначение(6,"Госслужащие");
       КонецЕсли;
       ТипыСотрудников.ДобавитьЗначение(10,"В том числе уволенные");        
       ТипыСотрудников.ДобавитьЗначение(9,"Временно не работают");
       Если Константа.ЕстьВоенные=1 Тогда
           ТипыСотрудников.ДобавитьЗначение(11,"Временно не работают (военнослужащие)");            
       КонецЕсли;        
       ТипыСотрудников.ДобавитьЗначение(7,"Прочие, получающие доход (Договорники)");
       ТипыСотрудников.ДобавитьЗначение(8,"Прочие физлица");
       
       // заполнение ревизитов формы, согласно настроеек, введенных ранее
       СписокНастроек = ВосстановитьЗначение(Идентификатор);
       Если ТипЗначенияСтр(СписокНастроек)="СписокЗначений" Тогда
           Подразделение = СписокНастроек.Получить("Подразделение");
           //изменено________________________________________
           КатегорияПерсонала = СписокНастроек.Получить("КатегорияПерсонала");
           //конец_изм_______________________________________
           СписокГрупп.ТекущаяСтрока(Макс(1,СписокГрупп.НайтиЗначение(СписокНастроек.Получить("Группа"))));
           Список = СписокНастроек.Получить("ТипыСотрудников");
           Дата1 = СписокНастроек.Получить("Дата1");
           Дата2 = СписокНастроек.Получить("Дата2");
           Значение = СписокНастроек.Получить("Значение");
       КонецЕсли;
       Если ПустоеЗначение(Дата1)=1 Тогда
           Дата1 = ЖЗ.НачалоТекущегоПериода();
           Дата2 = ЖЗ.КонецТекущегоПериода();
       КонецЕсли;
       Если ТипЗначенияСтр(Список)="СписокЗначений" Тогда
           Для Номер = 1 по Список.РазмерСписка() Цикл
               Позиция = ТипыСотрудников.НайтиЗначение(Список.ПолучитьЗначение(Номер));
               Если Позиция>0 Тогда
                   ТипыСотрудников.Пометка(Позиция,Список.Пометка(Номер));
               КонецЕсли;
           КонецЦикла;
       КонецЕсли;
       
       // установка закладок
       Если (ПустоеЗначение(ИдентификаторДаты1)=0)
        или (ПустоеЗначение(ИдентификаторДаты2)=0)
        или (ПустоеЗначение(ТипВидЗначения)=0) Тогда
           Форма.ИспользоватьЗакладки(1);
           Форма.Закладки.ДобавитьЗначение("Постоянный,Сотрудники","Сотрудники");
           Форма.Закладки.ДобавитьЗначение("Постоянный,Значения","Значения");
       КонецЕсли;
       Форма.ИспользоватьСлой("Постоянный,Сотрудники",2);
       
   Иначе
       Предупреждение("Это системная обработка!",5);
       СтатусВозврата(0);
   КонецЕсли;

КонецПроцедуры    // ПриОткрытии
2 NikVars
 
22.04.13
16:00
(0) А запросом по справочнику Сотрудники Дата приема/увольнения с ... по...