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