Имя: Пароль:
1C
1С v8
Выборка из РегистрСведений.РаботникиОрганизации нужна Подсказка.
0 Sergeich737
 
18.09.14
15:05
Написал небольшую процедурку для получения подразделения. Но она с косяком, это я потом понял. Косяк получается в том что работник может быть одновременно как основным так и совместителем. этот момент не учел, а запрос воять для этого не охота, длинный получается по крайней мере у меня. Если не сложно то конечно, подскажите как получить подразделение основного сотрудника?  


ПользовательИБ = ЗаявительВШапке.ФизЛицо;
СотрудникИБ = Cправочники.СотрудникиОрганизаций.НайтиПоРеквизиту("ФизЛицо", ПользовательИБ);
    
    Если ЗначениеЗаполнено(ЗаявительВШапке.ФизЛицо) Тогда
        РегРаботники = РегистрыСведений.РаботникиОрганизаций;
        ФИОДляПоиска = Новый Структура;
        ФИОДляПоиска.Вставить("Сотрудник", СотрудникИБ);
                
        ПоследнееЗначениеРегистра = РегРаботники.ПолучитьПоследнее(, ФИОДляПоиска);
        Если ЗначениеЗаполнено(ПоследнееЗначениеРегистра.ПодразделениеОрганизации) Тогда
            Подразделение = ПоследнееЗначениеРегистра.ПодразделениеОрганизации;
        КонецЕсли;    
    КонецЕсли;
1 TOT43
 
18.09.14
15:39
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    ВЫБОР
|        КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
|            ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации
|        ИНАЧЕ ВЫБОР
|                КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &Период
|                    ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации
|                ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизацииЗавершения
|            КОНЕЦ
|    КОНЕЦ КАК Подразделение
|ИЗ
|    РегистрСведений.РаботникиОрганизаций.СрезПоследних(
|            ,
|            Сотрудник.Физлицо = &Физлицо
|                И Сотрудник.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)) КАК РаботникиОрганизацийСрезПоследних";

Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("Физлицо", ЗаявительВШапке.ФизЛицо);
Попытка
Подразделение = Запрос.Выполнить().Выгрузить().Получить(0).Подразделение;
Исключение
Предупреждение("Ах!");
КонецПопытки;
2 Балоун
 
18.09.14
15:40
>Запрос.Выполнить().Выгрузить().Получить(0).Подразделение
боги..
3 acanta
 
18.09.14
15:44
аминь