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

Объединение двух отчетов СКД 8.3

Автор @ Ириша @, 01 дек 2015, 10:50

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

@ Ириша @

Добрый день, уважаемые!

Такой вопрос возник как соединить 2 отчета табличного вида в СКД :dfbbdrfb:, где связь дается по подразделению? Ниже указала их

Отчет 1

ВЫБРАТЬ РАЗРЕШЕННЫЕ
&ДатаНачала КАК ДатаНачала,
&ДатаОкончания КАК ДатаОкончания,
Сотрудники.Ссылка КАК Сотрудник
ПОМЕСТИТЬ ВТСотрудники
ИЗ
Справочник.Сотрудники КАК Сотрудники
{ГДЕ
Сотрудники.Ссылка.* КАК Сотрудник}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Сотрудники.Сотрудник,
&ДатаОтчета КАК Период
ПОМЕСТИТЬ ВТСотрудникДляСрезаФИО
ИЗ
ВТСотрудники КАК Сотрудники
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник
ПОМЕСТИТЬ Представления_КадровыеДанныеСотрудников
ИЗ
ВТСотрудникДляСрезаФИО КАК СотрудникДляСрезаФИО
ГДЕ
"ТолькоРазрешенные" = ИСТИНА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник,
ДАТАВРЕМЯ(1, 1, 1) КАК Дата,
ЗНАЧЕНИЕ(Справочник.ВидыИспользованияРабочегоВремени.ПустаяСсылка) КАК ВидУчетаВремени,
0 КАК Дни,
0 КАК Часы,
ЛОЖЬ КАК Отклонение,
0 КАК НормаЧасов,
ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация,
ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК Подразделение
ПОМЕСТИТЬ Представления_ДанныеУчетаВремениИСостоянийСотрудников
{ВЫБРАТЬ
НормаЧасов}
ИЗ
ВТСотрудники КАК ВТСотрудники
ГДЕ
"ТолькоРазрешенные" = ИСТИНА
И "ДатаНачала" = &ДатаНачала
И "ДатаОкончания" = &ДатаОкончания
И "МесяцДатаНачала" = &МесяцДатаНачала
И "МесяцДатаОкончания" = &МесяцДатаОкончания
И "ДатаАктуальности" = &ДатаОтчета
И "ПолучатьДанныеПла" = &РассчитыватьПлановоеВремя
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ДанныеУчетаВремениИСостоянийСотрудников.Сотрудник КАК Сотрудник,
ДанныеУчетаВремениИСостоянийСотрудников.Организация КАК Организация,
ВЫБОР
  КОГДА &ВыводитьВРазрезеПодразделений
   ТОГДА ДанныеУчетаВремениИСостоянийСотрудников.Подразделение
  ИНАЧЕ ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
КОНЕЦ КАК Подразделение,
ВЫБОР
  КОГДА ОписаниеВидовВремени.Ссылка = &Явка
   ТОГДА 1
  КОГДА ОписаниеВидовВремени.ОсновноеВремя = &Явка
   ТОГДА 2
  КОГДА ОписаниеВидовВремени.Ссылка = &ВечерниеЧасы
   ТОГДА 3
  КОГДА ОписаниеВидовВремени.ОсновноеВремя = &ВечерниеЧасы
   ТОГДА 3
  КОГДА ОписаниеВидовВремени.Ссылка = &НочныеЧасы
   ТОГДА 5
  КОГДА ОписаниеВидовВремени.ОсновноеВремя = &НочныеЧасы
   ТОГДА 6
  КОГДА ОписаниеВидовВремени.Ссылка = &Сверхурочно
   ТОГДА 7
  КОГДА ОписаниеВидовВремени.ОсновноеВремя = &Сверхурочно
   ТОГДА 8
  ИНАЧЕ 9
КОНЕЦ КАК ПриоритетВидаВремени,
ДанныеУчетаВремениИСостоянийСотрудников.Дни,
ДанныеУчетаВремениИСостоянийСотрудников.Часы,
ДанныеУчетаВремениИСостоянийСотрудников.Дата КАК Дата,
ВЫБОР
  КОГДА ОписаниеВидовВремени.РабочееВремя
    И ОписаниеВидовВремени.ОсновноеВремя <> ЗНАЧЕНИЕ(Справочник.ВидыИспользованияРабочегоВремени.ПустаяСсылка)
   ТОГДА ДанныеУчетаВремениИСостоянийСотрудников.Часы
  ИНАЧЕ 0
КОНЕЦ КАК РабочиеЧасы,
ОписаниеВидовВремени.Ссылка КАК ВидУчетаВремени,
ДанныеУчетаВремениИСостоянийСотрудников.Отклонение КАК Отклонение,
ДанныеУчетаВремениИСостоянийСотрудников.Сотрудник КАК СотрудникКоличество
{ВЫБРАТЬ
Сотрудник.*,
Организация.*,
Подразделение.*,
ВидУчетаВремени.*,
Сотрудник.*}
ИЗ
Представления_ДанныеУчетаВремениИСостоянийСотрудников КАК ДанныеУчетаВремениИСостоянийСотрудников
  ВНУТРЕННЕЕ СОЕДИНЕНИЕ Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников
  ПО ДанныеУчетаВремениИСостоянийСотрудников.Сотрудник = Представления_КадровыеДанныеСотрудников.Сотрудник
  ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыИспользованияРабочегоВремени КАК ОписаниеВидовВремени
  ПО ДанныеУчетаВремениИСостоянийСотрудников.ВидУчетаВремени = ОписаниеВидовВремени.Ссылка
ГДЕ
ДанныеУчетаВремениИСостоянийСотрудников.ВидУчетаВремени <> &РабочееВремя
И (ОписаниеВидовВремени.Ссылка = &Явка
   ИЛИ ОписаниеВидовВремени.Ссылка = &НочныеЧасы
   ИЛИ ОписаниеВидовВремени.Ссылка = &Сверхурочно)
{ГДЕ
ДанныеУчетаВремениИСостоянийСотрудников.Подразделение КАК ПодразделениеОтбор,
ДанныеУчетаВремениИСостоянийСотрудников.Организация КАК ОрганизацияОтбор}

Отчет 2

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
СостоянияСотрудников.Сотрудник КАК Сотрудник,
НАЧАЛОПЕРИОДА(&ОкончаниеПериода, ДЕНЬ) КАК Период
ПОМЕСТИТЬ ВТИзмеренияДатыДляСрезаПоследних
ИЗ
ВТСостоянияСотрудников КАК СостоянияСотрудников
;

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Представления_СрезПоследних_ГрафикРаботыСотрудников.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ ВТСотрудники
ИЗ
Представления_СрезПоследних_ГрафикРаботыСотрудников КАК Представления_СрезПоследних_ГрафикРаботыСотрудников
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник,
ДАТАВРЕМЯ(1, 1, 1) КАК Дата,
ЗНАЧЕНИЕ(Справочник.ВидыИспользованияРабочегоВремени.ПустаяСсылка) КАК ВидУчетаВремени,
0 КАК ДнейПлан,
0 КАК ЧасовПлан
ПОМЕСТИТЬ Представления_ПлановоеВремя
ИЗ
ВТСотрудники КАК ВТСотрудники
ГДЕ
"ТолькоРазрешенные" = ИСТИНА
И "ДатаНачала" = &НачалоПериода
И "ДатаОкончания" = &ОкончаниеПериода
И "ДатаАктуальности" = &ОкончаниеПериода
;

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

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

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
СостоянияСотрудниковСПодразделениемИКалендарем.Организация,
СостоянияСотрудниковСПодразделениемИКалендарем.Подразделение,
СостоянияСотрудниковСПодразделениемИКалендарем.Сотрудник,
СостоянияСотрудниковСПодразделениемИКалендарем.Состояние,
СостоянияСотрудниковСПодразделениемИКалендарем.Период,
СостоянияСотрудниковСПодразделениемИКалендарем.ДействуетДо,
СостоянияСотрудниковСПодразделениемИКалендарем.НачалоПодсчета,
СостоянияСотрудниковСПодразделениемИКалендарем.ОкончаниеПодсчета,
СостоянияСотрудниковСПодразделениемИКалендарем.ОкончаниеПредположительно,
0,
0,
0,
0,
0,
0
ИЗ
ВТСостоянияСотрудниковСПодразделениемИКалендарем КАК СостоянияСотрудниковСПодразделениемИКалендарем
;

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

СГРУППИРОВАТЬ ПО
СостоянияДни.Период,
СостоянияДни.ДействуетДо,
СостоянияДни.ОкончаниеПредположительно,
СостоянияДни.Сотрудник,
СостоянияДни.Состояние,
СостоянияДни.Организация,
СостоянияДни.Подразделение

@ Ириша @

Цитата: @ Ириша @ от 01 дек 2015, 10:50
Не правильно поставила запрос 1, вот правильный

Отчет 1

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

СГРУППИРОВАТЬ ПО
ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение,
СостоянияСотрудников.Период,
СостоянияСотрудников.Состояние,
СостоянияСотрудников.ДействуетДо


Добавлено: 02 дек 2015, 14:27


Приложила отчеты
Так нагляднее :wacko:

Artem6237

Закладка скд "Связи наборов данных"?

Теги: скд 

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

Рейтинг@Mail.ru

Поиск