Имя: Пароль:
1C
 
Получить подразделение сотрудника, зная физ.лицо (ЗУП)
0 Tender
 
01.10.10
09:30
Как программно вытянуть подразделение сотрудника, зная только его физ.лицо?
Заранее спасибо за помощь.
ПС: по сотруднику подразделение определяю так:
           Запрос = Новый Запрос;
           Запрос.УстановитьПараметр("ДатаАктуальности",НовСтр.ДатаНачала);
           Запрос.УстановитьПараметр("Сотрудник",         НовСтр.Сотрудник);
           
           Запрос.Текст =
           "ВЫБРАТЬ
           |    ВЫБОР
           |        КОГДА  РаботникиОрганизацииСрезПоследних.ПериодЗавершения <= &ДатаАктуальности
           |                И РаботникиОрганизацииСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
           |        ТОГДА РаботникиОрганизацииСрезПоследних.ПодразделениеОрганизацииЗавершения
           |        ИНАЧЕ РаботникиОрганизацииСрезПоследних.ПодразделениеОрганизации
           |    КОНЕЦ КАК ПодразделениеОрганизации
           |ИЗ
           |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаАктуальности, Сотрудник = &Сотрудник) КАК РаботникиОрганизацииСрезПоследних";
           
           // подразделение
           ПрежниеДанные = Запрос.Выполнить().Выбрать();
           Если ПрежниеДанные.Следующий() тогда
               НовСтр.ПодразделениеОрганизации = ПрежниеДанные.ПодразделениеОрганизации;
           КонецЕсли;

а вот как по физ.лицу?
1 Mitriy
 
01.10.10
09:39
у сотрудника есть реквизит ФизЛицо
2 smitru
 
01.10.10
09:55
Запрос = Новый Запрос;
           Запрос.УстановитьПараметр("ДатаАктуальности",НовСтр.ДатаНачала);
           Запрос.УстановитьПараметр("ФизЛицо",         НовСтр.Сотрудник.ФизЛицо);
           
           Запрос.Текст =
           "ВЫБРАТЬ
           |    ВЫБОР
           |        КОГДА  РаботникиОрганизацииСрезПоследних.ПериодЗавершения <= &ДатаАктуальности
           |                И РаботникиОрганизацииСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
           |        ТОГДА РаботникиОрганизацииСрезПоследних.ПодразделениеОрганизацииЗавершения
           |        ИНАЧЕ РаботникиОрганизацииСрезПоследних.ПодразделениеОрганизации
           |    КОНЕЦ КАК ПодразделениеОрганизации
           |ИЗ
           |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаАктуальности, Сотрудник.ФизЛицо = &ФизЛицо) КАК РаботникиОрганизацииСрезПоследних";
           
           // подразделение

           ПрежниеДанные = Запрос.Выполнить().Выбрать();
           Если ПрежниеДанные.Следующий() тогда
               НовСтр.ПодразделениеОрганизации = ПрежниеДанные.ПодразделениеОрганизации;
           КонецЕсли;
3 Mitriy
 
01.10.10
09:57
только вот, что делать, если будет больше одного сотрудника, причем в разных подразделениях, но с одним физлицом?
4 smitru
 
01.10.10
10:02
(3) Ну-у-уэээ то вопрос к тебе.. а что делать, если конкретный Иванов, кроме основной ставки буха работает ещё в других подразделениях совместителем дворника и ген. директора :-)
5 ВопросНа Засыпку
 
01.10.10
10:15
он еще может несколько раз увольняться и снова устраиваться на работу, получать деньги по договорам подряда... для этого и разделили справочники сотрудников и физлиц
6 smitru
 
01.10.10
10:19
(5) вообще-то справочники Сотрудники и ФизЛица - это по жизни РАЗНЫЕ справочники.. Зачем их делить? :-)
7 Mitriy
 
01.10.10
10:21
(6) эти справочники разделили, поэтому они по жизни разные...
8 Tender
 
01.10.10
10:23
Немного не правильно наверно задал вопрос. Сотрудника я не знаю!
У меня есть только физ.лицо - надо определить какому сотруднику оно "принадлежит" и уже от этого сотрудника найти его подразделение
9 smitru
 
01.10.10
10:23
(7) Вопрос был "Зачем делить то, что и так по жизни разделено?" :-)
10 smitru
 
01.10.10
10:24
(8) Делаешь запрос к справочнику Сотрудники по ФизЛицу

В чём трудность
11 Mitriy
 
01.10.10
10:30
(9) еще до большого взрыва, что ли?
(8) ты вообще читал, что тебе выше писали?
12 Tender
 
01.10.10
10:31
Все, всем спасибо,разобрался )
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший