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

Группировка в отчете по СКД

Автор @ Ириша @, 08 мая 2015, 14:33

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

@ Ириша @

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


Kironten

Цитата: @ Ириша @ от 08 мая 2015, 14:33
Добрый день! у меня вот какая проблемка вышла, создала отчет с помощью СКД, не могу вывести общие итоги количества сотрудников по подразделениям.
Запрос содержит вложенные запросы и временные таблицы...
Когда в СКД, в ресурсах добавляю суммирующее поле, выходные данные становятся не правильными, если не добавляю ресурс то все правильно работает, но не выводятся общие итоги по подразделениям.
Согласно скрину у Вас считаются итоги по подразделениям. В чем проблема?

Дмитрий@

Количество принятых работников в ресурсы добавьте.

nemox

Хорошо бы текст запроса посмотреть

@ Ириша @

Цитата: nemox от 10 мая 2015, 13:11
Хорошо бы текст запроса посмотреть

Вот :trhregerhg:

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

СГРУППИРОВАТЬ ПО
   СостояниеРаботников.Состояние,
   СостояниеРаботников.Подразделение,
   БудущиеНамеченныеСобытия.Период,
   СостояниеРаботников.Регистратор

ИМЕЮЩИЕ
   БудущиеНамеченныеСобытия.Период >= &Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЗанятыеШтатныеЕдиницыОрганизацийОстаткиИОбороты.ПодразделениеОрганизации,
   ЗанятыеШтатныеЕдиницыОрганизацийОстаткиИОбороты.Должность,
   СУММА(ЗанятыеШтатныеЕдиницыОрганизацийОстаткиИОбороты.КоличествоСтавокКонечныйОстаток) КАК КолПринятыхРаботников
ПОМЕСТИТЬ ВТ2
ИЗ
   РегистрНакопления.ЗанятыеШтатныеЕдиницыОрганизаций.ОстаткиИОбороты КАК ЗанятыеШтатныеЕдиницыОрганизацийОстаткиИОбороты

СГРУППИРОВАТЬ ПО
   ЗанятыеШтатныеЕдиницыОрганизацийОстаткиИОбороты.ПодразделениеОрганизации,
   ЗанятыеШтатныеЕдиницыОрганизацийОстаткиИОбороты.Должность
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТ2.ПодразделениеОрганизации,
   ВТ2.Должность,
   ВТ2.КолПринятыхРаботников,
   ВТ1.Состояние,
   ВТ1.КолФизЛиц,
   ВТ1.Регистратор
ИЗ
   ВТ2 КАК ВТ2
      ЛЕВОЕ СОЕДИНЕНИЕ ВТ1 КАК ВТ1
      ПО ВТ2.ПодразделениеОрганизации = ВТ1.Подразделение
Добавлено: 11 мая 2015, 14:06


Цитата: Дмитрий@ от 08 мая 2015, 19:58
Количество принятых работников в ресурсы добавьте.

Когда добавляю в ресурс, не правильно выводит данные, громадные числа получаются :dfbsdfbsdf:
Добавлено: 11 мая 2015, 14:20


Цитата: Дмитрий@ от 08 мая 2015, 19:58
Количество принятых работников в ресурсы добавьте.
Вот так получается

Дмитрий@

Вас не устраивают Количество принятых работников в ежегодном отпуске?

Добавлено: 11 мая 2015, 14:48


ЦитироватьРегистрНакопления.ЗанятыеШтатныеЕдиницыОрганизаций.ОстаткиИОбороты КАК ЗанятыеШтатныеЕдиницыОрганизацийОстаткиИОбороты
Этот регистр показывает сколько ставок было занято, а не сколько было принято на работу, Физические лица могут занимать несколько ставок.
Добавлено: 11 мая 2015, 16:05


Еще меня смущает, что итоговое количество физ лиц у вас может считаться неправильно, например одно физ лицо может работать в разных подразделениях, поэтому у вас итоговое количество физ лицо на одно будет больше.
Добавлено: 11 мая 2015, 16:37


Посмотрите этот отчет может он вам подойдет
Добавлено: 11 мая 2015, 16:38


Только в отчете организацию укажите

@ Ириша @

Цитата: Дмитрий@ от 11 мая 2015, 14:44
Вас не устраивают Количество принятых работников в ежегодном отпуске?

Добавлено: 11 мая 2015, 14:48


ЦитироватьРегистрНакопления.ЗанятыеШтатныеЕдиницыОрганизаций.ОстаткиИОбороты КАК ЗанятыеШтатныеЕдиницыОрганизацийОстаткиИОбороты
Этот регистр показывает сколько ставок было занято, а не сколько было принято на работу, Физические лица могут занимать несколько ставок.
Добавлено: 11 мая 2015, 16:05


Еще меня смущает, что итоговое количество физ лиц у вас может считаться неправильно, например одно физ лицо может работать в разных подразделениях, поэтому у вас итоговое количество физ лицо на одно будет больше.
Добавлено: 11 мая 2015, 16:37


Посмотрите этот отчет может он вам подойдет
Добавлено: 11 мая 2015, 16:38


Только в отчете организацию укажите
Спасибо большое,но у меня старая версия ЗУП ...
И к моему счастью отменили этот отчет :zebzdr:

Теги:

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

Рейтинг@Mail.ru

Поиск