|
Выбор в запросе значений с незаполненной ТЧ | ☑ | ||
---|---|---|---|---|
0
13spartak13
04.07.17
✎
11:27
|
Уже или мозги плывут или я плыву! Нужна помощь. Есть справочник Сотрудники, в нем ТЧ Отпуска, у некоторых там есть строки у некоторых нету, как в запросе указать чтобы выбрать всех у кого ТЧ пустая? Спасибо
|
|||
1
youalex
04.07.17
✎
11:28
|
(0) ЛС ТЧ КАК ТЧ ПО Спр.Ссылка = ТЧ.Ссылка ГДЕ ТЧ.Ссылка is null
|
|||
2
1dvd
04.07.17
✎
11:29
|
(1) кртсть сес. тал.
|
|||
3
youalex
04.07.17
✎
11:30
|
(2) зато без конструктора (по мотивам соседней ветки) ))
|
|||
4
Buster007
04.07.17
✎
11:30
|
"is null" почему не ЕСТЬ?
|
|||
5
1dvd
04.07.17
✎
11:30
|
(3) ну, ты в курсе, что ты его ещё больше запутал? :)
|
|||
6
youalex
04.07.17
✎
11:33
|
(4) это равнозначное выражение. Удобнее писать, и визуально глаз не ломает
|
|||
7
13spartak13
04.07.17
✎
11:49
|
(1)
Ссылка=null; //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СотрудникиОрганизаций.Ссылка, | СотрудникиОрганизаций.Код, | СотрудникиОрганизаций.Актуальность |ИЗ | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций |ГДЕ | СотрудникиОрганизаций.Актуальность = &Истина | И СотрудникиОрганизаций.ТекущийТрудовойДоговор.Отпуска.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Истина",Истина); Запрос.УстановитьПараметр("Ссылка",Ссылка); Результат2 = Запрос.Выполнить().Выгрузить(); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Вставить обработку выборки ВыборкаДетальныеЗаписи КонецЦикла; Результат2 ВЫВОДИТ ПУСТОЙ СПИСОК, А ДОЛЖЕН ТЕХ У КОГО НЕТУ НИЧЕГО В СотрудникиОрганизаций.ТекущийТрудовойДоговор.Отпуска.Ссылка |
|||
8
youalex
04.07.17
✎
11:57
|
ИЗ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТрудовыеДоговоры.Отпуска КАК ТЧОтпуска ПО СотрудникиОрганизаций.ТекущийТрудовойДоговор = ТЧОтпуска.Ссылка ГДЕ ТекущийТрудовойДоговор is null как-то так, но тут будут еще сотрудники, у которых не заполнен договор. |
|||
9
youalex
04.07.17
✎
11:59
|
(8) т.е. ГДЕ ТЧОтпуска.Ссылка is null
|
|||
10
13spartak13
04.07.17
✎
12:08
|
(8) (9)
Ссылка=null; //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СотрудникиОрганизаций.Ссылка, | СотрудникиОрганизаций.Код, | СотрудникиОрганизаций.Актуальность, | ТрудовойДоговор.Отпуска.( | Ссылка | ) |ИЗ | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТрудовойДоговор КАК ТрудовойДоговор | ПО СотрудникиОрганизаций.ТекущийТрудовойДоговор.Ссылка = ТрудовойДоговор.Ссылка |ГДЕ | СотрудникиОрганизаций.Актуальность = &Истина | И СотрудникиОрганизаций.ТекущийТрудовойДоговор.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Истина",Истина); Запрос.УстановитьПараметр("Ссылка",Ссылка); Результат2 = Запрос.Выполнить().Выгрузить(); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Вставить обработку выборки ВыборкаДетальныеЗаписи КонецЦикла; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА ВОТ ЧТО ПОЛУЧИЛОСЬ, ВСЕ РАВНО ПУСТО.... |
|||
11
Numerus Mikhail
04.07.17
✎
12:32
|
(10) а при чем тут документ трудовой договор
ты ж говоришь тебе надо с пустой ТЧ вытащить. Чет типа такого, мб опечатался чутка, но смысл такой Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СотрудникиОрганизаций.Ссылка, | СотрудникиОрганизаций.Код, | СотрудникиОрганизаций.Актуальность |ИЗ | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций.Отпуска КАК Отпуска | ПО СотрудникиОрганизаций.Ссылка= Отпуска.Ссылка |ГДЕ | СотрудникиОрганизаций.Актуальность | И Отпуска.Ссылка ЕСТЬ NULL"; |
|||
12
youalex
04.07.17
✎
12:34
|
(10) добавь в блок ГДЕ:
И ТЧОтпуска.Ссылка is null |
|||
13
13spartak13
04.07.17
✎
13:42
|
(11) ВСЕ РАВНО ПУСТО ЧТО ЗА....
|
|||
14
Ёпрст
04.07.17
✎
13:46
|
(13) см. (11)
При чем тут Документ.ТрудовойДоговор и вопрос в (0) про табличную часть справочника СотрудникиОрганизаций ? |
|||
15
13spartak13
04.07.17
✎
13:51
|
(14)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТрудовойДоговор.Сотрудник, | ТрудовойДоговор.Сотрудник.Код, | ТрудовойДоговор.Сотрудник.Актуальность, | ТрудовойДоговорОтпуска.Ссылка, | ТрудовойДоговорОтпуска.ВидОтпуска, | ТрудовойДоговорОтпуска.КоличествоДней |ИЗ | Документ.ТрудовойДоговор.Отпуска КАК ТрудовойДоговорОтпуска | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТрудовойДоговор КАК ТрудовойДоговор | ПО ТрудовойДоговорОтпуска.Ссылка = ТрудовойДоговор.Отпуска.Ссылка |ГДЕ |ТрудовойДоговор.Отпуска.Ссылка ЕСТЬ NULL "; Запрос.УстановитьПараметр("Истина",Истина); Запрос.УстановитьПараметр("Ссылка",Ссылка); Результат2 = Запрос.Выполнить().Выгрузить(); Результат = Запрос.Выполнить(); НЕМНОГО ОШИБСЯ В НАЧАЛЕ НО ЭТО СУТИ НЕ МЕНЯЕТ, ТАБЛИЧНАЯ ЧАСТЬ ДОКУМЕНТА... |
|||
16
Лефмихалыч
модератор
04.07.17
✎
13:51
|
(13) спили мушку, Крошка.
Тебе дали готовое решение. Просто скопипасть без потерь. Если не работает, значит ты что-то от себя добавил ненужное или убавил важное |
|||
17
Лефмихалыч
04.07.17
✎
13:52
|
(15) сравни свой запрос и (11), а потом добейся сходства
|
|||
18
Толич
04.07.17
✎
13:55
|
ВЫБРАТЬ
ФизическиеЛица.Ссылка, КОЛИЧЕСТВО(ФизическиеЛицаУдалитьСоставСемьи.Ссылка) КАК КолВо ПОМЕСТИТЬ Выборка1 ИЗ Справочник.ФизическиеЛица.УдалитьСоставСемьи КАК ФизическиеЛицаУдалитьСоставСемьи ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица ПО ФизическиеЛицаУдалитьСоставСемьи.Ссылка = ФизическиеЛица.Ссылка СГРУППИРОВАТЬ ПО ФизическиеЛица.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Выборка1.Ссылка ИЗ Выборка1 КАК Выборка1 ГДЕ Выборка1.КолВо < 1 |
|||
19
Ёпрст
04.07.17
✎
13:56
|
(15) поменяй местами:
|ИЗ | Документ.ТрудовойДоговор КАК ТрудовойДоговор | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТрудовойДоговор.Отпуска КАК ТрудовойДоговорОтпуска | ПО ТрудовойДоговорОтпуска.Ссылка = ТрудовойДоговор.Отпуска.Ссылка |
|||
20
Лефмихалыч
04.07.17
✎
13:58
|
а зачем выбирать
| ТрудовойДоговорОтпуска.Ссылка, | ТрудовойДоговорОтпуска.ВидОтпуска, | ТрудовойДоговорОтпуска.КоличествоДней если ты ищешь такие документы, у которых этого всего заведомо не существует? |
|||
21
Толич
04.07.17
✎
13:59
|
ВЫБРАТЬ
ФизическиеЛица.Ссылка, СУММА(ВЫБОР КОГДА ФизическиеЛицаУдалитьСоставСемьи.Ссылка ЕСТЬ NULL ТОГДА 0 ИНАЧЕ 1 КОНЕЦ) КАК КолВо ПОМЕСТИТЬ Выборка1 ИЗ Справочник.ФизическиеЛица.УдалитьСоставСемьи КАК ФизическиеЛицаУдалитьСоставСемьи ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица ПО ФизическиеЛицаУдалитьСоставСемьи.Ссылка = ФизическиеЛица.Ссылка СГРУППИРОВАТЬ ПО ФизическиеЛица.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Выборка1.Ссылка ИЗ Выборка1 КАК Выборка1 ГДЕ Выборка1.КолВо < 1 |
|||
22
Лефмихалыч
04.07.17
✎
14:01
|
(21) остановись
|
|||
23
Толич
04.07.17
✎
14:02
|
горшочек не вари
|
|||
24
13spartak13
04.07.17
✎
14:05
|
(19) (20)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТрудовойДоговор.Сотрудник, | ТрудовойДоговор.Сотрудник.Код, | ТрудовойДоговор.Сотрудник.Актуальность |ИЗ | Документ.ТрудовойДоговор.Отпуска КАК ТрудовойДоговорОтпуска | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТрудовойДоговор КАК ТрудовойДоговор | ПО ТрудовойДоговор.Отпуска.Ссылка = ТрудовойДоговорОтпуска.Ссылка |ГДЕ | ТрудовойДоговор.Отпуска.Ссылка ЕСТЬ NULL "; Запрос.УстановитьПараметр("Истина",Истина); Запрос.УстановитьПараметр("Ссылка",Ссылка); Результат2 = Запрос.Выполнить().Выгрузить(); Результат = Запрос.Выполнить(); код после исправлений... Результат пусто, а должно быть около 700 записей, при том если в строке | ТрудовойДоговор.Отпуска.Ссылка ЕСТЬ NULL "; сделать изменения | НЕ ТрудовойДоговор.Отпуска.Ссылка ЕСТЬ NULL "; появляются заполненные записи, т.е. что тут хитрое, или я чего-то опять не дописал |
|||
25
Ёпрст
04.07.17
✎
14:07
|
(24) см. (19)
|
|||
26
Лефмихалыч
04.07.17
✎
14:08
|
(24) дело не в условии, оно правильное.
Соединение неправильное - надо наоборот. Тебе уже раза три точно показали, как надо и рассказали. |
|||
27
dezss
04.07.17
✎
14:17
|
(24) ЛЕВОЕ поменяй на ПРАВОЕ и будет тебе щастье
|
|||
28
13spartak13
04.07.17
✎
14:22
|
(26) (25) (26)
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТрудовойДоговор.Сотрудник, | ТрудовойДоговор.Сотрудник.Код, | ТрудовойДоговор.Сотрудник.Актуальность |ИЗ | Документ.ТрудовойДоговор КАК ТрудовойДоговор | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТрудовойДоговор.Отпуска КАК ТрудовойДоговорОтпуска | ПО ТрудовойДоговор.Отпуска.Ссылка = ТрудовойДоговорОтпуска.Ссылка |ГДЕ | ТрудовойДоговор.Отпуска.Ссылка ЕСТЬ NULL "; Запрос.УстановитьПараметр("Истина",Истина); Запрос.УстановитьПараметр("Ссылка",Ссылка); Результат2 = Запрос.Выполнить().Выгрузить(); Результат = Запрос.Выполнить(); все поменял местами и соединения писал и левое и правое, результат пустой запрос |
|||
29
13spartak13
04.07.17
✎
14:25
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ТрудовойДоговор.Сотрудник, | ТрудовойДоговор.Сотрудник.Код, | ТрудовойДоговор.Сотрудник.Актуальность |ИЗ | Документ.ТрудовойДоговор КАК ТрудовойДоговор | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТрудовойДоговор.Отпуска КАК ТрудовойДоговорОтпуска | ПО ТрудовойДоговор.Отпуска.Ссылка = ТрудовойДоговорОтпуска.Ссылка |ГДЕ | ТрудовойДоговорОтпуска.Ссылка ЕСТЬ NULL "; Запрос.УстановитьПараметр("Истина",Истина); Запрос.УстановитьПараметр("Ссылка",Ссылка); РАБОЧИЙ ВАРИАНТ, ВСЕМ СПАСИБО ЗА ПОМОЩЬ ОСОБЕННО Лефмихалыч, Ёпрст, Numerus Mikhail, youalex. |
|||
30
Лефмихалыч
04.07.17
✎
14:30
|
(29) пожалуйста.
Установку параметров удали - они не используются |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |