Ошибка при выполнении запроса в серверном варианте

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

Убираю все условия - нет ошибки, как только добавляю - сразу ошибка.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
6. onetone 29.11.16 22:20 Сейчас в теме
(1)
А попробуйте убрать вот это
И (НЕ ЗначенияСвойствОбъектов.Объект.ПометкаУдаления)"

Предполагаю что ошибка сразу исчезнет и запрос будет работать быстрей. Ибо Вы обращаетесь через "." к составному реквизиту, и ему нужно сделать соединения со всеми типами данных по данному реквизиту.
Anjut-ka4; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 34 29.11.16 18:38 Сейчас в теме
(1) И (НЕ ЗначенияСвойствОбъектов.Объект.ПометкаУдаления) тут объект тоже выразите в справочник Номенклатура.
4. Fox-trot 158 29.11.16 20:48 Сейчас в теме
(1)
Убираю все условия - нет ошибки, как только добавляю - сразу ошибка.
то есть вариант что в запросе ошибка не рассматривается?
5. spacecraft 29.11.16 22:06 Сейчас в теме
(1) попробуйте вот так:
Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|	ЗначенияСвойствОбъектов.Объект
		|ИЗ
		|	(ВЫБРАТЬ
		|		СвойстваОбъектов.Ссылка КАК Ссылка
		|	ИЗ
		|		ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
		|	ГДЕ
		|		СвойстваОбъектов.НазначениеСвойства В(&НазначениеСвойств)
		|		И НЕ СвойстваОбъектов.ПометкаУдаления
		|		И СвойстваОбъектов.Ссылка = &Свойство) КАК СвойстваОбъектов
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
		|		ПО (ЗначенияСвойствОбъектов.Свойство = СвойстваОбъектов.Ссылка)
		|ГДЕ
		|	ЗначенияСвойствОбъектов.Значение.Наименование = &Значение";
	
	Запрос.УстановитьПараметр("НазначениеСвойств", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура);
	Запрос.УстановитьПараметр("Значение", Название);
	Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Наименование в сертификате"));
Показать
6. onetone 29.11.16 22:20 Сейчас в теме
(1)
А попробуйте убрать вот это
И (НЕ ЗначенияСвойствОбъектов.Объект.ПометкаУдаления)"

Предполагаю что ошибка сразу исчезнет и запрос будет работать быстрей. Ибо Вы обращаетесь через "." к составному реквизиту, и ему нужно сделать соединения со всеми типами данных по данному реквизиту.
Anjut-ka4; +1 Ответить
10. Anjut-ka4 30.11.16 20:43 Сейчас в теме
(6) Спасибо огромное! Действительно, из-за этого. Я сделала через вложенный запрос (чтоб обращение было не через ".") и все заработало!
3. caponid 29.11.16 18:43 Сейчас в теме
Первым условием отбора надо Свойство = &Свойство поставить
и его же в выборку - что бы индекс использовался
ВЫБРАТЬ ПЕРВЫЕ 1
    ЗначенияСвойствОбъектов.Свойство КАК Свойство,
    ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.Номенклатура) КАК Объект
ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
     ЗначенияСвойствОбъектов.Свойство = &Свойство
     И (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Значение КАК СТРОКА(50))) = &Значение
     И (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Объект КАК Справочник.Номенклатура).ПометкаУдаления = ЛОЖЬ)
Показать
7. 2Liga 11 30.11.16 08:17 Сейчас в теме
Вместо - (ВЫРАЗИТЬ(ЗначенияСвойствОбъектов.Значение КАК СТРОКА(50))) = &Значение попробуйте так:
ЗначенияСвойствОбъектов.Значение = &Значение и передавайте значение а не строку.
9. onetone 30.11.16 08:49 Сейчас в теме
(7)А если там действительно строка? (такой тип данных там тоже есть)
8. ImHunter 315 30.11.16 08:48 Сейчас в теме
MSSQL - какой версии? Из интереса чуть погуглил - нашел такую ошибку для 2005. Предлагается лечить апдейтом:
https://support.microsoft.com/ru-ru/kb/945896
11. ImHunter 315 01.12.16 07:58 Сейчас в теме
А что таки с MSSQL? Писал выше, (8).
Так-то запрос вполне себе тривиальный, хоть и с разыменованием.
12. Anjut-ka4 05.12.16 11:16 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот