Кадровые данные сотрудника 1С ЗУП из БСП
Как получить кадровые данные сотрудника в 1С ЗУП запросом мы уже рассмотрели в этой статье.
Бывают случае, когда нет смысла использовать запрос, а проще воспользоваться встроенными функциями конфигурации 1С Зарплата и Управление персоналом.
Вот пример получения подразделения сотрудника:
КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Сотрудник, "Подразделение", ТекущаяДата(), ,);
Подразделение = КадровыеДанные[0].Подразделение;
Сама функция выглядит так и позволяет получить почти любые данные по сотруднику:
// Возвращает таблицу значений заполненную данными сотрудников, перечисленными в
// параметре СписокНеобходимыхДанных.
//
// Параметры:
// ТолькоРазрешенные - Булево
// СписокСотрудников - Массив ссылок на элементы справочника сотрудники или
// СправочникСсылка.Сотрудники.
// КадровыеДанные - Строка - список полей данных, перечисленных через запятую
// или Массив строк с полями данных, которые необходимо получить.
// ДатаПолученияДанных - дата на которую необходимо получить данные сотрудников,
// применимо к данным, носящим периодический характер.
// Если дату не указывать, будут получены самые последние данные.
//
//
// ПоляОтбораПериодическихДанных - Структура, в качестве ключа указывается имя таблицы, содержащей
// периодические данные (например ФИОФизическихЛиц, ГражданствоФизическихЛиц).
// В качестве значений коллекция условий отбора,
// соединяемых по "И" и применяемых к регистру сведений.
// Коллекция строки которой имеют поля.
// * ЛевоеЗначение - строка, имя поля регистра сведений.
// * ВидСравнения - строка, вид сравнения, допустимый в языке запросов.
// * ПравоеЗначение - значение для сравнения с полем ЛевоеЗначение.
//
// Список полей, допустимых в параметре КадровыеДанные см. КадровыйУчетВнутренний.ЗапросВТКадровыеДанныеСотрудников.
//
// Возвращаемое значение:
// ТаблицаЗначений - Таблица значений, содержащая запрошенные данные.
//
Функция КадровыеДанныеСотрудников(ТолькоРазрешенные, СписокСотрудников, КадровыеДанные, ДатаПолученияДанных = '00010101', ПоляОтбораПериодическихДанных = Неопределено, ФормироватьСПериодичностьДень = Истина) Экспорт
// Подготовим Запрос и Менеджер временных таблиц.
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
// Сформируем временную таблицу ВТКадровыеДанныеФизическихЛиц.
СоздатьНаДатуВТКадровыеДанныеСотрудников(Запрос.МенеджерВременныхТаблиц, ТолькоРазрешенные, СписокСотрудников, КадровыеДанные, ДатаПолученияДанных, ПоляОтбораПериодическихДанных, ФормироватьСПериодичностьДень);
// Выберем кадровые данные физлиц из временной таблицы.
Запрос.Текст = "ВЫБРАТЬ КадровыеДанныеСотрудников.* ИЗ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников";
КадровыеДанныеСотрудников = Запрос.Выполнить().Выгрузить();
Возврат КадровыеДанныеСотрудников;
КонецФункции