1с зуп получить должность сотрудника

Обновлено: 07.07.2024

Данная статья предназначена для программистов, делающих первые шаги в работе с 1С:Зарплата управление персоналом 3.1 (далее ЗУП 3.1 8).

Многие задачи по доработке ЗУП так или иначе связаны с необходимостью получения кадровых данных сотрудников. Так как эта информация находится в различных регистрах сведений, то разработка запроса с 0 может занять значительное время. Поэтому во многих случаях более целесообразно использовать так называемый механизм представлений.

Под механизмом представлений подразумевается набор экспортных процедур, функций типовых модулей ЗУП 3.1 8. Они позволяют получить необходимую информацию, передав в качестве параметров описание этих данных (список сотрудников, даты на которые требуется получить данные, список идентификаторов необходимых данных и т.п.). В данной статье мы рассмотрим только получение кадровых данных сотрудников, хотя механизм позволяет получать данные различных подсистем ЗУП 3.1.

2. Программное получение кадровых данных сотрудников.

Приведем код позволяющий получить временную таблицу содержащую кадровые данные сотрудников:



Первым шагом создаем временную таблицу ВТСотрудникиПериоды, содержащую список сотрудников, для которых необходимо получить кадровые данные. Так как временная таблица формируется запросом, то можно ограничивать список сотрудников необходимым образом, например, получить всех сотрудников организации или список сотрудников какого-либо документа. Кроме списка сотрудников данная таблица содержит период получения среза кадровых данных. Отметим, что один сотрудник может встречаться в таблице несколько раз с различными периодами, что позволяет получить кадровые данные на разные даты.

Следующим шагом вызываем процедуру СоздатьВТКадровыеДанныеСотрудников модуля КадровыйУчет, в качестве параметров передаем:

· ОписательВременныхТаблиц – Структура, в том числе содержащая менеджер временных таблиц, в который будет помещена временная таблица с полученными данными.

· ТолькоРазрешенные – Булево, признак отбора только разрешенных пользователю данных.

· КадровыеДанные – Строка, содержащая список необходимых кадровых данных, представляющих собой идентификаторы полей кадровых данных. Не будем приводить в данной статье эти идентификаторы, так как их перечень достаточно велик. При желании их можно получить глобальным поиском по конфигурации (ключевое слово СоздатьВТКадровыеДанныеСотрудников).

Далее рассмотрим получение данных из временной таблицы 1С 8.3:



Как видно на рисунке, после выполнения процедуры данные помещаются во временную таблицу 1С 8.3 ВТКадровыеДанныеСотрудников. Выбираем с помощью запроса полученные данные и обрабатываем.

Следует отметить, существует аналог процедуры СоздатьВТКадровыеДанныеСотрудников – функция КадровыеДанныеСотрудников с аналогичными параметрами. Отличие лишь в том, что данные помещаются не во временную таблицу, а в таблицу значений. Еще один плюс функции - она относится к разделу ПрограммныйИнтерфейс модуля КадровыйУчет, это означает, что для данной функции поддерживается совместимость при переходе на новые релизы.

3. Кадровые данные сотрудников в отчетах.

Приведенный выше код неудобно применять в отчетах, реализованных с использованием системы компоновки данных. Но, к счастью, программисты ЗУП разработали аналогичный механизм получения кадровых данных в отчетах.

Первым шагом мы оформляем специальным образом запрос схемы компоновки:



В первом запросе подготовим список сотрудников, для которых необходимо получить кадровые данные. В фигурных скобках содержится список полей, которые 1С 8 СКД предложит пользователю отчета для отбора сотрудников.

Второй запрос – шаблон для выборки кадровых данных сотрудников, необходимых для вывода в отчет 1С. Как мы видим, этот запрос сам по себе ничего не выберет, так как содержит пустые значения в запросе для каждого из типов данных. Но он открывается конструктором запросов. А это позволяет модифицировать запрос и использовать данные полей временной таблицы Представления_КадровыеДанныеСотрудников в последующих запросах, а также формировать список полей, доступных в отчете. Нам остается только сформировать вариант отчета 1С 8.3.

Теперь чтобы в нашем отчете вместо пустых полей появились реальные данные, доработаем модуль объекта 1С 8.3 отчета (код можно скопировать в одном из типовых запросов конфигурации):



Всю работу за нас выполнит процедура ЗаполнитьОбщиеИсточникиДанныхОтчета модуля ЗарплатаКадрыОбщиеНаборыДанных. При инициализации отчета она заменит наш шаблон запроса реальным запросом к базе данных.

Может еще знающие люди подскажут чем регистр сведений отличаается от регистра сведений ". интервальный"?

Кстати, была относительно недавно тема похожая.

(2) Да есть там программный интерфейс, пытался оттуда достать запрос, но что то не осилил. Если программно, то да использовать функцию КадровыйУчет.КадровыеДанныеСотрудников удобно.

Про интервальные регистры

А в ветке (5) так и не ответили - можно ли удалять эти регистры )))
(8) Хочу запросом без всяких программных интерфейсов, просто запрос к регистрам. Да я понимаю, что 1С может в будущем изменить структуру.

а это условие из пятого поста не правильно работает?

ДатаАктуальности >=ДатаНачала И ДатаАктуальности <=ДатаОкончания.

ИМХО - добавить свой регистр из ЗУП 2.5 и писать подпиской туда кадровую историю сотров
единственная неприятность - надо этот регистр в движения документов прописывать . хотя если повесить подписику на отмену проведения - то прокатит

из плюсов получим прозрачную систему + возможность использовать старые отчеты

(10) там в пятом посте есть 6 пост с примером когда сам регистр заполняется неверно
ну там дело было летом, наверняка уже затычку-проверку вотнули насчет того, что старые перемещения нельзя трогать.

(11) хотя в ЗУП 2.5 это вызывало косяк в таком случае

> А зачем так хочешь?

а энтот новомодный программный интерфейс позволяет
1. все данные выбрать одним запросом?
2. сделать обход результата по группировкам?

все данные одним запросом - это сведения о сотруднике ну и допустим, какие то настройки организации.

(0) Ответ дан в ссылке в (3). В функцию КадровыйУчет.КадровыеДанныеСотрудников(Истина, СписокСотрудников, , , ТекущаяДата(), ) подставляй своих сотрудников и нужную дату.

Только мне не совсем понятно как работает функция, если я хочу сделать отбор еще и по подразделению? Alexandr_U1982, не подскажите? Из комментария к параметру пять:

ПоляОтбораПериодическихДанных - Структура, в качестве ключа указывается имя таблицы, содержащей

(20) девушка, учитесь писать запросы одним запросом, а Сашка вас плохому научит! )
(17)
1. Может.
2. С помощью программного интерфейса можно создать временную таблицу с нужными вам данными в менеджере временных таблиц. Группировать и выводить данные из нее вы можете как угодно.
(18)С помощью программного интерфейса создаете временные таблицы и затем соединяете их как вам будет угодно.
(19) Не приходилось еще получать данные из тройки через COM, поэтому личным опытом поделиться не могу.
Думаю, что это возможно сделать с помощью процедур и функций программного интерфейса.
(20) Была такая нужда сегодня.
Поместил тз в запрос и там уже делал нужные мне отборы.
(24) Требуется получить сотрудников, работающих на дату с видом занятости - внешнее совместительство через COM. Раньше делалось запросом.
Даже если делать через функции общего модуля и выполнять их через COM соединение - все равно там есть в параметрах - Список сотрудников - считывать весь справочник ?
(20)(25)Сходу ответить не могу. Я подумаю над вашими вопросами, когда появится свободное время. Сейчас его как-то на текущие дела не хватает.
(20)(26) Думаю, вам подойдет функция КадровыйУчет.СотрудникиОрганизации(ТолькоРазрешенные, Параметры)

(20) Пример получения сотрудников с отбором по подразделению:

(26)Пример получения сотрудников на указанную дату по выбранным графикам работы:

Очень часто необходимо получать актуальные кадровые данные как для одного сотрудника, так и для списка сотрудников. Конечно же мы можем просто написать свой запрос и получить эти данные, но очень часто, после изменения структуры регистров, запрос перестает работать. Кроме того, для получения некоторых данных необходимо писать большие запросы в несколько сотен строк, особенно если необходимо получить данные для списка сотрудников. Поэтому лучше воспользоваться тем функционалом, который для нас создали разработчики библиотеки стандартных подсистем.

В данной статье рассматриваются только способы получения кадровой информации для сотрудников и физических лиц. Описанным способом можно получить следующую кадровую информацию: кадровые данные сотрудников (дата приема, текущее подразделение, должность, работает сотрудник, находится в отпуске или же на больничном), кадровые данные физических лиц (ФИО, информация о стаже, образовании и т.д.) и данные о начислениях.

Все примеры проверены на конфигурации ЗУП 3.1.10.135, версия 1C БСП 3.0.3.59.

Получение информации для одного сотрудника или физического лица

Рассмотрим получение текущей фамилии для сотрудника Боровой Дмитрий Валентинович. Для наглядности добавим ему в историю изменения ФИО фамилию Бонд и изменим отчество.


Для получения кадровой информации используется общий модуль КадровыйУчет. Для получения кадровых данных физических лиц используется функция КадровыеДанныеФизическихЛиц. Более подробно о принимаемых параметрах вы можете в описании к функции. Для нас важен параметр СписокФизическихЛиц, куда мы передаем ссылку на физическое лицо или массив ссылок на физические лица, параметр КадровыеДанные, в котором указываются те кадровые данные, которые мы хотим получить и параметр ДатаПолученияДанных – дата, на которую мы получаем данные.
Видов кадровых данных, которые мы можем получить, очень много, поэтому мы рассмотрим только несколько из них.
Чтобы узнать какие кадровые данные можно получить с помощью данной функции вы можете обратиться к описанию функции КадровыйУчетВнутренний.ЗапросВТКадровыеДанныеФизическихЛиц.

Если мы выполним этот код, то получим следующую строку:

Т.е. функция нам вернет фамилию актуальную в период с 30.11.2019 по 01.01.2020. Если же указать дату получения данных не из этого периода, то функция вернет другую фамилию.

Кроме того, у данной функции есть еще один параметр, с помощью которого мы можем накладывать дополнительные отборы – ПоляОтбораПериодическихДанных. В данном параметре указывается коллекция отборов. Для примера мы можем наложить отбор на отчество:

В результате получим строку:

Т.е. мы получили другую фамилию, используя одну и ту же дату.

Для получения кадровых данных сотрудников используется функция КадровыеДанныеСотрудников из того же модуля. И, по аналогии, чтобы узнать список возможных кадровых данных можно посмотреть описание функции КадровыйУчетВнутренний.ЗапросВТКадровыеДанныеСотрудников.

Для получения кадровой информации по списку сотрудников или списку физлиц можно использовать эти же функции. Только вместо ссылки на физическое лицо в параметр СписокФизическихЛиц передается массив физических лиц, а в параметр СписокСотрудников – массив сотрудников.

Получение информации для списка сотрудников с использованием временных таблиц

Иногда гораздо удобнее не получать данные в промежуточных переменных, а формировать временные таблицы и использовать эти временные таблицы в одном запросе. Для этого мы можем использовать функции СоздатьНаДатуВТКадровыеДанныеСотрудников и СоздатьНаДатуВТКадровыеДанныеФизическихЛиц из общего модуля КадровыйУчет. Данные функции отличаются тем, что не возвращают таблицу кадровых данных, а формируют временную таблицу в менеджере временных таблиц.

Для демонстрации можно использовать данный код.

После выполнения данного кода мы получим таблицу кадровых данных следующего вида:


В данном примере мы сначала подготовили кадровые данные сотрудника и кадровые данные физического лица во временных таблицах, и затем использовали их в одном запросе.

Получение кадровой информации для списка сотрудников на разные даты

Кроме получения кадровых данных на конкретную дату очень часто бывает нужно получить кадровые данные на разные даты. Это бывает нужно, например, в случае печати нескольких документов с разными датами. Когда для каждого документа на разные даты нужно получать отдельную кадровую информацию. Так как в цикле запросы выполнять не хорошо, то нужно сформировать один запрос сразу для всех документов. Для этого можно использовать функции ЗапросВТКадровыеДанныеФизическихЛиц и ЗапросВТКадровыеДанныеСотрудников все из того же общего модуля КадровыйУчет.

Для примера используем все того же сотрудника Борового Дмитрия Валентиновича и его таблицу изменения ФИО.

Чтобы продемонстрировать как работают данные функции подготовим таблицу физических лиц, которая содержит список физических лиц и дат. В нашем примере физическое лицо будет одно, но мы добавим несколько дат:

Во временной таблице будет три строки с разными датами.

Далее формируем описание нашей временной таблицы с физическими лицами:

Если колонка, содержащая ссылки на физические лица, будет называться не ФизическоеЛицо, необходимо указать это в функции ОписаниеВременнойТаблицыОтборовФизическихЛиц в параметре ИмяПоляФизическоеЛицо. Это же касается и колонки, содержащей даты, по умолчанию она должна называться Период.

Далее получим запрос и выполним его, чтобы сформировать временную таблицу, содержащую кадровые данные:

Ну и в конце мы можем использовать эту временную таблицу. В данном примере мы просто выведем ее в таблицу значений.

В результате мы получим следующую таблицу:


Как мы видим, запрос вернул нам актуальную информацию для всех дат указанных в исходной таблице ВТФизическиеЛица.

Здравствуйте, коллеги! В этой статье мы подробно разберем, что необходимо сделать, чтобы в программе 1С ЗУП 3.1 получить список сотрудников с информацией по ним. Такие списки могут использоваться как в рабочих целях, так и предоставления отчетности руководству. Для получения таких списков в программе предназначены кадровые отчеты 1С.

1. Виды отчетов по сотрудникам в 1С ЗУП 8.3

Рассмотрим некоторые отчеты по сотрудникам в 1С ЗУП 8.3. Доступны они в перечне кадровых отчетов 1С раздела «Кадры».

 Виды отчетов по сотрудникам

Отчет «Штатные сотрудники в 1С» содержит информацию о работающих по трудовым договорам сотрудниках. В нем выводятся основные сведения об их рабочем месте. Здесь можно получить список сотрудников с указанием должности, графика работы, даты приема на работу, стажа работы и т.п. Помимо информации о работе отображаются личные данные, такие как дата рождения, телефон.

 Виды отчетов по сотрудникам в 1С

Для получения личных данных о сотрудниках, таких как ИНН, СНИЛС, адрес, гражданство и т.п. предназначен отчет «Личные данные сотрудников в 1С». В нем отражается список всех занесенных в программу сотрудников, в том числе не оформленных на работу.

отчет по сотрудникам в 1С ЗУП 8.3

Для получения списка уволенных сотрудников предназначен отчет «Уволенные сотрудники». Он включает всех сотрудников, которые были уволенные до указанной в отчете даты.

 список уволенных сотрудников

2. Инструкция по настройки отчета в 1С ЗУП

Отчеты формируется на определенную дату, которая указывается в отборах формы. По умолчанию в варианте настройки присутствует так же отбор по организации.

Данные отчеты легко перенастроить под свои потребности: скрыть лишнюю информацию, поменять расположение колонок местами, добавить дополнительные данные.

Например, выведем из отчета «Штатные сотрудники в 1С» список сотрудников, работающих в подразделении «Отдел по работе с персоналом» с указанием должности, оклада, даты и приказа о приеме на работу.

Изменения выполняется в окне настройки отчета в 1С ЗУП в режиме «Расширенный».

Инструкция по настройки отчета в 1С ЗУП

На вкладке «Отборы» в программе 1С ЗУП 3.1 устанавливаем отбор по подразделению «Отдел по работе с персоналом». Для возможности в дальнейшем быстро сформировать список по любому другому подразделению выводим отбор в шапку отчета – ставим звездочку в строке.

Инструкция по настройки отчета

На вкладке «Поля и сортировки» убираем галочки с лишних полей:

отчет в 1С ЗУП

Для добавления данных, которые не выведены в перечень полей (в текущем примере это приказ о приеме на работу) нажимаем кнопку «Добавить», в списке полей раскрываем строку верхнего уровня и выбираем нужные данные.

Нажимаем «Закрыть и сформировать» и получаем нужный список в программе 1С ЗУП 3.1.

Закрыть и сформировать в 1С

Закрыть и сформировать

Полученный список можно сохранить на компьютер. Для этого надо нажать кнопку сохранения, выбрать место расположения сохраняемого файла, указать имя и тип файла.

Читайте также: