8.х История должностей сотрудника

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Lhfrjy, 20 ноя 2012.

  1. TopicStarter Overlay
    Lhfrjy
    Offline

    Lhfrjy Опытный в 1С

    Регистрация:
    4 фев 2011
    Сообщения:
    66
    Симпатии:
    0
    Баллы:
    26
    Как за определенный период, скажем квартал, получить список всех должностей, которые занимал сотрудник....
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Кадровая история сотрудников организаций
  3. TopicStarter Overlay
    Lhfrjy
    Offline

    Lhfrjy Опытный в 1С

    Регистрация:
    4 фев 2011
    Сообщения:
    66
    Симпатии:
    0
    Баллы:
    26
    А если подробнее.
  4. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Регистр сведений "РаботникиОрганизаций".
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Это если через конфигуратор. В пользовательском режиме он называется Кадровая история сотрудников (организации) или в кадровом интерфейсет Кадровый учет - кадровая история сотрудников.
    а еще открыв в спрв Сорудника - вверху есть кнопа перейти - Данные сотрудника (обработка) или alt+F12
  6. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Он все равно запрос писать будет. Хотя...хз... :D
  7. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Да зачем запрос. Там можно все глянуть или универсальный отчет по регистрам
  8. TopicStarter Overlay
    Lhfrjy
    Offline

    Lhfrjy Опытный в 1С

    Регистрация:
    4 фев 2011
    Сообщения:
    66
    Симпатии:
    0
    Баллы:
    26
    Да я буду писать запрос, не хз...

    Но проблема в следующем: в регистре РабтникиОрганизацииСрезПоследних хранятся последние записи на дату среза.

    Мне-же нужно получить все должности сотрудника за указанный период.

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


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

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    если нужны все должности, то зачем СрезПоследних? используйте сам регистр, а не его виртуальную таблицу

    З.Ы. оформляйте код тегами, ну не удобоваримо же нагромождение текста разбирать
  10. TopicStarter Overlay
    Lhfrjy
    Offline

    Lhfrjy Опытный в 1С

    Регистрация:
    4 фев 2011
    Сообщения:
    66
    Симпатии:
    0
    Баллы:
    26
    Я первый раз размещал запрос, думал что нормально будет выглядеть, а получилась на экране хрень какая-то.

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

    Тогда попутно еще вопрос: как получить по физлицу его последнего сотрудника?
  11. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    По тамуже регистру Срез последних с отбором по ПриячинеИзмененияСостояния=ПриемНаРАботу и отбором по физ лицу, и сортировкой по убыванию и брать первую запись

Поделиться этой страницей