Имя: Пароль:
1C
1С v8
Прием сотрудников не появляется в списке
0 Renatsun
 
13.05.13
16:21
День добрый,

Пишу сервис для внешней системы. Прием сотрудника на работу
Для тестов по совету форумчан перенес в обработку.
Вроде все получается, но сотрудник не появляется в списке сотрудников, приходится выходить на карточку сотрудника через физлицо.
Как я понимаю это связано с тем, что стоит отметка на вкладке "Дополнительно" - "Не отображать в списках. Все опреции по сотруднику завершены".
Почему высталяется данная отметка и как этого избежать?
Код ниже:

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   СпрФизЛиц=Справочники.ФизическиеЛица;
   
   ОригФИО=ФИО;
   
   НовЭлФизЛиц=СпрФизЛиц.НайтиПоНаименованию(ФИО);
   Если НовЭлФизЛиц=СпрФизЛиц.ПустаяСсылка() ИЛИ НовЭлФизЛиц = Неопределено Тогда
       НовЭлФизЛиц=СпрФизЛиц.СоздатьЭлемент();
       //НовЭлФизЛиц.Заполнить

       НовЭлФизЛиц.Наименование=ФИО;        
       //Перечисления.ПолФизическихЛиц.Женский.

       НовЭлФизЛиц.Пол=Пол;
       НовЭлФизЛиц.Записать();        
       Фамилия=ОбщегоНазначения.ВыделитьСлово(ФИО);    
       Имя=ОбщегоНазначения.ВыделитьСлово(ФИО);
       Отчество=ОбщегоНазначения.ВыделитьСлово(ФИО);
       мНаборЗаписейФИО=РегистрыСведений.ФИОФизЛиц.СоздатьНаборЗаписей();
       Элемент=мНаборЗаписейФИО.Добавить();
       Элемент.Период=ТекущаяДата();        
           Элемент.Фамилия = Фамилия;
           Элемент.Имя = Имя;
           Элемент.Отчество = Отчество;
           Элемент.ФизЛицо = НовЭлФизЛиц.Ссылка;
           мНаборЗаписейФИО.Записать(Истина);    
   КонецЕсли;

   НовЭлСотр=Справочники.СотрудникиОрганизаций.СоздатьЭлемент();    
   НовЭлСотр.Физлицо=НовЭлФизЛиц.Ссылка;    
   НовЭлСотр.Наименование=ОригФИО;
   НовЭлСотр.ВидДоговора=Перечисления.ВидыДоговоровСФизЛицами.ТрудовойДоговор;
   НовЭлСотр.ВидЗанятости=Перечисления.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы;
   НовЭлСотр.ГрафикРаботы=Справочники.ГрафикиРаботы.НайтиПоНаименованию("Основной график");
   НовЭлСотр.Должность=Справочники.ДолжностиОрганизаций.НайтиПоНаименованию(Должность);
   НовЭлСотр.ДатаНачала=ДатаНачалаРаботы;
   НовЭлСотр.Организация=Справочники.Организации.НайтиПоНаименованию(Организация);    
   НовЭлСотр.ЗанимаемыхСтавок=1;
   НовЭлСотр.ВидРасчета=ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоЧасам;
   НовЭлСотр.Код=НовЭлСотр.ПолучитьОчереднойТабельныйНомер();    

   НовЭлСотр.Записать();
   
   ДокПрием=Документы.ПриемНаРаботуВОрганизацию.СоздатьДокумент();
   ДокПрием.Организация=Справочники.Организации.НайтиПоНаименованию(Организация);    
   ДокПрием.УстановитьНовыйНомер();
   //ДокПрием.Номер="6";    

   ДокПрием.Дата=ТекущаяДата();    
       
   НоваяCтрока=ДокПрием.РаботникиОрганизации.Добавить();
   НоваяCтрока.ФизЛицо=НовЭлФизЛиц.Ссылка;    
   НоваяCтрока.ПодразделениеОрганизации=Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию(Подразделение);
   НоваяCтрока.Должность=Справочники.ДолжностиОрганизаций.НайтиПоНаименованию(Должность);
   НоваяCтрока.ДатаПриема=ДатаНачалаРаботы;
   НоваяCтрока.Сотрудник=НовЭлСотр.Ссылка;    
   НоваяCтрока.ГрафикРаботы=Справочники.ГрафикиРаботы.НайтиПоНаименованию("Основной график");
   НоваяCтрока.СпособРасчета=Перечисления.СпособыРасчетаОплатыТруда.ПоЧасовойТарифнойСтавке;
   НоваяCтрока.ЗанимаемыхСтавок=1;
   НоваяCтрока.ИспытательныйСрок=ИспСрок;        
   Оклады=ДокПрием.ОсновныеНачисления.Добавить();
   Оклады.ФизЛицо=НовЭлФизЛиц.Ссылка;
   Оклады.Сотрудник=НовЭлСотр.Ссылка;
   Оклады.ВидРасчета=ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоЧасам;
   Оклады.Показатель1=Оклад;    
   
   ДокПрием.Записать(РежимЗаписиДокумента.Проведение);

КонецПроцедуры
1 de Bug
 
14.05.13
05:31
НовЭлСотр.Актуальность = Истина;
2 Renatsun
 
14.05.13
15:16
(1) спасибо помогло, вопрос закрыт.