Есть промежуточная конфигурация в запросе в есть обращение к реквизиту, который отсутствует в конфигурации, к которому запрос обращается. Подскажите, пожалуйста можно ли в запросе обойти этот реквизит. Если бы это была Табличная част можно было через Есть NULL а как сделать с реквизитом?

// ВТНоменклатураСХарактеристиками.Владелец.ИспользоватьСерийныеНомера - отсуствующий реквизит
// ВТНоменклатураСХарактеристиками.Владелец.УдалитьИспользоватьСерийныеНомера - Это присуствует!!!
Как сделать что бы оба присутствовали. Простую замену можно, но хочется сделать универсально. Спасибо!

```1c
    СоединениеСТаблицейУпаковокТекст = " ПО (ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
    | ИЛИ ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ПустаяСсылка)
    | ТОГДА ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.ИспользоватьСерийныеНомера
    | ТОГДА ЛОЖЬ
    | ИНАЧЕ ВТНоменклатураСХарактеристиками.Владелец = ВТУпаковкиНоменклатуры.Владелец
    | КОНЕЦ
    | ИНАЧЕ ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.ИспользоватьСерийныеНомера
    | ТОГДА ЛОЖЬ
    | ИНАЧЕ ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ВТУпаковкиНоменклатуры.Владелец
    | КОНЕЦ
    | КОНЕЦ
    |ИЛИ (ВТНоменклатураСХарактеристиками.Владелец = ВТУпаковкиНоменклатуры.Владелец
    | И ВТНоменклатураСХарактеристиками.Владелец.ЕдиницаИзмерения = ВТУпаковкиНоменклатуры.Ссылка)
    |)";
```
---
Ясно спасибо и вот что получилось!

```1c
    Если глМетаданные.Справочники.Номенклатура.Реквизиты.Найти("УдалитьИспользоватьСерийныеНомера") <> Неопределено Тогда
    СоединениеСТаблицейУпаковокТекст = " ПО (ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
    | ИЛИ ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ПустаяСсылка)
    | ТОГДА ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.УдалитьИспользоватьСерийныеНомера
    | ТОГДА ЛОЖЬ
    | КОНЕЦ
    | КОНЕЦ
    |ИЛИ (ВТНоменклатураСХарактеристиками.Владелец = ВТУпаковкиНоменклатуры.Владелец
    | И ВТНоменклатураСХарактеристиками.Владелец.ЕдиницаИзмерения = ВТУпаковкиНоменклатуры.Ссылка)
    |)";
    Иначе СоединениеСТаблицейУпаковокТекст = " ПО (ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
    | ИЛИ ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ПустаяСсылка)
    | ТОГДА ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.ИспользоватьСерийныеНомера
    | ТОГДА ЛОЖЬ
    | ИНАЧЕ ВТНоменклатураСХарактеристиками.Владелец = ВТУпаковкиНоменклатуры.Владелец
    | КОНЕЦ
    | ИНАЧЕ ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.ИспользоватьСерийныеНомера
    | ТОГДА ЛОЖЬ
    | ИНАЧЕ ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ВТУпаковкиНоменклатуры.Владелец
    | КОНЕЦ
    | КОНЕЦ
    |ИЛИ (ВТНоменклатураСХарактеристиками.Владелец = ВТУпаковкиНоменклатуры.Владелец
    | И ВТНоменклатураСХарактеристиками.Владелец.ЕдиницаИзмерения = ВТУпаковкиНоменклатуры.Ссылка)
    |)";
    КонецЕсли;
```
---
это не универсально а кастомизация под конфу/релиз.
Я делал как в (2).
При написании запроса вы должны знать метаданные, поэтому узнав это кодом построили запрос заменой или програмно.
---
Универсально нужно собирать текст запроса по метаданным
---
Согласен, нужно собирать текст запроса по метаданным
---
Не знаю как правильно, но вот думаю может так будет. Что скажете?

```1c
    Если (Найти(глНазваниеКонфигурации, "управлениеторговлейдлябеларуси") > 0 и глВерсияКонфигурации >=3000000)Тогда
    СоединениеСТаблицейУпаковокТекст = " ПО (ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
    | ИЛИ ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ПустаяСсылка)
    | ТОГДА ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.УдалитьИспользоватьСерийныеНомера
    | ТОГДА ЛОЖЬ
    | КОНЕЦ
    | КОНЕЦ
    |ИЛИ (ВТНоменклатураСХарактеристиками.Владелец = ВТУпаковкиНоменклатуры.Владелец
    | И ВТНоменклатураСХарактеристиками.Владелец.ЕдиницаИзмерения = ВТУпаковкиНоменклатуры.Ссылка)
    |)";
    Иначе СоединениеСТаблицейУпаковокТекст = " ПО (ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
    | ИЛИ ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ПустаяСсылка)
    | ТОГДА ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.ИспользоватьСерийныеНомера
    | ТОГДА ЛОЖЬ
    | ИНАЧЕ ВТНоменклатураСХарактеристиками.Владелец = ВТУпаковкиНоменклатуры.Владелец
    | КОНЕЦ
    | ИНАЧЕ ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.ИспользоватьСерийныеНомера
    | ТОГДА ЛОЖЬ
    | ИНАЧЕ ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ВТУпаковкиНоменклатуры.Владелец
    | КОНЕЦ
    | КОНЕЦ
    |ИЛИ (ВТНоменклатураСХарактеристиками.Владелец = ВТУпаковкиНоменклатуры.Владелец
    | И ВТНоменклатураСХарактеристиками.Владелец.ЕдиницаИзмерения = ВТУпаковкиНоменклатуры.Ссылка)
    |)";
```
---
Да можно и так для начала, если вы только учитесь.

Но я бы попробовал вместо этого:

Если (Найти(глНазваниеКонфигурации, "управлениеторговлейдлябеларуси") > 0 и глВерсияКонфигурации >=3000000)Тогда

Вот примерно так:

Если Метаданные.Справочники.Номенклатура.Реквизиты.Найти("УдалитьИспользоватьСерийныеНомера") <> Неопределено Тогда
---
Если Метаданные.Справочники.Номенклатура.Реквизиты.Найти("УдалитьИспользоватьСерийныеНомера") <> Неопределено Тогда

Да спасибо так и сделал все работает, но в чем преимущество???
---
Разницы почти нет, просто мой пример будет работать на всех конфигурациях, независимо от названия.
---
Ясно спасибо и вот что получилось!

```1c
    Если глМетаданные.Справочники.Номенклатура.Реквизиты.Найти("УдалитьИспользоватьСерийныеНомера") <> Неопределено Тогда
    СоединениеСТаблицейУпаковокТекст = " ПО (ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
    | ИЛИ ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ПустаяСсылка)
    | ТОГДА ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.УдалитьИспользоватьСерийныеНомера
    | ТОГДА ЛОЖЬ
    | КОНЕЦ
    | КОНЕЦ
    |ИЛИ (ВТНоменклатураСХарактеристиками.Владелец = ВТУпаковкиНоменклатуры.Владелец
    | И ВТНоменклатураСХарактеристиками.Владелец.ЕдиницаИзмерения = ВТУпаковкиНоменклатуры.Ссылка)
    |)";
    Иначе СоединениеСТаблицейУпаковокТекст = " ПО (ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
    | ИЛИ ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ПустаяСсылка)
    | ТОГДА ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.ИспользоватьСерийныеНомера
    | ТОГДА ЛОЖЬ
    | ИНАЧЕ ВТНоменклатураСХарактеристиками.Владелец = ВТУпаковкиНоменклатуры.Владелец
    | КОНЕЦ
    | ИНАЧЕ ВЫБОР
    | КОГДА ВТНоменклатураСХарактеристиками.Владелец.ИспользоватьСерийныеНомера
    | ТОГДА ЛОЖЬ
    | ИНАЧЕ ВТНоменклатураСХарактеристиками.Владелец.НаборУпаковок = ВТУпаковкиНоменклатуры.Владелец
    | КОНЕЦ
    | КОНЕЦ
    |ИЛИ (ВТНоменклатураСХарактеристиками.Владелец = ВТУпаковкиНоменклатуры.Владелец
    | И ВТНоменклатураСХарактеристиками.Владелец.ЕдиницаИзмерения = ВТУпаковкиНоменклатуры.Ссылка)
    |)";
    КонецЕсли;
```