Неверные параметры в операции сравнения.

1. soulnotsailed 25.09.17 15:15 Сейчас в теме
Доброго дня "коллеги по цеху".
Ситуация в следующем, имею внешнюю печатную форму Торг12, необходимо передать в печатную форму доп.реквизиты с отбором. Консолью запроса без всяких проблем реквизиты выловлены, а вот уже при передаче параметров "привет" с ошибкой:

Обработчик печатной формы Торг12 (внешняя): {ВнешняяОбработка.ПечатнаяФормаТорг12.МодульОбъекта(131)}: Ошибка при вызове метода контекста (Выполнить): {(16, 42)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И ЗначенияСвойствОбъектов.Объект.Ссылка <<?>>= &ОбъектНазначения


Сам запрос и кусок функции.

Функция Печать(ДокументОбъект, ТабДокумент) экспорт
	ссылкаНаОбъект=ДокументОбъект;
	ТабДокумент=Новый ТабличныйДокумент;
	
	ТабДокумент.АвтоМасштаб = Истина;
	ТабДокумент.ТолькоПросмотр=Истина;
	ТабДокумент.Защита=истина;

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

	ПоследнийУровень = 1;	 
	КодСтроки = 3;
	Запрос.УстановитьПараметр("ПредопределенноеНазначение",ПланыВидовХарактеристик.НазначенияСвойствОбъектов.Документ_РеализацияТоваров);
	Запрос.УстановитьПараметр("ПоследнийУровень",ПоследнийУровень);
	Запрос.УстановитьПараметр("НомерСтроки", КодСтроки);
	Запрос.УстановитьПараметр("ОбъектНазначения", СсылкаНаОбъект);
	Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("02032"));
	Выборка = Запрос.Выполнить().Выбрать();
	
	Значение = Выборка.Значение;

Показать

Направьте на путь истинный.
По теме из базы знаний
Найденные решения
12. Dm_Kz 25.09.17 16:08 Сейчас в теме
(11) Выборка - это коллекция.Из выборки надо получить следующее значение. Выборка.Следующий()
NikitaPopovskiy; +1 Ответить
13. Dm_Kz 25.09.17 16:10 Сейчас в теме
(11) либо делать
ТаблицаЗначений = Запрос.Выполнить().Выгрузить()
тогда получите не выборку, а таблицу значений
NikitaPopovskiy; +1 Ответить
16. Dm_Kz 25.09.17 16:24 Сейчас в теме
(15) Обойти её построчно (как в общем то и выборку)
для выборки будет что-то типа
Пока Выборка.Следующий() Цикл ...... КонецЦикла
для таблицы значений, например так -
Для Каждого ТекущаяСтрокаТаблицы Из ТаблицаЗначений Цикл .... КонецЦикла

В первом случае текущая строка выборки будет доступна через переменную "Выборка". Во втором - через переменную "ТекущаяСтрокаТаблицы"
Если знаете конкретную строку таблицы, то получить её можно ТаблицаЗначений[НомерСтрокиТаблицы]
NikitaPopovskiy; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Irwin 554 25.09.17 15:32 Сейчас в теме
(1) Если встать отладчиком на строке
Запрос.УстановитьПараметр("ПредопределенноеНазначение",СсылкаНаОбъект);

И посмотреть значение СсылкаНаОбъект, то что будет в значении переменной?
5. soulnotsailed 25.09.17 15:43 Сейчас в теме
(2) чуть ошибся выкладывая код: Запрос.УстановитьПараметр("ПредопределенноеНазначение",ПланыВидовХарактеристик.НазначенияСвойствОбъектов.Документ_РеализацияТоваров);
Прикрепленные файлы:
3. vadim1011985 100 25.09.17 15:33 Сейчас в теме
попробуй параметр поместить в массив и использовать сравнение В (&твойпараметр)
4. Dm_Kz 25.09.17 15:34 Сейчас в теме
ДокументОбъект - это не строка. передавайте параметр правильного типа
6. soulnotsailed 25.09.17 15:44 Сейчас в теме
(4) Исправил, все равно теперь ввалит ошибку на:

Обработчик печатной формы Торг12 (внешняя): {ВнешняяОбработка.ПечатнаяФормаТорг12.МодульОбъекта(131)}: Ошибка при вызове метода контекста (Выполнить): {(16, 42)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И ЗначенияСвойствОбъектов.Объект.Ссылка <<?>>= &ОбъектНазначения
7. Dm_Kz 25.09.17 15:48 Сейчас в теме
(6) У вас в "ОбъектНазначения" - это видимо не ссылка на документ, а именно объект, а сравниваете вы с ЗначенияСвойствОбъектов.Объект.Ссылка. Потому и ошибка
10. Dm_Kz 25.09.17 15:58 Сейчас в теме
(6) Напишите вместо
ссылкаНаОбъект=ДокументОбъект
ссылкаНаОбъект=ДокументОбъект.Ссылка
Запрос, скорее всего, перестанет падать
11. soulnotsailed 25.09.17 16:05 Сейчас в теме
(10)
ссылкаНаОбъект=ДокументОбъект.Ссылка

Верно! Перестал падать на ошибке :) но запрос так и не отрабатывается :(
Прикрепленные файлы:
12. Dm_Kz 25.09.17 16:08 Сейчас в теме
(11) Выборка - это коллекция.Из выборки надо получить следующее значение. Выборка.Следующий()
NikitaPopovskiy; +1 Ответить
13. Dm_Kz 25.09.17 16:10 Сейчас в теме
(11) либо делать
ТаблицаЗначений = Запрос.Выполнить().Выгрузить()
тогда получите не выборку, а таблицу значений
NikitaPopovskiy; +1 Ответить
15. soulnotsailed 25.09.17 16:19 Сейчас в теме
(13)
ТаблицаЗначений = Запрос.Выполнить().Выгрузить()

А как теперь вытащить именно то что нужно из таблицы значений?
Прикрепленные файлы:
16. Dm_Kz 25.09.17 16:24 Сейчас в теме
(15) Обойти её построчно (как в общем то и выборку)
для выборки будет что-то типа
Пока Выборка.Следующий() Цикл ...... КонецЦикла
для таблицы значений, например так -
Для Каждого ТекущаяСтрокаТаблицы Из ТаблицаЗначений Цикл .... КонецЦикла

В первом случае текущая строка выборки будет доступна через переменную "Выборка". Во втором - через переменную "ТекущаяСтрокаТаблицы"
Если знаете конкретную строку таблицы, то получить её можно ТаблицаЗначений[НомерСтрокиТаблицы]
NikitaPopovskiy; +1 Ответить
17. soulnotsailed 25.09.17 16:26 Сейчас в теме
(16) Коллега, "снимаю шляпу" - Вы решили мою задачу. При много Вам благодарен, сберегли время, нервы, здоровье :)
8. soulnotsailed 25.09.17 15:48 Сейчас в теме
(4)Как передать параметр текущего документа который идет на печать?
9. Dm_Kz 25.09.17 15:54 Сейчас в теме
(8) Не понял вопрос. Один из Дополнительных свойств документа?
14. ImHunter 315 25.09.17 16:11 Сейчас в теме
А если попробовать без Ссылка:
И ЗначенияСвойствОбъектов.Объект= &ОбъектНазначения

?
18. soulnotsailed 25.09.17 16:30 Сейчас в теме
Данный запрос, дает возможность "выдрать" реквизиты из СвойствОбъекта.
Если кому интересно выкладываю кусок полной функции:
Функция Печать(ДокументОбъект, ТабДокумент) экспорт
	ссылкаНаОбъект=ДокументОбъект.Ссылка;
	ТабДокумент=Новый ТабличныйДокумент;
	
	ТабДокумент.АвтоМасштаб = Истина;
	ТабДокумент.ТолькоПросмотр=Истина;
	ТабДокумент.Защита=истина;

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

	ПоследнийУровень = 1;	 
	КодСтроки = 3;

	Запрос.УстановитьПараметр("ПредопределенноеНазначение",ПланыВидовХарактеристик.НазначенияСвойствОбъектов.Документ_РеализацияТоваров);
	Запрос.УстановитьПараметр("ПоследнийУровень",ПоследнийУровень);
	Запрос.УстановитьПараметр("НомерСтроки", КодСтроки);
	Запрос.УстановитьПараметр("ОбъектНазначения", СсылкаНаОбъект);
	Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("02032"));
	Выборка = Запрос.Выполнить().Выбрать();
	Выборка.Следующий();
	
	ТаблицаЗначений = Запрос.Выполнить().Выгрузить();
	Значение = Выборка.Значение;
Показать

Всем огромное "человеческое спасибо" кто принимал участие.
Оставьте свое сообщение

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