Версия для печати темы (https://pro1c.org.ua/index.php?s=3f36b6454a99747a48b61cf771127a59&showtopic=18992)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Отчет по отпускам

Автор: kosalex 25.07.14, 9:27

Колонки отчета:

ФИО|Отдел|Должность|Вид отпуска|Начала отпуска|Окончание отпуска|Период отпуска|Основание для предоставление отпуска|№ приказа|Дата приказа|Кол-во дней

Помогите с запросом для этого отчета. Пишу так, не получается получить желаемое...
Нужно чтобы в отчете отображалось подразделение и должность на момент отпуска.

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



Подразделение и должность беру из РС "РаботникиОрганизации", помогите с условием Объединения...

Автор: kosalex 25.07.14, 12:40

Перенесите пожалуйста тему в раздел для программистов

Помогите с запросом!
Нужно выбрать всех сотрудников из док. "Отпуска организации" и подставить этим сотрудникам подразделение и должность на момент начала отпуска

Автор: Petre 25.07.14, 14:13

Ну так срез же, как я понимаю...

Автор: kosalex 28.07.14, 9:52

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

СГРУППИРОВАТЬ ПО
    ОтпускаОрганизацийРаботникиОрганизации.ДатаОкончания,
    ВЫРАЗИТЬ(ОтпускаОрганизацийРаботникиОрганизации.Основание КАК СТРОКА(1000)),
    ОтпускаОрганизацийРаботникиОрганизации.ВидОтпуска,
    ОтпускаОрганизацийРаботникиОрганизации.Сотрудник,
    ОтпускаОрганизацийРаботникиОрганизации.КвоДней,
    ОтпускаОрганизацийРаботникиОрганизации.Сотрудник.Код,
    ОтпускаОрганизацийРаботникиОрганизации.ДатаНачала,
    ОтпускаОрганизацийРаботникиОрганизации.ДатаНачала
;

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



В конструкторе запросов не выводит поля "ПодразделениеОрганизации" и "Должность"....
Посмотрите плиз!

Конфа. УПП 1.3.29.2 Укр.

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

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

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

Автор: sava1 28.07.14, 10:04

Все выводит. По крайней мере в СКД.

А вот эта хрень -

Цитата(kosalex @ 28.07.14, 10:52) *
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
        ПО ВТ_Отпуск.Сотрудник = РаботникиОрганизаций.Сотрудник
ГДЕ
    ВТ_Отпуск.ПериодРС = РаботникиОрганизаций.Период


это внутреннее соединение

Автор: kosalex 28.07.14, 10:08

Цитата(sava1 @ 28.07.14, 11:04) *
Все выводит. По крайней мере в СКД.

А вот эта хрень -


это внутреннее соединение



Т.е. галочку с "Все" нужно снять?

Автор: sava1 28.07.14, 10:16

Типо "ДА"

Автор: kosalex 28.07.14, 10:22

В запросе данные берутся "ВСЕ" не органичивають периодом, в отчете хочу ограничивать периодом "Дата начала", "Дата окончания" .

Делаю так:




Не получается желаемое...

Автор: sava1 28.07.14, 10:34

покажите реальный текст запроса

Автор: kosalex 28.07.14, 11:14

Цитата(sava1 @ 28.07.14, 11:34) *
покажите реальный текст запроса


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

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

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



Я думаю,что через параметры не получиться в этом запросе, т.к. в самом запросе нигде нет параметров. По этому в самом СКД в настройках отчета добавил поля "Отбор"

Автор: sava1 28.07.14, 11:24

Цитата(kosalex @ 28.07.14, 12:14) *
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
        ПО ВТ_Отпуск.Сотрудник = РаботникиОрганизаций.Сотрудник
ГДЕ
    ВТ_Отпуск.ПериодРС = РаботникиОрганизаций.Период


ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
        ПО ВТ_Отпуск.Сотрудник = РаботникиОрганизаций.Сотрудник
        И   ВТ_Отпуск.ПериодРС = РаботникиОрганизаций.Период


не получается что?

Автор: kosalex 28.07.14, 11:26

Цитата(sava1 @ 28.07.14, 12:24) *
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
        ПО ВТ_Отпуск.Сотрудник = РаботникиОрганизаций.Сотрудник
        И   ВТ_Отпуск.ПериодРС = РаботникиОрганизаций.Период


не получается что?



Все уже получилось, пред. пост содержит решение. За исключением вашего замечания smile.gif


Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua