Имя: Пароль:
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, не поддавайся провокациям.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн