Имя: Пароль:
1C
1С v8
Проблема с запросом
,
0 jamesgold
 
11.12.16
21:29
Добрый день, прошу помочь!

Имеются 2е таблицы, со структурой: Номенклатура, цвет, цена

Таблица 1 (Регистр сведений, делаю в запросе срез последних):
Ручка Черная 30
Карандаш Синий 20
Ручка Синяя 50

Таблица 2(Документ):
Ручка Черная 99
Карандаш Синий 20
Ручка Синяя 50
Стержень Красный 10

Не могу написать запрос чтобы на выходе получились только те записи где цена по номенклатуре отличается от записи в регистре и чтобы появились новые которых еще небыло в регистре сведений
Делаю примерно так:
ВЫБРАТЬ
    тзНоменклатураДокумента.Номенклатура,
    тзНоменклатураДокумента.Цвет,
    тзНоменклатураДокумента.Цена
ПОМЕСТИТЬ ВТ_НоменклатураДокумента
ИЗ
    Документ.ЦеныНоменклатуры.Номенклатура КАК тзНоменклатураДокумента
ГДЕ
    тзНоменклатураДокумента.Ссылка = &Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    РСЦеныНоменклатурыСрезПоследних.Номенклатура,
    РСЦеныНоменклатурыСрезПоследних.Цвет,
    РСЦеныНоменклатурыСрезПоследних.Цена
ПОМЕСТИТЬ ВТ_РСНоменклатура
ИЗ
    РегистрСведений.РСЦеныНоменклатуры.СрезПоследних КАК РСЦеныНоменклатурыСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_НоменклатураДокумента.Номенклатура,
    ВТ_НоменклатураДокумента.Цвет,
    ВТ_НоменклатураДокумента.Цена
ИЗ
    ВТ_НоменклатураДокумента КАК ВТ_НоменклатураДокумента
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_РСНоменклатура КАК ВТ_РСНоменклатура
        ПО ВТ_НоменклатураДокумента.Номенклатура = ВТ_РСНоменклатура.Номенклатура
            И ВТ_НоменклатураДокумента.Цвет = ВТ_РСНоменклатура.Цвет
            И ВТ_НоменклатураДокумента.Цена <> ВТ_РСНоменклатура.Цена
1 jamesgold
 
11.12.16
21:34
Сейчас на выходе получается только та номенклатура по которой изменилась цена, по идее добавить недостающие записи можно если получить еще одну таблицу с записями которых нет в РС и объединить с уже полученным результатом
2 Garykom
 
гуру
11.12.16
21:37
сделай "табличку" (Номенклатура, ЦенаВРегистре, ЦенаВДокументе) и потом из нее выбираешь ЦенаВРегистре<>ЦенаВДокументе
3 Garykom
 
гуру
11.12.16
21:38
(2)+ суть вместо одного мозговыносящего запроса, иногда лучше сделать пакетный в виде нескольких последовательных запросов
4 jamesgold
 
11.12.16
21:39
Сделать табличку в запросе?
5 Garykom
 
гуру
11.12.16
21:39
(4) ВТ и из нее уже новым "простым" запросом выбираешь что нуна
6 jamesgold
 
11.12.16
21:41
Номенклатура, Цвет, ЦенаВРегистре, ЦенаВДокументе типа такой?
7 jamesgold
 
11.12.16
21:42
Интересная идея
8 jamesgold
 
11.12.16
21:56
Так не выводит номенклатуру которой нет в РС
9 jamesgold
 
11.12.16
22:04
(2) Большое спасибо, именно так и сделал, все получилось!
10 viktor_vv
 
12.12.16
01:01
В последнем запросе полное соединение по номенклатуре и цвету,  в где условие на null поля номенклатура из РС или на неравенство цен.
Ошибка? Это не ошибка, это системная функция.