Имя: Пароль:
1C
1С v8
Фигурные скобки в запросе
,
0 cmex
 
08.11.13
12:39
Добрый день.
Объясните, пожалуйста, что означает каждая фигурная скобка в нижеследующем запросе?

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


И что значит СправочникНоменклатура.Ссылка.* КАК Номенклатура?
Спасибо
1 Beduin
 
08.11.13
12:40
(0) Конструкции для построителей.
2 marvak
 
08.11.13
12:47
(0)
Значит в соответствующем построителе отчета, будет доступен отбор по конкретной номенклатуре и всем ее реквизитам (об этом говорит звездочка после точки СправочникНоменклатура.Ссылка.*). А название элемента отбора будет "Номенклатура" (КАК Номенклатура).
3 Ненавижу 1С
 
гуру
08.11.13
12:48
(0) ты Си/Си++/Си#/Ява видел фигурные скобочки?
вот тут тоже самое
4 cmex
 
08.11.13
12:53
(2) то есть, если я хочу искать Номенклатуру по коду, то мне нужно передать в параметр Номенклатура мой код, если хочу по наименованию, то в Номенклатуру передаю Наименование и так любой реквизит?
5 cmex
 
08.11.13
13:08
(3) нет
6 Ненавижу 1С
 
гуру
08.11.13
13:09
(5) нет, в смысле невидел? жаль
7 cmex
 
08.11.13
13:17
(6) извиняюсь за двусмысленность, имел в виду не значком с Си, к сожалению
8 hhhh
 
08.11.13
13:19
(7) не ты будешь передавать параметр, а пользователь увидит в окошке отбор номенклатуру с крестиком, в которой он может задать код или наименование.

А если ты выкинешь это из фигурных скобок, то пользователь ничего не увидит.
9 cmex
 
08.11.13
14:48
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&ДатаЦены)}, {(Номенклатура).* КАК Ссылка, (ТипЦен) КАК ТипЦен, (Валюта) КАК Валюта}) КАК ЦеныНоменклатурыСрезПоследних
        ПО СправочникНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура}

А как программа узнает нужно мне подключать это соединение или нет?
10 cmex
 
08.11.13
14:49
И где в запросе параметр "Организация". В коде его заполняют

ОтборыСписковКлиентСервер.ИзменитьЭлементОтбораСписка(СписокНоменклатуры, "Организация",
        Организация, ЗначениеЗаполнено(Организация));


в (0) нет такого параметра
11 hhhh
 
08.11.13
15:14
ну если нет, то просто ничего не делает
12 Maxus43
 
08.11.13
15:16
(9) если в выборке будут использоватся данные регистра - то поймёт что надо использовать, если нет - то не будет
Ошибка? Это не ошибка, это системная функция.