Имя: Пароль:
1C
1С v8
Соединить 4 таблицы
0 myr4ik07
 
11.02.15
00:23
Привет. Консоль запросов.
Есть конкретная номенклатура. Нужно найти по этой номенклатуре серийные номера с документов ПТиУ которые не были указаны в РТиУ. Ничего лучшего не смог придумать

ВЫБРАТЬ
    ПоступлениеТоваровУслугТовары.Номенклатура,
    0 КАК Номенклатура,
    ПоступлениеТоваровУслугСерийныеНомера.СерийныйНомер,
    0 КАК СерийныйНомер
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.СерийныеНомера КАК ПоступлениеТоваровУслугСерийныеНомера
        ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоступлениеТоваровУслугСерийныеНомера.Ссылка
            И ПоступлениеТоваровУслугТовары.КлючСвязи = ПоступлениеТоваровУслугСерийныеНомера.КлючСвязи
ГДЕ
    ПоступлениеТоваровУслугТовары.Номенклатура = &Номенклатура

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    0 КАК Номенклатура,
    РеализацияТоваровУслугТовары.Номенклатура,
    0 КАК СерийныйНомер,
    РеализацияТоваровУслугСерийныеНомера.СерийныйНомер
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.СерийныеНомера КАК РеализацияТоваровУслугСерийныеНомера
        ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслугСерийныеНомера.Ссылка
            И РеализацияТоваровУслугТовары.КлючСвязи = РеализацияТоваровУслугСерийныеНомера.КлючСвязи
ГДЕ
    РеализацияТоваровУслугТовары.Номенклатура = &Номенклатура


а хотелось бы видеть типа
ПТиУ СН РТиУ СН
Товар 001 Товар 001
Товар2 002 не продавался
Товар3 0003 Товар3 003
1 root_1c
 
11.02.15
01:16
выбрать товары из рту где рту.товар = выбтовар
поместить ТабРту

select товары из пту где
выбтовар не в (выбрать товар из табрту)
2 VladZ
 
11.02.15
05:53
(0) Нда... Я смотрю, у тебя с запросами беда...
4 Escander
 
11.02.15
06:26
(0)смотрю на поля... забавно... сам что-ли такую конфу придумал?

Если серийник всегда 1 для номенклатуры - занафига для номенклатуры и серийника  разные табличные части? Если у одной номенклатуры может быть несколько серийников - отбирать по всеми серийниками(все возможные комбинации как в вашем запросе) или как?

Нет проверки ни на проведение ни на пометку удаления документа - сомневаюсь что это не важно.

Вместо 0 когда нет данных принято использовать NULL.

для начала хватит


Хотя нет!
Зачем вам выводить номенклатуру если у вас условие
ГДЕ РеализацияТоваровУслугТовары.Номенклатура = &Номенклатура ? Вы что запрос выполняете в цикле?
5 Escander
 
11.02.15
06:34
+ (4) вообще нет никакого отбора по периоду документов
6 myr4ik07
 
11.02.15
09:48
(2) ну, я не считаю, что запрос не выполнил свои задания, просто он не очень понятно и красиво выглядит поэтому и спрашиваю, что бы показали, а я тем временем поучился
11 myr4ik07
 
11.02.15
09:56
(4) повнимательнее пожалуйста или вообще ничего не советуйте.
КОНСОЛЬ ЗАПРОСОВ. О каком цикле вы говорите?!
Конф., типовая УТП, не знаете, молчите.
Есть ситуация, что конкретная номенклатура с однаковым СН принималась документом ПТиУ два раза, один раз от поставщика, второй раз гарантия, а гарантия не должна быть через этот документ оприходыватся, поэтому ищу ошибку.
15 ShoGUN
 
11.02.15
10:00
(13) Я русский человек, и не могу понять, как при условии
ГДЕ РеализацияТоваровУслугТовары.Номенклатура = &Номенклатура
Можно получить таблицу с РАЗНОЙ номенклатурой.
17 myr4ik07
 
11.02.15
10:02
(15) нельзя? я понял тогда, поэтому и спрашиваю, правильно ли или что то полезное, что бы подсказали, я ж не дискутировать сюда пришел, а помощи попросить по знаниям, по совету, ну разве это плохо?
23 Escander
 
11.02.15
10:10
(22) мой вопрос про то, куда дели своего программиста. Запрос очень корявый. Конфигурация видимо не типовая и написанная очень неэффективно. Смотрите как написаны типовые - многие именно так и научились писать лучше, хотя типовые тоже далеки от идеала.

Так вот разве это не законный вопрос когда я вижу связь по 2 полям одновременно из 2 ТЧ одного документа?
28 Dmitrii
 
гуру
11.02.15
10:14
(0) Можно так:

ВЫБРАТЬ
   ВложенныйЗапрос.Номенклатура,
   ВложенныйЗапрос.СерийныйНомер,
   МАКСИМУМ(ВложенныйЗапрос.Покупался),
   МАКСИМУМ(ВложенныйЗапрос.Продавался)
ИЗ (ВЫБРАТЬ
    ПоступлениеТоваровУслугТовары.Номенклатура,
    ПоступлениеТоваровУслугСерийныеНомера.СерийныйНомер,
    ИСТИНА КАК Покупался,
    ЛОЖЬ КАК Продавался
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.СерийныеНомера КАК ПоступлениеТоваровУслугСерийныеНомера
        ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоступлениеТоваровУслугСерийныеНомера.Ссылка
            И ПоступлениеТоваровУслугТовары.КлючСвязи = ПоступлениеТоваровУслугСерийныеНомера.КлючСвязи
ГДЕ
    ПоступлениеТоваровУслугТовары.Номенклатура = &Номенклатура

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Номенклатура,
    РеализацияТоваровУслугСерийныеНомера.СерийныйНомер,
    ЛОЖЬ,
    ИСТИНА
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.СерийныеНомера КАК РеализацияТоваровУслугСерийныеНомера
        ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслугСерийныеНомера.Ссылка
            И РеализацияТоваровУслугТовары.КлючСвязи = РеализацияТоваровУслугСерийныеНомера.КлючСвязи
ГДЕ
    РеализацияТоваровУслугТовары.Номенклатура = &Номенклатура) КАК ВложенныйЗапрос
СГРУППИРОВАТЬ ПО
  ВложенныйЗапрос.Номенклатура,
  ВложенныйЗапрос.СерийныйНомер

Руками писал, мог накосячить
31 AllJoke
 
11.02.15
10:16
ВЫБРАТЬ товары из ТабЧасти ПТиУ ГДЕ ТоварыТабЧастьПТиУ НЕ В (ВЫБРАТЬ товары из ТабЧасти РТиУ)
32 myr4ik07
 
11.02.15
10:17
(28) ухты, вот это класс, то, что нужно, работает ) спасибо )
33 Vladal
 
модератор
11.02.15
10:17
Прекратите оффтоп. Для этого есть спецветки со спецправилами.
Escander, ты первый начал оффтоп.
myr4ik07, не поддавайся провокациям.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.