Имя: Пароль:
1C
1С v8
КомпоновщикМакетаКомпоновкиДанных и Отбор
0 eugenyfs
 
18.06.16
16:01
С помощью СКД формируется запрос для выгрузки на сайт на 1C Bitrix.
На форме есть отбор который определяет условия какие товары будут выгружены на сайт. Этот отбор попадает в НастройкиКомпоновкиДанныхДляМакета.
Так вот если в этом отборе есть сгруппированные условия И, ИЛИ с использованием полей Номенклатура, Склад, Остаток то при формировании макета
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаВыгрузки, КомпоновщикНастроек.ПолучитьНастройки())
вылазит Ошибка компоновки макета
по причине:
Поле не найдено "Номенклатура". (также как и Остаток и Склад)

Если условия не в группе И, ИЛИ, то все работает.
Что-то не так с макетом? или с этими полями? Может ли быть какое-то ограничение на группировку условий?

И правильно ли я понимаю что Отбор в настройках компоновщика накладывает условие на весь запрос СКД? и его в тексте не видно?
Вот текст этого запроса:
ВЫБРАТЬ
    Склады.Ссылка КАК Склад,
    "Склад" КАК ТипОбъекта
ПОМЕСТИТЬ ВремСклады
ИЗ
    Справочник.Склады КАК Склады
ГДЕ
    НЕ Склады.ЭтоГруппа
{ГДЕ
    Склады.Ссылка.* КАК Склад}

ИНДЕКСИРОВАТЬ ПО
    Склад
;

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

ИНДЕКСИРОВАТЬ ПО
    Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СоглашенияСКлиентами.Ссылка КАК Соглашение,
    "Соглашение" КАК ТипОбъекта
ПОМЕСТИТЬ ВремСоглашения
ИЗ
    Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
ГДЕ
    СоглашенияСКлиентами.Типовое
    И СоглашенияСКлиентами.ДоступноВнешнимПользователям
    И СоглашенияСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСКлиентами.Действует)
    И СоглашенияСКлиентами.СегментПартнеров = ЗНАЧЕНИЕ(Справочник.СегментыПартнеров.ПустаяСсылка)
{ГДЕ
    СоглашенияСКлиентами.Ссылка.* КАК Соглашение}

ИНДЕКСИРОВАТЬ ПО
    Соглашение
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    "ЕдиницаИзмерения" КАК ТипОбъекта,
    ВремНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
ПОМЕСТИТЬ ВремЕдиницыИзмерения
ИЗ
    ВремНоменклатура КАК ВремНоменклатура
ГДЕ
    ВремНоменклатура.ЕдиницаИзмерения <> ЗНАЧЕНИЕ(Справочник.ЕдиницыИзмерения.ПустаяСсылка)

ИНДЕКСИРОВАТЬ ПО
    ЕдиницаИзмерения
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДополнительныеРеквизитыИСведения.Ссылка КАК Свойство,
    "Свойство" КАК ТипОбъекта
ПОМЕСТИТЬ ВремВсеСвойства
ИЗ
    ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
ГДЕ
    &НадоВыгружатьСвойства = ИСТИНА
    И ДополнительныеРеквизитыИСведения.Б_Идентификатор <> "СвойствоЗаказа"
{ГДЕ
    ДополнительныеРеквизитыИСведения.Ссылка.* КАК Свойство}

ИНДЕКСИРОВАТЬ ПО
    Свойство
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВремНоменклатура.ТипОбъекта,
    ВремНоменклатура.Номенклатура КАК Объект
ИЗ
    ВремНоменклатура КАК ВремНоменклатура

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

ВЫБРАТЬ
    ВремСоглашения.ТипОбъекта,
    ВремСоглашения.Соглашение
ИЗ
    ВремСоглашения КАК ВремСоглашения

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

ВЫБРАТЬ
    ВремЕдиницыИзмерения.ТипОбъекта,
    ВремЕдиницыИзмерения.ЕдиницаИзмерения
ИЗ
    ВремЕдиницыИзмерения КАК ВремЕдиницыИзмерения

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

ВЫБРАТЬ
    ВремВсеСвойства.ТипОбъекта,
    ВремВсеСвойства.Свойство
ИЗ
    ВремВсеСвойства КАК ВремВсеСвойства

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

ВЫБРАТЬ
    ВремСклады.ТипОбъекта,
    ВремСклады.Склад
ИЗ
    ВремСклады КАК ВремСклады
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремНоменклатура
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремСоглашения
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремЕдиницыИзмерения
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремВсеСвойства
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВремСклады

Спасибо.
AdBlock убивает бесплатный контент. 1Сергей