Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 00:48

Отчет Шатная расстановка

Автор Ахтынбей, 19 дек 2015, 15:02

0 Пользователей и 1 гость просматривают эту тему.

Ахтынбей

Хочу сделать отчет "Штатная расстановка" по форме. Подскажите алгоритм действий. Где брать данные и как их связать. Интересно сделать самому.
Платформа 1С 8.2.19.102, ЗУП 2.5.88.2

vitasw

Цитата: Ахтынбей от 19 дек 2015, 15:02Интересно сделать самому.
Ну, как бы... если самому - то к чему вопросы? Объяснить алгоритм, принципы связи, источники данных, потом еще и примеры дать - это не называется "сделать самому". Если охота изобретать велосипед - так давате приложите силы самостоятельно.
Все по-чесному.

Андрей Сисюкин

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

в данный момент у меня модуль Telepat.dll не загружен - поэтому больше ничего сказать не могу.

LexaK

данные берете из РС.РаботникиОрганизаций
вот примерный кусок кода (вырезан из большого запроса для примера)
дата1 и дата2 это период нахождения сотрудника в каком-то состоянии, будьте внимательны с состоянием: Перемещение, там засада.

|ВЫБРАТЬ //первые 1000
| Рег.Сотрудник,
| Рег.Должность,
| Рег.ПодразделениеОрганизации,
| Рег.Период как Дата1,
| ЕстьNull(ТабУв0.Период,ЕстьNull(ТабПер0.Период,ДатаВремя(2100,1,1))) как Дата2, //если конечной даты нет
| ЕстьNull(ТабУв0.ПричинаИзмененияСостояния,ТабПер0.ПричинаИзмененияСостояния) как Причина,
| Рег.ЗанимаемыхСтавок
|поместить Пром
|ИЗ
| РегистрСведений.РаботникиОрганизаций КАК Рег
|
если помогло нажмите: Спасибо!

Ахтынбей

Регистр РаботникиОрганизации не совсем подходит. Мне нужны вакансии и заштатники. Самый простой способ связать рег.ШтанноеРасписание и Спр.Сотрудники по должности и подразделению. Но мне такой вариант не очень нравится. Может еще где-нибудь хранится информация

LexaK

ну-ну, можете еще попробовать документы приема на работу запросами анализировать,
там и сотрудники есть, и оклад, и должности!
:btbzdb:
если помогло нажмите: Спасибо!

Ахтынбей

Сейчас пробую связать Рег.ШтатноеРасписание и рег.РаботникиОрганизации, на там связка двойная по подразделению и по должности, что мне кажется не очень хорошо. Хотя вакансии в приказах выбираются именного так (стандартный ЗУП)
Добавлено: 24 дек 2015, 14:43


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

УПОРЯДОЧИТЬ ПО
   ПодразделениеОрганизации,
   Должность

Теги: отчеты 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск