|
ЗУП 3.1 Получить кадровые данные сотрудника запросом | ☑ | ||
---|---|---|---|---|
0
Dimon1C
15.11.17
✎
12:56
|
Добрый день. Изучаю ЗУП 3.1.
Необходимо в запросе получить должность и подразделение сотрудника на заданную дату. Насколько корректен такой запрос: ВЫБРАТЬ КадроваяИсторияСотрудниковИнтервальный.Сотрудник КАК Сотрудник, КадроваяИсторияСотрудниковИнтервальный.Должность КАК Должность, КадроваяИсторияСотрудниковИнтервальный.Подразделение КАК Подразделение ИЗ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК КадроваяИсторияСотрудниковИнтервальный ГДЕ КадроваяИсторияСотрудниковИнтервальный.ДатаНачала <= КОНЕЦПЕРИОДА(&Период, ДЕНЬ) И КадроваяИсторияСотрудниковИнтервальный.ДатаОкончания >= КОНЕЦПЕРИОДА(&Период, ДЕНЬ) И КадроваяИсторияСотрудниковИнтервальный.Сотрудник = &Сотрудник |
|||
1
Gucci76
15.11.17
✎
12:59
|
Может еще знающие люди подскажут чем регистр сведений отличаается от регистра сведений "....интервальный"?
Кстати, была относительно недавно тема похожая. |
|||
2
Gucci76
15.11.17
✎
13:19
|
||||
3
Gucci76
15.11.17
✎
13:20
|
||||
4
Dimon1C
15.11.17
✎
13:36
|
(2) Да есть там программный интерфейс, пытался оттуда достать запрос, но что то не осилил. Если программно, то да использовать функцию КадровыйУчет.КадровыеДанныеСотрудников удобно.
|
|||
5
SleepyHead
гуру
15.11.17
✎
13:38
|
||||
6
Gucci76
15.11.17
✎
13:40
|
(5) Спасибо
|
|||
7
Gucci76
15.11.17
✎
13:43
|
А в ветке (5) так и не ответили - можно ли удалять эти регистры )))
|
|||
8
Alexandr_U1982
15.11.17
✎
13:51
|
(4)А вам нужно НЕ программно?
|
|||
9
Dimon1C
15.11.17
✎
14:00
|
(8) Хочу запросом без всяких программных интерфейсов, просто запрос к регистрам. Да я понимаю, что 1С может в будущем изменить структуру.
|
|||
10
kumena
15.11.17
✎
14:17
|
а это условие из пятого поста не правильно работает?
ДатаАктуальности >=ДатаНачала И ДатаАктуальности <=ДатаОкончания. |
|||
11
RomaH
naïve
15.11.17
✎
14:18
|
странно конечно все это
как раз было мнение, что в ЗУП 2.5 регистр с "ПериодЗавершения" - это очень элегантное и удобное решение и тут на тебе - вторая смена получаем зоопарк регистров которые еще и не работают ИМХО - добавить свой регистр из ЗУП 2.5 и писать подпиской туда кадровую историю сотров единственная неприятность - надо этот регистр в движения документов прописывать ... хотя если повесить подписику на отмену проведения - то прокатит из плюсов получим прозрачную систему + возможность использовать старые отчеты |
|||
12
RomaH
naïve
15.11.17
✎
14:19
|
(10) там в пятом посте есть 6 пост с примером когда сам регистр заполняется неверно
|
|||
13
kumena
15.11.17
✎
14:19
|
+11 ия ия ия того же мнения! )))
вот разницы нифига не понял. |
|||
14
kumena
15.11.17
✎
14:21
|
ну там дело было летом, наверняка уже затычку-проверку вотнули насчет того, что старые перемещения нельзя трогать.
|
|||
15
RomaH
naïve
15.11.17
✎
14:29
|
(11) хотя в ЗУП 2.5 это вызывало косяк в таком случае
01/01 - директор 20/02 - 30/03 - сторож 15/03/-20/03 - водитель отмена проведения второго документа |
|||
16
Alexandr_U1982
15.11.17
✎
15:03
|
(9)А зачем так хочешь?
|
|||
17
kumena
22.11.17
✎
12:36
|
> А зачем так хочешь?
а энтот новомодный программный интерфейс позволяет 1. все данные выбрать одним запросом? 2. сделать обход результата по группировкам? |
|||
18
kumena
22.11.17
✎
12:38
|
все данные одним запросом - это сведения о сотруднике ну и допустим, какие то настройки организации.
|
|||
19
AlexZZZ
22.11.17
✎
12:43
|
(16) И как получить запросом данные в COM ?
|
|||
20
dft2014
22.11.17
✎
12:49
|
(0) Ответ дан в ссылке в (3). В функцию КадровыйУчет.КадровыеДанныеСотрудников(Истина, СписокСотрудников, , , ТекущаяДата(), ) подставляй своих сотрудников и нужную дату.
Только мне не совсем понятно как работает функция, если я хочу сделать отбор еще и по подразделению? Alexandr_U1982, не подскажите? Из комментария к параметру пять: ПоляОтбораПериодическихДанных - Структура, в качестве ключа указывается имя таблицы, содержащей // периодические данные (например ФИОФизическихЛиц, ГражданствоФизическихЛиц). // В качестве значений коллекция условий отбора, // соединяемых по "И" и применяемых к регистру сведений. // Коллекция строки которой имеют поля. // * ЛевоеЗначение - строка, имя поля регистра сведений. // * ВидСравнения - строка, вид сравнения, допустимый в языке запросов. // * ПравоеЗначение - значение для сравнения с полем ЛевоеЗначение. |
|||
21
kumena
22.11.17
✎
13:16
|
(20) девушка, учитесь писать запросы одним запросом, а Сашка вас плохому научит! )
|
|||
22
Alexandr_U1982
22.11.17
✎
13:27
|
(17)
1. Может. 2. С помощью программного интерфейса можно создать временную таблицу с нужными вам данными в менеджере временных таблиц. Группировать и выводить данные из нее вы можете как угодно. |
|||
23
Alexandr_U1982
22.11.17
✎
13:28
|
(18)С помощью программного интерфейса создаете временные таблицы и затем соединяете их как вам будет угодно.
|
|||
24
Alexandr_U1982
22.11.17
✎
13:31
|
(19) Не приходилось еще получать данные из тройки через COM, поэтому личным опытом поделиться не могу.
Думаю, что это возможно сделать с помощью процедур и функций программного интерфейса. |
|||
25
supersonic
22.11.17
✎
13:33
|
(20) Была такая нужда сегодня.
Поместил тз в запрос и там уже делал нужные мне отборы. |
|||
26
AlexZZZ
22.11.17
✎
15:06
|
(24) Требуется получить сотрудников, работающих на дату с видом занятости - внешнее совместительство через COM. Раньше делалось запросом.
Даже если делать через функции общего модуля и выполнять их через COM соединение - все равно там есть в параметрах - Список сотрудников - считывать весь справочник ? |
|||
27
Alexandr_U1982
22.11.17
✎
16:01
|
(20)(25)Сходу ответить не могу. Я подумаю над вашими вопросами, когда появится свободное время. Сейчас его как-то на текущие дела не хватает.
|
|||
28
Alexandr_U1982
28.11.17
✎
18:31
|
(20)(26) Думаю, вам подойдет функция КадровыйУчет.СотрудникиОрганизации(ТолькоРазрешенные, Параметры)
// Возвращает таблицу значений, заполненную сотрудниками. // // Параметры: // ТолькоРазрешенные - Булево // Параметры - Структура, подготовленная с помощью методов // ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц, // ПараметрыПолученияСотрудниковОрганизацийПоВременнойТаблице // // Возвращаемое значение: // ТаблицаЗначений - Таблица значений, содержащая поля // * Период - Дата, равен значению ключа ОкончаниеПериода параметра Параметры // * Сотрудник - СправочникСсылка.Сотрудники // * ФизическоеЛицо - СправочникСсылка.ФизическиеЛица // <кадровые данные> - указанные в ключе КадровыеДанные параметра Параметры Функции для формирования параметра "Параметры": КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц() // Возвращает структуру параметров для СоздатьВТСотрудникиОрганизаций. // // Возвращаемое значение: // Структура - Содержит ключи: // Организация - СправочникСсылка.Организации, если параметр опустить в таблицу войдут все сотрудник // независимо от организации. // ОтбиратьПоГоловнойОрганизации - если Истина, то отбор по головной организации, иначе по текущей организации. // По умолчанию - ЛОЖЬ // Подразделение - СправочникСсылка.ПодразделенияОрганизаций, в таблицу войдут сотрудники указанного подразделения // и всех подразделений, подчиненных указанному, если параметр опустить в таблицу войдут все сотрудники. // СписокФизическихЛиц - Массив ссылок на элементы справочника ФизическиеЛица, если параметр опустить, // в таблицу войдут сотрудники всех физических лиц когда либо работавших в Организации. // НачалоПериода - Дата, значение по умолчанию '00010101'. Если параметр устанавливается, параметр ОкончаниеПериода // обязателен к заполнению. // ОкончаниеПериода - Дата, значение по умолчанию '00010101'. При установке должно выполняться условие // ОкончаниеПериода >= НачалоПериода. Используется для выборки кадровых данных сотрудников, если // параметр не указан, выборка будет производиться на текущую дату сеанса. // КадровыеДанные - Строка, содержит список полей кадровых данных, см. описание к функции КадровыеДанныеСотрудников. // Отборы - Массив, структур описывающих отборы сотрудников // см. ЗарплатаКадрыОбщиеНаборыДанных.ДобавитьВКоллекциюОтбор, // допустимые отборы описаны см. КадровыйУчет.КритерииПоискаСотрудниковПоКоллекцииОтборов |
|||
29
Alexandr_U1982
28.11.17
✎
18:32
|
(20)(26)Либо функция КадровыйУчет.СоздатьВТСотрудникиОрганизации(МенеджерВременныхТаблиц, ТолькоРазрешенные, Параметры, ИмяВТСотрудникиОрганизации = "ВТСотрудникиОрганизации")
// Формирует временную таблицу ВТСотрудникиОрганизации, содержащую поля Сотрудник и ФизическоеЛицо. // Если заданы параметры НачалоПериода и ОкончаниеПериода метод вернет список сотрудников, работавших // в заданном периоде. Если НачалоПериода и ОкончаниеПериода заданы и равны сформирует таблицу. // Сотрудников работавших на заданную дату. // // Параметры: // МенеджерВременныхТаблиц // ТолькоРазрешенные - Булево // Параметры - Структура, подготовленная с помощью метода ПараметрыПолученияСотрудниковОрганизаций. // ИмяВТСотрудникиОрганизации - Строка // Функция для формирования параметра "Параметры": КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц() // Возвращает структуру параметров для СоздатьВТСотрудникиОрганизаций. // // Возвращаемое значение: // Структура - Содержит ключи: // Организация - СправочникСсылка.Организации, если параметр опустить в таблицу войдут все сотрудник // независимо от организации. // ОтбиратьПоГоловнойОрганизации - если Истина, то отбор по головной организации, иначе по текущей организации. // По умолчанию - ЛОЖЬ // Подразделение - СправочникСсылка.ПодразделенияОрганизаций, в таблицу войдут сотрудники указанного подразделения // и всех подразделений, подчиненных указанному, если параметр опустить в таблицу войдут все сотрудники. // СписокФизическихЛиц - Массив ссылок на элементы справочника ФизическиеЛица, если параметр опустить, // в таблицу войдут сотрудники всех физических лиц когда либо работавших в Организации. // НачалоПериода - Дата, значение по умолчанию '00010101'. Если параметр устанавливается, параметр ОкончаниеПериода // обязателен к заполнению. // ОкончаниеПериода - Дата, значение по умолчанию '00010101'. При установке должно выполняться условие // ОкончаниеПериода >= НачалоПериода. Используется для выборки кадровых данных сотрудников, если // параметр не указан, выборка будет производиться на текущую дату сеанса. // КадровыеДанные - Строка, содержит список полей кадровых данных, см. описание к функции КадровыеДанныеСотрудников. // Отборы - Массив, структур описывающих отборы сотрудников // см. ЗарплатаКадрыОбщиеНаборыДанных.ДобавитьВКоллекциюОтбор, // допустимые отборы описаны см. КадровыйУчет.КритерииПоискаСотрудниковПоКоллекцииОтборов |
|||
30
Alexandr_U1982
28.11.17
✎
18:33
|
(20) Пример получения сотрудников с отбором по подразделению:
ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц(); ПараметрыПолученияСотрудников.Организация = Организация; ПараметрыПолученияСотрудников.Подразделение = Подразделение; ПараметрыПолученияСотрудников.ОкончаниеПериода = Период; ТаблицаСотрудников = КадровыйУчет.СотрудникиОрганизации(Истина, ПараметрыПолученияСотрудников); |
|||
31
Alexandr_U1982
28.11.17
✎
18:37
|
(26)Пример получения сотрудников на указанную дату по выбранным графикам работы:
ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц(); ПараметрыПолученияСотрудников.НачалоПериода = Период; ПараметрыПолученияСотрудников.ОкончаниеПериода = Период; Отборы = Новый Массив; ЗарплатаКадрыОбщиеНаборыДанных.ДобавитьВКоллекциюОтбор(Отборы, "ГрафикРаботы", "В", МассивГрафиковРаботы); ПараметрыПолученияСотрудников.Отборы = Отборы; СотрудникОрганизаций = КадровыйУчет.СотрудникиОрганизации(Ложь, ПараметрыПолученияСотрудников); Думаю, подобным образом можно сделать и отбор по виду занятости. |
|||
32
Gucci76
28.11.17
✎
18:52
|
(31) Спасибо.
Думаю и мне пригодится !! )) |
|||
33
AlexZZZ
29.11.17
✎
09:40
|
(31) Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |