|
Отбросить документы в которых заполнен дополнительный реквизит. | ☑ | ||
---|---|---|---|---|
0
kobzon
04.03.19
✎
14:51
|
Всем привет!
Никак не соображу как сделать. В Документе Реализация создал доп. реквизит - Оплачена. Реквизит как дополнительное значение с о списком Да. Заполнил несколько документов. Хочу получить оставшиеся. Так находятся все. ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка КАК Ссылка, РеализацияТоваровУслуг.ДополнительныеРеквизиты.( Значение КАК Значение ) КАК ДополнительныеРеквизиты ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг А как мне найти, те в которых доп. реквизит не заполнен? |
|||
1
FIXXXL
04.03.19
✎
14:54
|
(0) выбирай из ТЧ, проверяй
|
|||
2
sqr4
04.03.19
✎
15:00
|
(1) не взлетит, там где нет, его вообще не будет помоему
|
|||
3
sqr4
04.03.19
✎
15:00
|
Сначала список доков, потом тч, соединяешь и вуаля
|
|||
4
kobzon
04.03.19
✎
15:10
|
(2) Да в том то и дело, что либо выбирает то что заполнено, либо пустой результат по запросу.
(3) Сначала, в смысле сделать вложенным запросом? |
|||
5
FIXXXL
04.03.19
✎
15:10
|
(3) проще тогда ВТ из заполненных и запрос с условием НЕ Ссылка В (ВЫБРАТЬ Ссылка ИЗ ВТ)
|
|||
6
sqr4
04.03.19
✎
15:11
|
(5) мне кажется мой способ быстрее)
|
|||
7
kobzon
04.03.19
✎
15:12
|
(5) Вот у меня были такие мысли с В (ВЫБРАТЬ Ссылка ИЗ ВТ). Не знал куда НЕ приписать)
|
|||
8
Shaggy
04.03.19
✎
17:53
|
Настоятельно рекомендую пользоваться конструктором запросов. Использовать две таблицу, таблицу документа и таблицу табличной части. связать их по "Ссылке". Я сомневаясь, что Вам удалось определить реквизиту документа тип значения "СписокЗначений", поэтому отбор необходимо сделать на <> НЕОПРЕДЕЛЕНО
|
|||
9
kobzon
05.03.19
✎
08:18
|
(8) Сделал как в (5) - работает.
Связывание таблиц что то не получается. Записей 0 в итоге ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка КАК Ссылка ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.ДополнительныеРеквизиты КАК РеализацияТоваровУслугДополнительныеРеквизиты ПО (РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка = РеализацияТоваровУслуг.Ссылка) ГДЕ РеализацияТоваровУслуг.ДополнительныеРеквизиты.Значение = Неопределено СГРУППИРОВАТЬ ПО РеализацияТоваровУслуг.Ссылка |
|||
10
catena
05.03.19
✎
08:23
|
(9)Видимо там не Неопределено, а NULL
|
|||
11
kobzon
05.03.19
✎
08:28
|
(10) ГДЕ РеализацияТоваровУслуг.ДополнительныеРеквизиты.Значение = NULL
Так написать, тоже результатов 0 |
|||
12
catena
05.03.19
✎
08:52
|
(11)Потому что ничто не может равняться NULL. NULL вне системы. Даже NULL не может быть равен NULL, каждый NULL индивидуален.
А по факту нужно использовать ЕСТЬ NULL. |
|||
13
sqr4
05.03.19
✎
09:32
|
ГДЕ РеализацияТоваровУслуг.ДополнительныеРеквизиты.Значение = NULL
это жестко) |
|||
14
Shaggy
05.03.19
✎
09:43
|
(9) Вы не верно выбрали реквизит в отборе "ГДЕ". Необходимо смотреть в таблицу табличной части документа, Вы же проверяете реквизит самого документа.
|
|||
15
Бертыш
05.03.19
✎
09:50
|
(13) Обычно же пишешь что нибудь типа ГДЕ ЕСТЬNULL(РеализацияТоваровУслуг.ДополнительныеРеквизиты.Значение,"Фигня какая-то получается")="Фигня какая-то получается"
|
|||
16
catena
05.03.19
✎
10:05
|
(15)А чем не угодило краткое "ГДЕ Значение есть NULL"?
|
|||
17
kobzon
05.03.19
✎
10:06
|
(15) Операция не разрешена в предложении "ГДЕ"
ГДЕ <<?>>ЕСТЬNULL(РеализацияТоваровУслуг.ДополнительныеРеквизиты.Значение,0) |
|||
18
catena
05.03.19
✎
10:12
|
(17)Правильно, потому что выражение в ГДЕ должно быть булевым. Приравняйте чему-нибудь, чтоле.
|
|||
19
sqr4
05.03.19
✎
10:13
|
ГДЕ РеализацияТоваровУслуг.ДополнительныеРеквизиты.Значение есть NULL
|
|||
20
kobzon
05.03.19
✎
10:18
|
(19) Не пашет
ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка КАК Ссылка ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.ДополнительныеРеквизиты КАК РеализацияТоваровУслугДополнительныеРеквизиты ПО (РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка = РеализацияТоваровУслуг.Ссылка) ГДЕ РеализацияТоваровУслуг.ДополнительныеРеквизиты.Значение есть NULL СГРУППИРОВАТЬ ПО РеализацияТоваровУслуг.Ссылка |
|||
21
sqr4
05.03.19
✎
10:22
|
(20) я только сейчас посмотрел на правую часть этого бреда... РеализацияТоваровУслуг.ДополнительныеРеквизиты.Значение это вообще что?!
РеализацияТоваровУслугДополнительныеРеквизиты.Значение есть Null пробуй так И срочно учить запросы, прям срочно. |
|||
22
kobzon
05.03.19
✎
10:27
|
(21) Да, теперь всё работает)
Спасибо! Запросы учу. Я в 1с 8, можно сказать третий месяц только)) Всем спасибо!!! |
|||
23
Сияющий в темноте
05.03.19
✎
10:54
|
ребята,а где проверка на наш допреквизит?
создайте другой допреквизит,запустите запрос и осознайте печаль. в соединении вставить реализациятоваровуслугдопреквизиты.свойство=&нашдопреквизит |
|||
24
sqr4
05.03.19
✎
10:57
|
(23) +
|
|||
25
catena
05.03.19
✎
11:06
|
(23)Мы нужное поле в запросе почти сутки искали. Давайте вот без этого вот.
|
|||
26
sqr4
05.03.19
✎
11:12
|
(25) нет, уж делать так на совесть. Давайте продолжим
|
|||
27
kobzon
05.03.19
✎
11:51
|
Да, да в первоначальном варианте запроса была проверка)
И РеализацияТоваровУслугДополнительныеРеквизиты.Свойство = &Свойтсво |
|||
28
sqr4
05.03.19
✎
11:58
|
(27) не взлетит
|
|||
29
kobzon
05.03.19
✎
12:02
|
(28) А как надо тогда?
|
|||
30
sqr4
05.03.19
✎
12:05
|
(29) по другому) Сначала отобрать только нужные свойства а затем соединять
или же в условие связи прописать, твое условие из где, но это мне кажется плохой вариант |
|||
31
Сияющий в темноте
05.03.19
✎
12:06
|
(27)строка должна быть в условии соединения таблиц.
|
|||
32
Вася Теркин
05.03.19
✎
12:39
|
(9) Тогда уж
ГДЕ ISNULL(РеализацияТоваровУслуг.ДополнительныеРеквизиты.Значение,Неопределено) = Неопределено |
|||
33
sqr4
05.03.19
✎
12:41
|
(32) не взлетит)
|
|||
34
kobzon
05.03.19
✎
16:09
|
Да, как то сложновато всё получается.
Плюс у меня должно выбираться незаполненное значение и заполненное значением "Частично". И это всё нужно засунуть в СКД. В консоли запросов понятно присвоил параметру &значен тип дополнительное значение, и значение "Частично", а в СКД такого не вижу. ГДЕ (РеализацияТоваровУслугДополнительныеРеквизиты.Значение ЕСТЬ NULL ИЛИ РеализацияТоваровУслугДополнительныеРеквизиты.Значение = &Значен) |
|||
35
kobzon
08.03.19
✎
20:06
|
Столкнулся с еще одной непонятной для меня проблемой. Дописал запрос, засунул его в СКД, настроил параметры, выбрал поля детальных записей. Ссылка на документ, контрагента... В режиме предприятия выводится только ссылка на документ, контрагент никак не выводится.
Нагуглил на статью в ИСе, что нужно в константах установить галку опции Использовать партнеров и контрагентов. Поставил - контрагенты стали отображаться. Но мне для работы не нужны партнеры, а с этой галкой все немного поменялось. Никто не знает другие способы решения? |
|||
36
Мимохожий Однако
09.03.19
✎
08:11
|
Добавь в запросе вывод поля Контрагент
|
|||
37
kobzon
09.03.19
✎
14:01
|
(36) В запросе есть это поле. Не выводится не так, не через Ссылка.Контрагент. А когда константу выставляешь в Истина, тогда и то и другое выводится.
|
|||
38
Мимохожий Однако
09.03.19
✎
14:16
|
(37) Запрос-то покажи. Запрос проверял в консоли. Это поле заполнено при выводе?
|
|||
39
Мимохожий Однако
09.03.19
✎
14:16
|
Запрос проверял в консоли?
|
|||
40
kobzon
09.03.19
✎
14:24
|
(38) В консоли все работает
ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка КАК Ссылка, РеализацияТоваровУслуг.Дата КАК Дата, РеализацияТоваровУслуг.Номер КАК Номер, РеализацияТоваровУслуг.Контрагент КАК Контрагент, РеализацияТоваровУслуг.ДополнительныеРеквизиты.( Значение КАК Значение ) КАК ДополнительныеРеквизиты ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.ДополнительныеРеквизиты КАК РеализацияТоваровУслугДополнительныеРеквизиты ПО (РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка = РеализацияТоваровУслуг.Ссылка) ГДЕ (РеализацияТоваровУслугДополнительныеРеквизиты.Значение ЕСТЬ NULL ИЛИ РеализацияТоваровУслугДополнительныеРеквизиты.Значение.Наименование = &Значен) И РеализацияТоваровУслуг.Дата >= &НачальнаяДата И РеализацияТоваровУслуг.Дата <= &КонечнаяДата И РеализацияТоваровУслуг.ПометкаУдаления = ЛОЖЬ И РеализацияТоваровУслуг.Проведен = ИСТИНА |
|||
41
Мимохожий Однако
09.03.19
✎
14:41
|
РеализацияТоваровУслуг.ДополнительныеРеквизиты.(
Значение КАК Значение ) КАК ДополнительныеРеквизиты Вот это зачем? |
|||
42
Мимохожий Однако
09.03.19
✎
14:42
|
И РеализацияТоваровУслуг.ПометкаУдаления = ЛОЖЬ
лишнее. Документ, не может быть помеченным на удаление и проведенным одновременно |
|||
43
ДенисЧ
09.03.19
✎
14:42
|
(42) ну как сказать... Движения он иметь может ))
|
|||
44
Мимохожий Однако
09.03.19
✎
14:43
|
(43) Можно пример?
|
|||
45
ДенисЧ
09.03.19
✎
14:46
|
(44) Создай набор записей регистра, подчини его документу, запиши движения....
|
|||
46
RomanYS
09.03.19
✎
14:46
|
(44) лучше так не делать :)
Док.Записать(РежимЗаписиДокумента.Проведение); //когда-то потом Док.ОбменДанными.Загрузка = Истина; Док.ПометкаУдаления = Истина; Док.Записать(); |
|||
47
RomanYS
09.03.19
✎
14:49
|
(43) но (42) это не отменяет
|
|||
48
kobzon
09.03.19
✎
14:50
|
(41) Ну это было для наглядности. Что действительно выводится то что мне надо.
|
|||
49
catena
11.03.19
✎
05:08
|
(46)После этого он не будет Проведен=Истина.
|
|||
50
JeHer
11.03.19
✎
06:53
|
||||
51
catena
11.03.19
✎
07:03
|
(50)Разговор был о том, что одновременная проверка "проведен=истина и пометкаудаления=ложь" не имеют смысла. Нет у ТС в запросе обращения к движениям.
|
|||
52
TormozIT
гуру
11.03.19
✎
08:23
|
Если у документа заполнены характеристики, то в качестве позновательного приема можно в любой консоли компоновки добавить отбор "Ссылка.[ИмяДопРеквизита] не заполнено" и посмотреть результирующий запрос.
Он будет выглядеть примерно так ВЫБРАТЬ Т.Ссылка КАК Ссылка ИЗ Справочник._ДемоНоменклатура КАК Т ЛЕВОЕ СОЕДИНЕНИЕ Справочник._ДемоНоменклатура.ДополнительныеРеквизиты КАК _ДемоНоменклатураДополнительныеРеквизиты ПО (_ДемоНоменклатураДополнительныеРеквизиты.Ссылка = Т.Ссылка И _ДемоНоменклатураДополнительныеРеквизиты.Свойство = &П) ГДЕ _ДемоНоменклатураДополнительныеРеквизиты.Значение = &П2 |
|||
53
TormozIT
гуру
11.03.19
✎
08:24
|
(52) Упс. Это для "Равно". Вот для "Не заполнено"
ВЫБРАТЬ Т.Ссылка КАК Ссылка, _ДемоНоменклатураДополнительныеРеквизиты.Значение КАК Значение1 ИЗ Справочник._ДемоНоменклатура КАК Т ЛЕВОЕ СОЕДИНЕНИЕ Справочник._ДемоНоменклатура.ДополнительныеРеквизиты КАК _ДемоНоменклатураДополнительныеРеквизиты ПО (_ДемоНоменклатураДополнительныеРеквизиты.Ссылка = Т.Ссылка И _ДемоНоменклатураДополнительныеРеквизиты.Свойство = &П) ГДЕ (_ДемоНоменклатураДополнительныеРеквизиты.Значение В (НЕОПРЕДЕЛЕНО, &П2, &П3, "", ДАТАВРЕМЯ(1, 1, 1), 0, &П4, &П5) ИЛИ _ДемоНоменклатураДополнительныеРеквизиты.Значение ЕСТЬ NULL) |
|||
54
kobzon
11.03.19
✎
12:57
|
Уже попробовал левым соединением присоединить справочник контрагенты, со связью по ссылке. И всё равно контрагент в отчете не выводится.
|
|||
55
sqr4
11.03.19
✎
14:18
|
(54) может там партнер?
|
|||
56
kobzon
11.03.19
✎
16:12
|
(55) В консоли выводит всё. И Контрагент и Ссылка.Контрагент. и Контрагент.Партнер. И Партнер.
На каком уровне СКД блочит непонятно. |
|||
57
catena
12.03.19
✎
05:06
|
(56)Может уже стоит посмотреть результирующий запрос СКДы?
|
|||
58
TormozIT
гуру
12.03.19
✎
09:35
|
(56) Ну так разберись сам через отладку компоновки https://www.youtube.com/watch?v=qVGXWU8w1W0&
|
|||
59
TormozIT
гуру
12.03.19
✎
09:49
|
(59) Точнее если чисто компоновку изучать в консоли, то лучше юзать такой прием сразу https://www.youtube.com/watch?v=0LKGaFo9tXw
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |