Как в 1с вывести список сотрудников с должностями

от admin

Как выгрузить список сотрудников из 1С ЗУП

Выгрузить список сотрудников из 1С ЗУП можно несколькими способами:

1. Сформировать кадровый отчет (раздел КадрыКадровые отчеты).

Для примера рассмотрим отчет Личные данные сотрудников.

Выбираем нужные настройки по кнопке Настройки

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

Для его выгрузки воспользуемся кнопкой в верхней части отчета

выгрузить список сотрудников из 1С ЗУП (2).png

В открывшемся окне следует указать путь для выгружаемого файла, его имя и формат выгрузки (pdf,doc,xls). После нажатия кнопки Сохранить отчет будет выгружен по указанному пути.

2. Выгрузить список сотрудников непосредственно из справочника Сотрудники (раздел ГлавноеСотрудники)

Нажав кнопку Еще в правом верхнем углу выбираем пункт меню Вывести список

выгрузить список сотрудников из 1С ЗУП (3).png

Отмечаем галками нужные поля и завершаем нажатием ОК

выгрузить список сотрудников из 1С ЗУП (4).png

Полученный список сотрудников можно сохранить или распечатать, нажав соответствующие кнопки в верхнем углу экрана

1c 8.3 ЗУП получить список актуальных сотрудников в запрос

Добрый день подскажите пожалуйста как правильно получить список сотрудников функцией
КадровыйУчет.КадровыеДанныеСотрудников(Истина,МассивСотрудников,"Организация,Должность",,); нужно получить действующих сотрудников через менеджер временных таблиц (наверное).

вроде рабочий код, но такой кривой получился, я думаю есть нормальное решение, прошу подсказать.

мой вариант весь текст внешней обработки:

&НаСервере
Функция СформироватьСписокНаСервере()
//формируем список сотрудников всех
МассивСотрудников = Новый Массив;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.Ссылка КАК Сотрудник
|ИЗ
| Справочник.Сотрудники КАК Сотрудники";

РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ном=0;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
МассивСотрудников.Добавить(ВыборкаДетальныеЗаписи.Сотрудник);
КонецЦикла;

//ключевой момент, используем функцию формирования списка сведений сотрудников
ТЗСведения = КадровыйУчет.КадровыеДанныеСотрудников(Истина,МассивСотрудников,"Организация,Должность",,);
//ном=1;
//Для Каждого Стр Из ТЗСведения Цикл
// ном=ном+1;
// Сообщить("№"+ном+" / "+Стр.Организация + " / " + Стр.Должность + " / "+Стр.Сотрудник );
//КонецЦикла;

//формируем табличный документ и передаем данные в запрос для последующей его обработки
ТабДок = Новый ТабличныйДокумент;
Макет = Объект.РеквизитМакет; //на форме есть реквизит с типом данных неопределенный, с именем "РеквизитМакет" в него записываем ссылку на печатный макет обработки

Запрос = Новый Запрос;
//приходится поместить ТЗ сначала во временную таблицу, а потом только с ней работать.
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВнешняяТЗ.Сотрудник КАК Сотрудник,
| ВнешняяТЗ.Должность КАК Должность,
| ВнешняяТЗ.Организация.Наименование КАК ОрганизацияНаименование
|ПОМЕСТИТЬ втзСотрудники
|ИЗ
| &ВнешняяТЗ КАК ВнешняяТЗ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| втзСотрудники.Сотрудник КАК Сотрудник,
| втзСотрудники.Должность КАК Должность,
| втзСотрудники.ОрганизацияНаименование КАК Организация
|ИЗ
| втзСотрудники КАК втзСотрудники";

Запрос.УстановитьПараметр("ВнешняяТЗ",ТЗСведения); //передаю ТЗ в запрос и формирую временную таблицу с которой дальше и работаю
РезультатЗапроса = Запрос.Выполнить();

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
Возврат ТабДок;

КонецФункции
&НаКлиенте
Процедура СформироватьСписок(Команда)
ТабДок = СформироватьСписокНаСервере();
ТабДок.Показать();
КонецПроцедуры

(2) я так понял что нет, к регистрам вообще не вариант,

а дата увольнения пусто, чтото не подумал, сейчас попробую.

Можно. После вдумчивого чтения форума и инфостарта и изучения конфы, я делал так (по памяти):

Запрос = Новый Запрос;
МенеджерВТ = Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос.Текст =

"ВЫБРАТЬ
| Сотрудники.Ссылка КАК Ссылка,
| &Период КАК Период
|ПОМЕСТИТЬ ВТ_Сотрудники
|ИЗ
| Справочник.Сотрудники КАК Сотрудники"

Запрос.УстановитьПараметр("Период", НаДату ); //на дату которую нужно.

КоллекцияПолей = "Сотрудник, ДатаУвольнения, Подразделение"; //попробуйте или ДатаУвольнения или ДатаЗавершенияРаботы — точно не помню.
ОписательТаблицыОтборов = КадровыйУчет.ОписаниеВременнойТаблицыОтборовСотрудников("ВТ_Сотрудники", "Сотрудник","Период");
ЗапросКадровыеДанные = КадровыйУчет.ЗапросВТКадровыеДанныеСотрудников(Истина, ОписательТаблицыОтборов, КоллекцияПолей);
ЗарплатаКадрыОбщиеНаборыДанных.ОбъединитьЗапросы(Запрос, ЗапросКадровыеДанные);
Запрос.Выполнить();

Запрос = Новый запрос;
Запрос.МенеджерВТ = МенеджерВТ;
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.Сотрудник,
| Сотрудники.Период
| ИЗ ВТ_Сотрудники КАК Сотрудники
|ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК |КадровыеДанныеСотрудников
|ПО Сотрудники.Сотрудник = |КадровыеДанныеСотрудников.Сотрудник
|И Сотрудники.Период = КадровыеДанныеСотрудников.Сотрудник

(8) нет это все не то, это не по феншую.

(7) это да, просто потом как с этим списком работать в запросе? я этот момент хотел прояснить

(10) не надо столько вопросов, покажи как?
вот мой запрос примерный:

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

(17) у меня не получилось, посмотри в сообщении код (1) там через жопу все получается,
1. Получаю ТЗ функцией КадровыйУчет.КадровыеДанныеСотрудников()
2. Передаю через параметр в запрос
3. В запросе формирую временную таблицу
4. и уже потом работаю с ней другим запросом.
может описал не очень хорошо, но код глянешь там не много поймешь.

Я подвожу может кто обработкой, примером, поделится как в СКД передать список действующих сотрудников (т.е. результат работы функции КадровыеДанныеСотрудников передать в СКД) , а то вопросов уж больно много!

вообщем если комуто нужен будет получить список сотрудников в системе компановке данных, для гибкой настройки пользователем в дальнейшем, рекомендую видео: https://www.youtube.com/watch?v=vYbbh1axSzg только что наткнулся. Там не про зуп, но идея ясна из первых 15 минут видео.

1. создал обработку внешнюю
2. создал компоновку данных и добавил источник данных "объект"
3. описал структуру получаемых данных (поля Сотрудник, Организация и тп) ее можно подсмотреть в отладчике то что возвращает функция КадровыйУчет.КадровыеДанныеСотрудников()
4. и в модуле объект (по кнопке действия, внешней обработки "открыть модуль объекта") добавил код
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;

НастройкиКомпоновки = КомпоновщикНастроек.Настройки;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки);

//формируем список сотрудников всех
МассивСотрудников = Новый Массив;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.Ссылка КАК Сотрудник
|ИЗ
| Справочник.Сотрудники КАК Сотрудники";

РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ном=0;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
МассивСотрудников.Добавить(ВыборкаДетальныеЗаписи.Сотрудник);
КонецЦикла;
//ключевой момент, используем функцию формирования списка сведений сотрудников
втзСотрудники = КадровыйУчет.КадровыеДанныеСотрудников(Истина,МассивСотрудников,"Организация,Должность",,);

ВнешниеНаборы = Новый Структура("втзСотрудники",втзСотрудники);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборы);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры

надеюсь данная цепочка рассуждений поможет, если кто наткнется на такую же задачу.

(0)
ПараметрыПолучения = КадровыйУчет.ПараметрыПолученияОрганизацийПоСпискуФизическихЛиц();
ПараметрыПолучения.Организация = Организация;
//ПараметрыПолучения.Подразделение = Подразделение;
ПараметрыПолучения.НачалоПериода = ДатаНачала;
ПараметрыПолучения.ОкончаниеПериода = ДатаОкончания;
//ПараметрыПолучения.СписокФизическихЛиц = ФизическиеЛица;
//ПараметрыПолучения.КадровыеДанные = "ГрафикРаботы";
КадровыйУчет.СоздатьВТСотрудникиОрганизации(Запрос.МенеджерВременныхТаблиц,Истина,ПараметрыПолучения, "ВТСотрудникиОрганизации");

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

(21) спасибо, полезно, еще бы конкретнее какой отчет бы рассмотреть из стандартной конфигурации.

может есть методические указания по программировании в ЗУП, обучающие видео по этой тематике?

0) Отчет КадроваяИсторияСотрудников
В модуле ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета(

Методические материалы не искал. Нужно статью на инфостарте оформить 🙂

(23) вот это правильно, статью в студию!

стати поглядел, в модуле КдаровыйУчет нету такой функции
ПараметрыПолученияОрганизацийПоСпискуФизическихЛиц но есть ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц

(15) плюсую, переписывал тут недавно код. Человек слабо знаком с ЗУПом видимо, брал данные оттуда. я его могу понять — РС ТекущиеКАдровыеДанныеСотрудников есть, данные в нем есть, все логично, завязался на регистр. но вот тех кто ЗУП 3.1 пишет понять сложнее, в этот регистр сейчас пишутся только поля дата приема, физ. лицо, сотрудник, головная организация, остальные поля тупо не заполняются (должность и подразделение, например)

поэтому (10) да, в ЗУП 3.1 все через нее самую, как раньше нельзя

(0) Я так получаю, стянуто с формы списка сотрудников:

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

Запрос.УстановитьПараметр("ДатаНачалаСведений", НачалоДня(Объект.ДатаСведений));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(Объект.ДатаСведений));
Запрос.УстановитьПараметр("ПустаяДата", Дата(‘00010101’));
Запрос.УстановитьПараметр("Организация", Объект.Организация);

Если ЗначениеЗаполнено(Объект.Подразделение) Тогда
Запрос.УстановитьПараметр("Подразеделение", Объект.Подразделение);
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеОтборПодразделение", "ДанныеДляПодбора.Подразделение = &Подразделение");
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеОтборПодразделение", "Истина");
КонецЕсли;

ТекстЗапроса =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ИтоговыеСотрудники.Ссылка КАК Сотрудник,
| &ДатаОтчета КАК Период
|ПОМЕСТИТЬ ВТСотрудники
|ИЗ
| Справочник.Сотрудники КАК ИтоговыеСотрудники
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ТаблицаОтборов.Период КАК Период,
| ТаблицаОтборов.Сотрудник КАК Сотрудник,
| СправочникСотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
| ВЫРАЗИТЬ(ТаблицаОтборов.Сотрудник КАК Справочник.Сотрудники).ГоловнойСотрудник КАК ГоловнойСотрудникТаблицыРазличных,
| СправочникСотрудники.Код КАК ТабельныйНомер,
| СправочникСотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация
|ПОМЕСТИТЬ ВТОтборовРазличныхСотрудников
|ИЗ
| ВТСотрудники КАК ТаблицаОтборов
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
| ПО ТаблицаОтборов.Сотрудник = СправочникСотрудники.Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ИзмеренияДаты.Сотрудник КАК Сотрудник,
| ИзмеренияДаты.Период КАК Период,
| СостоянияСотрудников.Период КАК ПериодЗаписи,
| СостоянияСотрудников.Состояние КАК Состояние,
| СостоянияСотрудников.ВидВремени КАК ВидВремени,
| СостоянияСотрудников.ДействуетДо КАК ДействуетДо,
| СостоянияСотрудников.ОкончаниеПредположительно КАК ОкончаниеПредположительно
|ПОМЕСТИТЬ ВТСведенияОСостоянииСотрудников
|ИЗ
| ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияСотрудников КАК СостоянияСотрудников
| ПО ИзмеренияДаты.Сотрудник = СостоянияСотрудников.Сотрудник
| И (СостоянияСотрудников.Период <= ИзмеренияДаты.Период)
| И (СостоянияСотрудников.ДействуетДо >= ИзмеренияДаты.Период
| ИЛИ СостоянияСотрудников.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1))
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ИзмеренияДаты.Период КАК Период,
| РегистрСведений.ДействуетДо КАК ПериодВозвратногоСобытия,
| ВЫБОР
| КОГДА РегистрСведений.ПериодЗаписи = РегистрСведений.ДатаНачала
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЭтоВозвратноеСобытие,
| РегистрСведений.РегистраторСобытия КАК Регистратор,
| ИзмеренияДаты.Сотрудник КАК Сотрудник,
| РегистрСведений.ДатаОкончания КАК ДатаОкончания,
| РегистрСведений.ДатаНачала КАК ДатаНачала,
| РегистрСведений.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| РегистрСведений.ФизическоеЛицо КАК ФизическоеЛицо,
| РегистрСведений.ПериодЗаписи КАК ПериодЗаписи,
| РегистрСведений.Год КАК Год,
| РегистрСведений.ПериодПредыдущейЗаписи КАК ПериодПредыдущейЗаписи,
| РегистрСведений.ВидЗанятости КАК ВидЗанятости,
| РегистрСведений.РегистраторЗаписи КАК РегистраторЗаписи,
| РегистрСведений.РегистраторСобытия КАК РегистраторСобытия,
| РегистрСведений.ПустойИнтервал КАК ПустойИнтервал
|ПОМЕСТИТЬ ВТСведенияОВидахЗанятостиСотрудников
| <ВЫБРАТЬ
| Период,
| ПериодВозвратногоСобытия,
| Регистратор,
| Сотрудник,
| ДатаОкончания,
| ДатаНачала,
| ГоловнаяОрганизация,
| ФизическоеЛицо,
| ПериодЗаписи,
| Год,
| ПериодПредыдущейЗаписи,
| ВидЗанятости,
| РегистраторЗаписи,
| РегистраторСобытия,
| ПустойИнтервал>
|ИЗ
| ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
| <ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ВидыЗанятостиСотрудниковИнтервальный КАК РегистрСведений
| ПО (РегистрСведений.ДатаНачала <= КОНЕЦПЕРИОДА(ВЫБОР
| КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
| ИНАЧЕ ИзмеренияДаты.Период
| КОНЕЦ, ДЕНЬ))
| И (РегистрСведений.ДатаОкончания >= КОНЕЦПЕРИОДА(ВЫБОР
| КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
| ИНАЧЕ ИзмеренияДаты.Период
| КОНЕЦ, ДЕНЬ))
| И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник)>
|ГДЕ
| ИСТИНА
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ИзмеренияДаты.Период КАК Период,
| РегистрСведений.ДействуетДо КАК ПериодВозвратногоСобытия,
| ВЫБОР
| КОГДА РегистрСведений.ПериодЗаписи = РегистрСведений.ДатаНачала
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЭтоВозвратноеСобытие,
| РегистрСведений.РегистраторСобытия КАК Регистратор,
| ИзмеренияДаты.Сотрудник КАК Сотрудник,
| РегистрСведений.ДатаОкончания КАК ДатаОкончания,
| РегистрСведений.ДатаНачала КАК ДатаНачала,
| РегистрСведений.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| ИзмеренияДаты.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
| РегистрСведений.ПериодЗаписи КАК ПериодЗаписи,
| РегистрСведений.Год КАК Год,
| РегистрСведений.ПериодПредыдущейЗаписи КАК ПериодПредыдущейЗаписи,
| РегистрСведений.ВидСобытия КАК ВидСобытия,
| РегистрСведений.Организация КАК Организация,
| РегистрСведений.Должность КАК Должность,
| РегистрСведений.ГоловнойСотрудник КАК ГоловнойСотрудник,
| РегистрСведений.ЭтоГоловнойСотрудник КАК ЭтоГоловнойСотрудник,
| РегистрСведений.Подразделение КАК Подразделение,
| РегистрСведений.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
| РегистрСведений.КоличествоСтавок КАК КоличествоСтавок,
| РегистрСведений.ВидДоговора КАК ВидДоговора,
| РегистрСведений.РегистраторЗаписи КАК РегистраторЗаписи,
| РегистрСведений.РегистраторСобытия КАК РегистраторСобытия,
| РегистрСведений.ПустойИнтервал КАК ПустойИнтервал
|ПОМЕСТИТЬ ВТСведенияКадровойИсторииСотрудников
| <ВЫБРАТЬ
| Период,
| ПериодВозвратногоСобытия,
| Регистратор,
| Сотрудник,
| ДатаОкончания,
| ДатаНачала,
| ГоловнаяОрганизация,
| ФизическоеЛицо,
| ПериодЗаписи,
| Год,
| ПериодПредыдущейЗаписи,
| ВидСобытия,
| Организация,
| Должность,
| ГоловнойСотрудник,
| ЭтоГоловнойСотрудник,
| Подразделение,
| ДолжностьПоШтатномуРасписанию,
| КоличествоСтавок,
| ВидДоговора,
| РегистраторЗаписи,
| РегистраторСобытия,
| ПустойИнтервал>
|ИЗ
| ВТОтборовРазличныхСотрудников КАК ИзмеренияДаты
| <ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК РегистрСведений
| ПО (РегистрСведений.ДатаНачала <= КОНЕЦПЕРИОДА(ВЫБОР
| КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
| ИНАЧЕ ИзмеренияДаты.Период
| КОНЕЦ, ДЕНЬ))
| И (РегистрСведений.ДатаОкончания >= КОНЕЦПЕРИОДА(ВЫБОР
| КОГДА ИзмеренияДаты.Период = ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА ДАТАВРЕМЯ(3999, 12, 31, 23, 59, 59)
| ИНАЧЕ ИзмеренияДаты.Период
| КОНЕЦ, ДЕНЬ))
| И (РегистрСведений.Сотрудник = ИзмеренияДаты.Сотрудник)
| И (РегистрСведений.ФизическоеЛицо = ИзмеренияДаты.Сотрудник.ФизическоеЛицо)>
|ГДЕ
| ИСТИНА
| <ГДЕ
| РегистрСведений.Сотрудник.*,
| РегистрСведений.ФизическоеЛицо.*>
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТаблицаОтборов.Период КАК Период,
| ТаблицаОтборов.Сотрудник КАК Сотрудник,
| ТаблицаОтборов.ФизическоеЛицо КАК ФизическоеЛицо,
| КадроваяИсторияСотрудников.Организация КАК Организация,
| КадроваяИсторияСотрудников.Подразделение КАК Подразделение,
| КадроваяИсторияСотрудников.Должность КАК Должность,
| СведенияОВидахЗанятостиСотрудников.ВидЗанятости КАК ВидЗанятости,
| ТаблицаОтборов.ТабельныйНомер КАК ТабельныйНомер,
| ТаблицаОтборов.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| ЕСТЬNULL(ТекущиеКадровыеДанныеСотрудников.ДатаПриема, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаПриема,
| ЕСТЬNULL(ТекущиеКадровыеДанныеГоловныхСотрудников.ДатаУвольнения, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаУвольнения,
| СведенияОСостоянииСотрудников.Состояние КАК Состояние,
| СведенияОСостоянииСотрудников.ДействуетДо КАК ДействуетДо,
| КадроваяИсторияСотрудников.КоличествоСтавок КАК КоличествоСтавок,
| КадроваяИсторияСотрудников.ДатаНачала КАК ДатаНачала,
| КадроваяИсторияСотрудников.ДатаОкончания КАК ДатаОкончания,
| КадроваяИсторияСотрудников.ВидСобытия КАК ВидСобытия
|ПОМЕСТИТЬ ПредставленияКадровыеДанныеСотрудников
|ИЗ
| ВТОтборовРазличныхСотрудников КАК ТаблицаОтборов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
| ПО ТаблицаОтборов.Сотрудник = ТекущиеКадровыеДанныеСотрудников.Сотрудник
| <ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеГоловныхСотрудников
| ПО ТаблицаОтборов.ГоловнойСотрудникТаблицыРазличных = ТекущиеКадровыеДанныеГоловныхСотрудников.Сотрудник>
| <ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияКадровойИсторииСотрудников КАК КадроваяИсторияСотрудников
| ПО ТаблицаОтборов.Сотрудник = КадроваяИсторияСотрудников.Сотрудник
| И ТаблицаОтборов.Период = КадроваяИсторияСотрудников.Период>
| <ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОВидахЗанятостиСотрудников КАК СведенияОВидахЗанятостиСотрудников
| ПО ТаблицаОтборов.Сотрудник = СведенияОВидахЗанятостиСотрудников.Сотрудник
| И ТаблицаОтборов.Период = СведенияОВидахЗанятостиСотрудников.Период>
| <ЛЕВОЕ СОЕДИНЕНИЕ ВТСведенияОСостоянииСотрудников КАК СведенияОСостоянииСотрудников
| ПО ТаблицаОтборов.Сотрудник = СведенияОСостоянииСотрудников.Сотрудник
| И ТаблицаОтборов.Период = СведенияОСостоянииСотрудников.Период>
|;
|
|////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ ВТСведенияКадровойИсторииСотрудников
|;
|
|////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ ВТСведенияОВидахЗанятостиСотрудников
|;
|
|////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ ВТОтборовРазличныхСотрудников
|;
|
|////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ ВТСведенияОСостоянииСотрудников
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПредставленияКадровыеДанныеСотрудников.Период КАК Период,
| ПредставленияКадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
| ПредставленияКадровыеДанныеСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
| ПредставленияКадровыеДанныеСотрудников.Организация КАК Организация,
| ПредставленияКадровыеДанныеСотрудников.Подразделение КАК Подразделение,
| ПредставленияКадровыеДанныеСотрудников.Должность КАК Должность,
| ПредставленияКадровыеДанныеСотрудников.ВидЗанятости КАК ВидЗанятости,
| ПредставленияКадровыеДанныеСотрудников.ТабельныйНомер КАК ТабельныйНомер,
| ПредставленияКадровыеДанныеСотрудников.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| ПредставленияКадровыеДанныеСотрудников.ДатаПриема КАК ДатаПриема,
| ПредставленияКадровыеДанныеСотрудников.ДатаУвольнения КАК ДатаУвольнения,
| ПредставленияКадровыеДанныеСотрудников.Состояние КАК Состояние,
| ПредставленияКадровыеДанныеСотрудников.ДействуетДо КАК ДействуетДо,
| ПредставленияКадровыеДанныеСотрудников.Сотрудник.Наименование КАК Сотрудник_Наименование,
| ПредставленияКадровыеДанныеСотрудников.ФизическоеЛицо.Код КАК ФизическоеЛицо_Код,
| ПредставленияКадровыеДанныеСотрудников.ФизическоеЛицо.Наименование КАК ФизическоеЛицо_Наименование,
| ПредставленияКадровыеДанныеСотрудников.ФизическоеЛицо.ДатаРождения КАК ФизическоеЛицо_ДатаРождения,
| ПредставленияКадровыеДанныеСотрудников.Организация.ИНН КАК Организация_ИНН,
| ПредставленияКадровыеДанныеСотрудников.Организация.Наименование КАК Организация_Наименование,
| ПредставленияКадровыеДанныеСотрудников.Подразделение.Код КАК Подразделение_Код,
| ПредставленияКадровыеДанныеСотрудников.Подразделение.Наименование КАК Подразделение_Наименование,
| ПредставленияКадровыеДанныеСотрудников.Должность.Наименование КАК Должность_Наименование,
| ПредставленияКадровыеДанныеСотрудников.ГоловнаяОрганизация.Наименование КАК ГоловнаяОрганизация_Наименование,
| ПредставленияКадровыеДанныеСотрудников.КоличествоСтавок КАК Должность_КоличествоСтавок,
| ПредставленияКадровыеДанныеСотрудников.ДатаНачала КАК Должность_ДатаНачала,
| ПредставленияКадровыеДанныеСотрудников.ДатаОкончания КАК Должность_ДатаОкончания,
| ПредставленияКадровыеДанныеСотрудников.ВидСобытия КАК Должность_ВидСобытия
|ИЗ
| ПредставленияКадровыеДанныеСотрудников КАК ПредставленияКадровыеДанныеСотрудников
|ГДЕ
| ЕСТЬNULL(ПредставленияКадровыеДанныеСотрудников.Сотрудник, ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)
| И ((ПредставленияКадровыеДанныеСотрудников.ДатаУвольнения >= &ДатаОтчета
| ИЛИ ЕстьNull(ПредставленияКадровыеДанныеСотрудников.ДатаУвольнения, ДатаВремя(1,1,1)) = ДАТАВРЕМЯ(1,1,1))
| И (ПредставленияКадровыеДанныеСотрудников.ДатаПриема <= &ДатаОтчета
| И ЕстьNull(ПредставленияКадровыеДанныеСотрудников.ДатаПриема, ДатаВремя(1,1,1)) <> ДАТАВРЕМЯ(1,1,1)
| ИЛИ ЕСТЬNULL(ПредставленияКадровыеДанныеСотрудников.ВидЗанятости, ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ПустаяСсылка)
| И ЕстьNull(ПредставленияКадровыеДанныеСотрудников.ДатаПриема,ДатаВремя(1,1,1)) = ДАТАВРЕМЯ(1,1,1))) ";

Читать:
Как поменять камеру в браузере

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

Функция ПроверитьНаличиеПодработки(Сотрудник, ДатаНазначения)

СтруктураДанных = Новый Структура();

СтруктураДанных.Вставить("ДатаНачала",);
СтруктураДанных.Вставить("ДатаОкончания",);
СтруктураДанных.Вставить("РазмерОклада",);

ПараметрыПолучения = ПолучитьПараметры();
ПараметрыПолучения.Организация = ЭтотОбъект.Организация;

//Если ЗначениеЗаполнено(Подразделение) Тогда
// ПараметрыПолучения.Подразделение = Подразделение;
//КонецЕсли;

//Если ВключаяУволенныхНаНачалоПериода Тогда
// ПараметрыПолучения.ВключаяУволенныхНаНачалоПериода = Истина;
//КонецЕсли;

ПараметрыПолучения.НачалоПериода = НачалоМесяца(ДатаНазначения);
ПараметрыПолучения.ОкончаниеПериода = КонецМесяца(ДатаНазначения);
ПараметрыПолучения.ПодработкиРаботниковПоТрудовымДоговорам = Истина;
ПараметрыПолучения.РаботникиПоДоговорамГПХ = Ложь;

// ОТБОР ПО ВИДУ ЗАНЯТОСТИ РАБОТАЕТ ТОЛЬКО НАЧИНАЯ С РЕДАКЦИИ 3.1.7
//ЗарплатаКадрыОбщиеНаборыДанных.ДобавитьВКоллекциюОтбор(
// ПараметрыПолучения.Отборы, "ВидЗанятости", "=", Перечисления.ВидыЗанятости.Подработка);

ЗарплатаКадрыОбщиеНаборыДанных.ДобавитьВКоллекциюОтбор(
ПараметрыПолучения.Отборы, "ФизическоеЛицо", "=", Сотрудник.ФизическоеЛицо);

ТаблицаСотрудников = КадровыйУчет.СотрудникиОрганизации(Истина, ПараметрыПолучения);

&НаСервере
Функция ПолучитьПараметры()
Возврат КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц();
КонецФункции

Получение кадровых данных в конфигурации 1C ЗУП 3.1 с помощью БСП

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как вывести список сотрудников из 1с ЗиК

Аватар пользователя Valeratal

Посмотрите по пиктограммам: там или человечки нарисованы или желтый смайлик. А ещё лучше — по меню посмотрите в разделе «Журналы», если не ошибаюсь.:rolleyes:

Аватар пользователя Valeratal

в общем сделал с помощью произвольных отчетов, журнала сотрудников так и не нашел

Аватар пользователя Почемучка

Тема для меня болезненная и загадочная. Как не умела распречатывать списки сотрудников, так и не умею. У меня 5 баз по разным юр. лицам и такая проблема это все перенести на бумагу! Может я о-о-очень тупая, но с помощью помощника печати и с помощью произвольного отчета тоже ничего не получается.
Вот как и что делаю:
Справочник: сотрудники
построить отчет по кадровым данным
только отчет (без диаграмм и т.п.)
задайте имя отчету
укажите дату
разрезы отчета (указываю, что и в какой последовательности выводить) и ВСЁ. Дальшее какая-то дребедень.
ПОМОГИТЕ.
Очень падает самооценка:mad:

Аватар пользователя Ирина Александровна

А я нашего программиста 1С даже парила, так он мне ничего и не выдал путнего. В конце концов сказал, что проще в Excel набрать. Видимо не судьба.

Аватар пользователя Valeratal

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

1) Меню «Отчеты» —> Произвольные отчеты
2) Галка «Построить отчет по кадровым данным сотрудников» —> Далее
3) Галка «Только отчет» —> Далее
4) Ввести Название отчета (например, ФИО, должность, дата рождения), ввести дату —> Далее
5) Появится Разрез отчета — Сотрудник сортировать по подразделение —> Далее
6) Справа появится стандартный выбор. (№, ФИО, Дата рождения, оклад, ИНН, Старховой номер ПФР — ну или не появится)Кликните на Оклад —> Кнопка Удалить
ИНН —> Кнопка Удалить, Страховой номер ПФР —> Кнопка Удалить
7) Кликнуть на кнопку «Новая», из появившегося меню в пункте «Реквизит» выбрать «Наименование должности» —> ОК
8) Кликнуть «Готово»
9) Появится Список с 4-мя графами: №, ФИО, Дата рождения, Должность
10) Скопировать — Вставить в Excel.

Похожие статьи