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


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

А теперь эту же фразу, но растяните на несколько предложений.
Можете предварительно выпить чаю/кофе/по предпочтению.
kosalex
pablo @ Сегодня, 9:49 необходимо зарегистрироваться для просмотра ссылки,
Цитата(pablo @ 25.03.16, 9:49) необходимо зарегистрироваться для просмотра ссылки
А теперь эту же фразу, но растяните на несколько предложений.


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

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