|
Операторы "НЕ" "В" в ВТ | ☑ | ||
---|---|---|---|---|
0
unbred
27.08.17
✎
03:16
|
есть две временных таблицы
в 1й я получаю данные справочника, во 2й я получаю данные справочника,которые используются в проведенных документах. в результате запроса мне нужно получить данные ВТ1, в которых нет данных ВТ2. у меня получается примерно так: ВЫБРАТЬ из вт1 как вт1 и вт2 как вт2 данные ГДЕ НЕ данныеВТ1 в (данныевт2) (или наоборот,не суть)) получатеся так,что я выбираю всё и в результате получаю всё,не смотря на условие.помогите с написанием(( .буду рад любой ссылке на похожий пример. |
|||
1
PuhUfa
27.08.17
✎
03:22
|
запрос показывай
|
|||
2
unbred
27.08.17
✎
03:28
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ХарактеристикиНоменклатуры.Ссылка КАК ХарактеристикаСсылка, | ХарактеристикиНоменклатуры.Владелец КАК Владелец |ПОМЕСТИТЬ ВТпопытка |ИЗ | Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры | |СГРУППИРОВАТЬ ПО | ХарактеристикиНоменклатуры.Владелец, | ХарактеристикиНоменклатуры.Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Характеристика КАК ХарактеристикиНоменклатуры |ПОМЕСТИТЬ ВТХарИзДокПостТ |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | ЗаказКлиентаТовары.Характеристика |ИЗ | Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | РеализацияТоваровУслугТовары.Характеристика |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | ЗаказПоставщикуТовары.Характеристика |ИЗ | Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | ТаможеннаяДекларацияИмпортТовары.Характеристика |ИЗ | Документ.ТаможеннаяДекларацияИмпорт.Товары КАК ТаможеннаяДекларацияИмпортТовары | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | СборкаТоваровТовары.Характеристика |ИЗ | Документ.СборкаТоваров.Товары КАК СборкаТоваровТовары |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТХарИзДокПостТ.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры |ПОМЕСТИТЬ ВТ |ИЗ | ВТХарИзДокПостТ КАК ВТХарИзДокПостТ | |СГРУППИРОВАТЬ ПО | ВТХарИзДокПостТ.ХарактеристикиНоменклатуры |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТпопытка.ХарактеристикаСсылка, | ВТ.ХарактеристикиНоменклатуры |ИЗ | ВТ КАК ВТ, | ВТпопытка КАК ВТпопытка |{ГДЕ | (НЕ ВТпопытка.ХарактеристикаСсылка В (ВТ.ХарактеристикиНоменклатуры)) КАК Поле1}" ; запрос.УстановитьПараметр("ВидНоменклатуры",Объект.ВидНоменклатуры); выборка = запрос.Выполнить().Выгрузить(); ТабличнаяЧасть.Загрузить(выборка); последний запрос полный бред(( |
|||
3
DES
27.08.17
✎
07:55
|
а так ?
(ВТпопытка.ХарактеристикаСсылка не В (ВТ.ХарактеристикиНоменклатуры)) КАК Поле1}" |
|||
4
rphosts
27.08.17
✎
08:35
|
какие нафиг фигурные скобки!
может так: ГДЕ ВТ.ХарактеристикиНоменклатуры В (ВЫБРАТЬ ВТХарИзДокПостТ.ХарактеристикиНоменклатуры ИЗ ВТХарИзДокПостТ КАК ВТХарИзДокПостТ) а перед этим ВТ проиндексировать по ВТХарИзДокПостТ |
|||
5
Redkiy
27.08.17
✎
08:46
|
Зачем тут вообще три временные таблицы? Достаточно одной.
|ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Характеристика |ПОМЕСТИТЬ ВТ |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары | |; |ВЫБРАТЬ | ХарактеристикиНоменклатуры.Ссылка, | ХарактеристикиНоменклатуры.Владелец |ИЗ | Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры | |ГДЕ НЕ ХарактеристикиНоменклатуры.Ссылка В(ВЫБРАТЬ ТЗ.Характеристика ИЗ ТЗ) |СГРУППИРОВАТЬ ПО | ХарактеристикиНоменклатуры.Владелец, | ХарактеристикиНоменклатуры.Ссылка |
|||
6
Redkiy
27.08.17
✎
08:47
|
(5) + опечатка, ТЗ заменить на ВТ
|
|||
7
AlvlSpb
27.08.17
✎
11:17
|
(6) Оператор "В" работает со списком значений или с массивом, с ТЗ работать не будет
|
|||
8
Asmody
27.08.17
✎
11:22
|
НЕ В работает медленно, если вообще работает. ЛЕВОЕ СОЕДИНЕНИЕ с проверкой на NULL будет быстрее.
|
|||
9
unbred
27.08.17
✎
14:01
|
сделал левое соединение ,получил 2 колонки,в одной из которых пустые поля. хочу сделать что бы на форме были видны только те строки,в которых одно из значений пустое.
у колонок одинаковый тип ссылок,поэтому is null должно работать. пишу ГДЕ колонка 1 ЕСТЬ NULL -синтаксическая ошибка не хватает знаний синтаксиса. поисковик от меня уже устал. помогите пожалуйста с одной строчкой(( |
|||
10
unbred
27.08.17
✎
14:04
|
надо к строке обратиться,а не к колонке.это понятно.
|
|||
11
Tateossian
27.08.17
✎
15:40
|
(7) Не прав. Работает. Вот пример (Номенклатура, Характеристика) В (ВЫБРАТЬ Номенклатура, Характеристика ИЗ НЕекийРЕгистр)
|
|||
12
Tateossian
27.08.17
✎
15:41
|
(2) ВОт это у тебя:
|{ГДЕ | (НЕ ВТпопытка.ХарактеристикаСсылка В (ВТ.ХарактеристикиНоменклатуры)) КАК Поле1}" Конструкция построителя. Как мимнимум нужно оставить вот так: |ГДЕ | (НЕ ВТпопытка.ХарактеристикаСсылка В (ВТ.ХарактеристикиНоменклатуры)) |
|||
13
Redkiy
27.08.17
✎
18:06
|
(7) Давно в профессии? Удивляет возраст, стаж на форуме и глупые советы.
|
|||
14
unbred
27.08.17
✎
18:19
|
сделал левым соединением и проверкой через null . спасибо.
|
|||
15
unbred
27.08.17
✎
20:52
|
хочу результат выборки этого запроса пометить на удаление
пишу выборка = запрос.Выполнить().Выгрузить(); ТабличнаяЧасть.Загрузить(выборка); для каждого строка из выборка цикл характеристика =строка.ссылка.получитьобъект(); характеристика.пометкаудаления = истина; конеццикла; он мне отвечает "поле объекта не обнаружено (ссылка) башка уже совсем не варит. почему я не могу получить объект? |
|||
16
unbred
27.08.17
✎
20:59
|
(5) потому,что не все характеристики удалять надо,а только присущие неким документам.
|
|||
17
Redkiy
28.08.17
✎
05:44
|
(16) В постановке задачи в (0) у тебя как раз наоборот - выбрать элементы справочника не встречающиеся в документах.
|
|||
18
1dvd
28.08.17
✎
06:38
|
(15) запрос окончательный покажи
И пометка ставится методом УстановитьПометкуУдаления |
|||
19
unbred
28.08.17
✎
09:42
|
(17) в Выбранных документах (2) извиняюсь за дезу.
(18) странно, у меня и так сработало.там по-моему без разницы. в итоге в тз не ссылка была,а характеристикассылка.просто букв уже не видел. разобрался. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |