Здравствуйте, помогите, пожалуйста, в таком вопросе.
Есть запрос во внешней обработке, который в файловой версии отрабатывает нормально, а на серверной выдает ошибку (ошибка в скрине).

```1c
    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
    | ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.Номенклатура) КАК Объект
    |ИЗ
    | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    |ГДЕ
    | (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Значение КАК СТРОКА(50))) = &Значение
    | И ЗначенияСвойствОбъектов.Свойство = &Свойство
    | И (НЕ ЗначенияСвойствОбъектов.Объект.ПометкаУдаления)";
    Запрос.УстановитьПараметр("Значение", Название);
    Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Наименование в сертификате"));
```

Убираю все условия - нет ошибки, как только добавляю - сразу ошибка.
---
А попробуйте убрать вот это

```1c
    И (НЕ ЗначенияСвойствОбъектов.Объект.ПометкаУдаления)"
```

Предполагаю что ошибка сразу исчезнет и запрос будет работать быстрей. Ибо Вы обращаетесь через "." к составному реквизиту, и ему нужно сделать соединения со всеми типами данных по данному реквизиту.
---
И (НЕ ЗначенияСвойствОбъектов.Объект.ПометкаУдаления) тут объект тоже выразите в справочник Номенклатура.
---
Убираю все условия - нет ошибки, как только добавляю - сразу ошибка. то есть вариант что в запросе ошибка не рассматривается?
---
попробуйте вот так:

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

    Запрос.УстановитьПараметр("НазначениеСвойств", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура);
    Запрос.УстановитьПараметр("Значение", Название);
    Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Наименование в сертификате"));
```
---
А попробуйте убрать вот это

```1c
    И (НЕ ЗначенияСвойствОбъектов.Объект.ПометкаУдаления)"
```

Предполагаю что ошибка сразу исчезнет и запрос будет работать быстрей. Ибо Вы обращаетесь через "." к составному реквизиту, и ему нужно сделать соединения со всеми типами данных по данному реквизиту.
---
Спасибо огромное! Действительно, из-за этого. Я сделала через вложенный запрос (чтоб обращение было не через ".") и все заработало!
---
Первым условием отбора надо Свойство = &Свойство поставить
и его же в выборку - что бы индекс использовался

```1c
    ВЫБРАТЬ ПЕРВЫЕ 1
    ЗначенияСвойствОбъектов.Свойство КАК Свойство,
    ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.Номенклатура) КАК Объект
    ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    ГДЕ
    ЗначенияСвойствОбъектов.Свойство = &Свойство
    И (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Значение КАК СТРОКА(50))) = &Значение
    И (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.Номенклатура).ПометкаУдаления = ЛОЖЬ)
```
---
Вместо - (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Значение КАК СТРОКА(50))) = &Значение попробуйте так:
ЗначенияСвойствОбъектов.Значение = &Значение и передавайте значение а не строку.
---
А если там действительно строка? (такой тип данных там тоже есть)
---
MSSQL - какой версии? Из интереса чуть погуглил - нашел такую ошибку для 2005. Предлагается лечить апдейтом:
https://support.microsoft.com/ru-ru/kb/945896
---
А что таки с MSSQL? Писал выше, (8).
Так-то запрос вполне себе тривиальный, хоть и с разыменованием.
---
server 2008 R2