|
Помогите с запросом 1с 8.2 | ☑ | ||
---|---|---|---|---|
0
IT_PROGRAMMIST
27.10.11
✎
10:16
|
Доброе утро!)УПП 1.3.11.5,пл 8.2.13.219.
Подскажите в следующем. Есть следующий запрос: ВЫБРАТЬ РАЗЛИЧНЫЕ СостояниеРаботниковПредприятия.Состояние, ВЫБОР КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.Заболевание) ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.Болезнь) КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.Командировка) ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.Командировка) КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.ОтпускЕжегодный) ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.ОсновнойОтпуск) КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.ОтсутствуетПоНевыясненнойПричине) ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.НеявкиПоНевыясненнымПричинам) КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.Работает) ТОГДА ЗНАЧЕНИЕ(Справочник.КлассификаторИспользованияРабочегоВремени.Работа) КОНЕЦ КАК СостояниеБуквенныйКод, ВЫБОР КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.Заболевание) ТОГДА 0 КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.Командировка) ТОГДА ЧасыПоГрафику.Часы КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.ОтпускЕжегодный) ТОГДА 0 КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.ОтсутствуетПоНевыясненнойПричине) ТОГДА 0 КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.Работает) ТОГДА ЧасыПоГрафику.Часы КОНЕЦ КАК Часы, ЧасыПоГрафику.ФизЛицо ИЗ РегистрСведений.СостояниеРаботниковПредприятия.СрезПоследних(&Дата, ФизЛицо = &ФизЛицо) КАК СостояниеРаботниковПредприятия ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ГрафикиРаботыПоСменам.Часы КАК Часы, РаботникиСрезПоследних.ФизЛицо КАК ФизЛицо ИЗ РегистрСведений.Работники.СрезПоследних(&Дата, ФизЛицо = &ФизЛицо) КАК РаботникиСрезПоследних ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ГрафикиРаботыПоСменам КАК ГрафикиРаботыПоСменам ПО РаботникиСрезПоследних.ГрафикРаботы = ГрафикиРаботыПоСменам.ГрафикРаботы ГДЕ ГрафикиРаботыПоСменам.Дата = &Дата И ГрафикиРаботыПоСменам.Часы > 0) КАК ЧасыПоГрафику ПО СостояниеРаботниковПредприятия.ФизЛицо = ЧасыПоГрафику.ФизЛицо СГРУППИРОВАТЬ ПО ЧасыПоГрафику.ФизЛицо, СостояниеРаботниковПредприятия.Состояние, ВЫБОР КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.Заболевание) ТОГДА 0 КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.Командировка) ТОГДА ЧасыПоГрафику.Часы КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.ОтпускЕжегодный) ТОГДА 0 КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.ОтсутствуетПоНевыясненнойПричине) ТОГДА 0 КОГДА СостояниеРаботниковПредприятия.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.Работает) ТОГДА ЧасыПоГрафику.Часы КОНЕЦ Вместо одной записи он мне возвращает 2,т.е ФизЛицо Состояние СостояниеБукв Отработано Иванов Иванов Работает Р 12 А должно быть : ФизЛицо Состояние СостояниеБукв Отработано Иванов Работает Р 12 Не могу понять где я ошибся??? |
|||
1
FIXXXL
27.10.11
✎
10:17
|
по видимому, есть записи с пустыми состояниями
|
|||
2
FIXXXL
27.10.11
✎
10:18
|
вернее так: состояния, которые не обрабатываешь в ВЫБОР КОГДА
|
|||
3
IT_PROGRAMMIST
27.10.11
✎
10:21
|
пробовал в запросе проверять на пустое состояние.Все равно тянутся.
|
|||
4
Ненавижу 1С
гуру
27.10.11
✎
10:22
|
(3) а как проверял то, в курсе если не попадают ни в одну ВЫБОР КОГДА ветвь, то будет NULL? а как с NULL сравнивал?
|
|||
5
IT_PROGRAMMIST
27.10.11
✎
10:25
|
СостояниеРаботниковПредприятия.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаботника.ПустаяСсылка)
|
|||
6
IT_PROGRAMMIST
27.10.11
✎
10:26
|
а выбор когда не проверял на Null
|
|||
7
IT_PROGRAMMIST
27.10.11
✎
10:29
|
Просто,как состояние работника на одну дату может и работать и быть Null?
|
|||
8
VitShvets
27.10.11
✎
10:47
|
В У тебя в "ВЫБРАТЬ" 4 поля, а в "СГРУППИРОВАТЬ ПО" 3 поля. Нехватает "СостояниеБуквенныйКод" Мож поэтому?
|
|||
9
НЕА123
27.10.11
✎
10:52
|
(0)
без СГРУППИРОВАТЬ? ИТОГИ не? |
|||
10
IT_PROGRAMMIST
27.10.11
✎
10:58
|
(8) там без разницы.
(9) не. |
|||
11
FIXXXL
27.10.11
✎
12:18
|
(7) пропиши условие ГДЕ СостояниеРаботниковПредприятия.Состояние В &СписокСостояний
в &СписокСостояний суй те, которые анализируешь |
|||
12
IT_PROGRAMMIST
27.10.11
✎
13:34
|
Спасибо FIXXXL большое за помошь.Ответ в варианте (2)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |