Имя: Пароль:
1C
1С v8
СКД: не выбирать ничего, если не установлен отбор
0 echo77
 
22.10.13
14:04
Есть справочник ВычислительнаяТехника.
У справочника есть ТЧ ЖесткиеДиски.

Я хочу сделать отчет на СКД, который бы позволял вывести:
- Всю вычислительную технику
- Вычислительную технику с полной ТЧ Жеские диска, но только в том случае, если в эту ВТ установлен один из перечисленных жеских дисков
1 echo77
 
22.10.13
14:08
Таким образом я хочу сделать запрос с соединением реальной таблицы и вложенным запросом с объединением, в котором и будет стоять отбор по Жесткому диску
2 Defender aka LINN
 
22.10.13
14:08
А "вывести всю вычислительную технику" и "не выбирать ничего" как между собой уживаются?
3 Fragster
 
модератор
22.10.13
14:10
может пригодится:


ВЫБРАТЬ
    ЦеновыеГруппы.Ссылка КАК ЦеноваяГруппа
ПОМЕСТИТЬ ЦеноваяГруппаИсключения
ИЗ
    Справочник.ЦеновыеГруппы КАК ЦеновыеГруппы
ГДЕ
    ЦеновыеГруппы.ДляКонтрагентов
{ГДЕ
    ЦеновыеГруппы.Ссылка.* КАК ЦеноваяГруппаИсключения}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ИСТИНА КАК Исключать
ПОМЕСТИТЬ ПризнакИсключать
ИЗ
    Справочник.ЦеновыеГруппы КАК ЦеновыеГруппы
ГДЕ
    ЦеновыеГруппы.ДляКонтрагентов

ИМЕЮЩИЕ
    НЕ КОЛИЧЕСТВО(*) В
            (ВЫБРАТЬ
                КОЛИЧЕСТВО(*)
            ИЗ
                ЦеноваяГруппаИсключения)
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Контрагенты.Ссылка КАК Контрагент
{ВЫБРАТЬ
    Контрагент.* КАК КонтрагентИсключения}
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ КонтрагентыИсключения КАК КонтрагентыИсключения
        ПО Контрагенты.Ссылка = КонтрагентыИсключения.Контрагент
ГДЕ
    КонтрагентыИсключения.Контрагент ЕСТЬ NULL
4 Холодильник
 
22.10.13
14:11
не понятно.

Соединяешь левым соединением справочник с его ТЧ, что-то типа

Справочник.Ссылка как Ссылка,
ЕстьNULL(СправочникТЧ.ЖесткийДиск,Значение(Справочник.жесткийДиск.пустаяСсылка)) как ЖесткийДиск
5 Fragster
 
модератор
22.10.13
14:11
6 Fragster
 
модератор
22.10.13
14:13
еще можно анализировать отборы и схему подменять
7 echo77
 
22.10.13
14:19
(3) спасибо за идею!
(6) Нет, этого не будем делать :-)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн