Имя: Пароль:
1C
1С v8
Как сделать чтобы в запросе поле связи двух регистров выводилось как ощее
0 Капюшон
 
20.09.11
00:16
Создал для УТ простенький запрос, который показывает все товары, которые есть в остатке, но и их цену из регистра "ЦеныНоменклатуры" срез последних. Но есть одна проблема. Когда товара в остатке нет, то поле "Номенклатура" пустое, но цена в столбике стоит. Как мне сделать, чтобы в любом случае столбик "Номенклатура" оказался заполненным?

Напрашивается на мысль только поставить условие в запрос
Выбор Когда
и проверить там если сумма остатка =  0 тогда брать номенклатуру из регистра сведений ЦеныНоменклатуры, а иначе из регистра остатки

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

СГРУППИРОВАТЬ ПО
   ТоварыНаСкладахОстатки.Номенклатура,
   ЦеныНоменклатурыСрезПоследних.Номенклатура

УПОРЯДОЧИТЬ ПО
   Номенклатура,
   Номенклатура1,
   КоличествоОстаток,
   Цена
{УПОРЯДОЧИТЬ ПО
   Номенклатура.*,
   Номенклатура1.*,
   КоличествоОстаток,
   Цена}
ИТОГИ
   СУММА(КоличествоОстаток),
   СУММА(Цена)
ПО
   ОБЩИЕ,
   Номенклатура
{ИТОГИ ПО
   Номенклатура.*,
   КоличествоОстаток,
   Цена}
1 IronDemon
 
20.09.11
00:25
Если нужен только товар с остатком измени связи на левое.
Если нужен и с 0 но с ценой тогда используй объединение.
2 Mort
 
20.09.11
00:30
ЕСТЬNULL(ТоварыНаСкладахОстатки.Номенклатура, ЦеныНоменклатурыСрезПоследних.Номенклатура)

только нахрена ЗДЕСЬ полное соединение - ХЗ
3 Капюшон
 
20.09.11
00:44
(2)чтобы видели цены даже у тех у кого нулевой остаток.
4 Капюшон
 
20.09.11
00:44
я решил задачу. всем спасибо.
вот так это делается:

ВЫБРАТЬ
   СУММА(ВнешняяСтатистикаНоменклатурыСрезПоследних.ВнешняяСтатистика) КАК ВнешняяСтатистика,
   СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток,
   ВЫБОР
       КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток > 0
           ТОГДА ТоварыНаСкладахОстатки.Номенклатура
       ИНАЧЕ ВнешняяСтатистикаНоменклатурыСрезПоследних.Номенклатура
   КОНЕЦ КАК Номенклатура
{ВЫБРАТЬ
   ВнешняяСтатистика,
   Номенклатура.*,
   КоличествоОстаток}
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Остатки(&КонДата, ) КАК ТоварыНаСкладахОстатки
       ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ВнешняяСтатистикаНоменклатуры.СрезПоследних(&КонДата, ) КАК ВнешняяСтатистикаНоменклатурыСрезПоследних
       ПО ТоварыНаСкладахОстатки.Номенклатура = ВнешняяСтатистикаНоменклатурыСрезПоследних.Номенклатура

СГРУППИРОВАТЬ ПО
   ВЫБОР
       КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток > 0
           ТОГДА ТоварыНаСкладахОстатки.Номенклатура
       ИНАЧЕ ВнешняяСтатистикаНоменклатурыСрезПоследних.Номенклатура
   КОНЕЦ

УПОРЯДОЧИТЬ ПО
   Номенклатура,
   ВнешняяСтатистика,
   КоличествоОстаток
{УПОРЯДОЧИТЬ ПО
   ВнешняяСтатистика,
   ВнешняяСтатистика,
   КоличествоОстаток,
   Номенклатура.*}
ИТОГИ
   СУММА(ВнешняяСтатистика),
   СУММА(КоличествоОстаток)
ПО
   ОБЩИЕ,
   Номенклатура
{ИТОГИ ПО
   ВнешняяСтатистика,
   Номенклатура.*,
   КоличествоОстаток,
   ВнешняяСтатистика}