Задать вопрос
@rusi4z

Не находит номенклатуру в запросе по пустой ссылке в 1С, что изменить?

Я может чего то не понимаю, хотя вроде даже и не должно искать по пустой ссылке (она же пустая), но если я указываю в поиске (ГДЕ) поиск по УИН, и заранее создаю реквизит инициализированный, то поиск номенклатуры по УИНу проходит все циклы, однако поиск по ссылке пропускает поиск по циклам и сразу уходит в конец.
К слову хочу проверить как будет проходить поиск по ссылке, потому что этот код я засуну в конфигурацию" конвертация данных 2.1.", а там ни компиляции, ни отладки нет, поэтому в качестве отладки пользуюсь конфигуратором.
Подскажите пожалуйста, как я могу найти документ по ссылке, если в качестве ссылки у меня будет ссылка из другой конфигурации на этот же документ (извиняюсь за тавтологию).

СсылкаНаОбъект = Документы.ОтчетОРозничныхПродажах.ПустаяСсылка();
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ОтчетОРозничныхПродажах.Ссылка КАК Ссылка,
	|	ОтчетОРозничныхПродажах.КассаККМ КАК КассаККМ,
	|	ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами.(
	|		Ссылка КАК Ссылка,
	|		НомерСтроки КАК НомерСтроки,
	|		ВидОплаты КАК ВидОплаты,
	|		НомерЧека КАК НомерЧека,
	|		ПроцентТорговойУступки КАК ПроцентТорговойУступки,
	|		Сумма КАК Сумма,
	|		СуммаТорговойУступки КАК СуммаТорговойУступки,
	|		КлючПродажи КАК КлючПродажи
	|	) КАК ОплатаПлатежнымиКартами
	|ИЗ
	|	Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
	|ГДЕ
	|	ОтчетОРозничныхПродажах.Товары.Ссылка = &Ссылка";          
	
	Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
	РезультатЗапроса = Запрос.Выполнить();
	Результат = РезультатЗапроса.Выгрузить();
	
	С = Новый Структура; 
	
	Для Каждого Строка Из Результат Цикл 
		С.Вставить("КассаККМ", Строка.КассаККМ);
		Для Каждого Поле Из Строка.ОплатаПлатежнымиКартами Цикл
			С.Вставить("ВидОплаты", Поле.ВидОплаты);
			С.Вставить("НомерЧека", Поле.НомерЧека);
			С.Вставить("ПроцентТорговойУступки", Поле.ПроцентТорговойУступки);
			С.Вставить("Сумма", Поле.Сумма);
			С.Вставить("СуммаТорговойУступки", Поле.СуммаТорговойУступки);
			С.Вставить("КлючПродажи", Поле.КлючПродажи);
		КонецЦикла;   
	КонецЦикла;
	
	Возврат СсылкаНаОбъект;
  • Вопрос задан
  • 38 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Dementor
программист, архитектор, аналитик
Сложно понять вопрос, но если вас интересует поведение:

поиск номенклатуры по УИНу проходит все циклы, однако поиск по ссылке пропускает поиск по циклам и сразу уходит в конец

То тут все просто - если по вашему условию в базе данных есть документы типа ОтчетОРозничныхПродажах, то они выберутся и по ним пойдет цикл; а если данных нет, то и цикла не будет.

ОтчетОРозничныхПродажах.Товары.Ссылка = &Ссылка

Упоминанием в условии вложенного подзапроса, вы усложняете работу планировщику запросов и результат может быть значительно медленнее чем классическое:

ОтчетОРозничныхПродажах.Ссылка = &Ссылка
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы