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

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

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

Автор: kosalex 25.03.16, 9:45

Доброго времени суток!
Есть такой отчет СКД, его запрос:

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


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

Автор: pablo 25.03.16, 9:49

Цитата
в отчет не нужно проставлять значение после даты увольнения сотрудника

А теперь эту же фразу, но растяните на несколько предложений.
Можете предварительно выпить чаю/кофе/по предпочтению.

Автор: kosalex 25.03.16, 9:54

pablo @ Сегодня, 9:49 http://pro1c.org.ua/index.php?act=findpost&pid=110378

А теперь эту же фразу, но растяните на несколько предложений.


покажите пример

Автор: pablo 25.03.16, 10:01

1. В отчет не должны выводиться данные по уволенным сотрудникам. то есть записи по уволенным должны отфильтровываться.
2. В отчет не должны выводиться значение подразделения по уволенным сотрудникам. При этом, если &ДатаОкончания больше даты увольнения, то подразделение должно быть заполненным.
3. Если Сотрудника уволили посреди месяца, в запросе должны отбираться записи только до даты увольнения. Оставшиеся записи по сменам должны быть с заполненной датой и реквизитами работника, но без молока (0 количество)
...

Автор: kosalex 25.03.16, 10:11

pablo @ Сегодня, 10:01 *,
3. Если Сотрудника уволили посреди месяца, в запросе должны отбираться записи только до даты увольнения. Оставшиеся записи по сменам должны быть с заполненной датой и реквизитами работника, но без молока (0 количество)

Видно что уже попили чай/кофе :-)

Автор: pablo 25.03.16, 10:24

Делаете запрос А(подзапрос, временную таблицу, вложенный запрос, таблицу etc) в которую выбираете все даты месяца (или все рабочие даты месяца). К этому запросу через левое соединение добавляете запрос Б с данными о сотруднике и отдельно - запрос С с данными о молоке. В итоговом запросе для вывода ВредностьМолокоСрезПоследних.Количество используете функцию ЕстьNULL.

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