Ошибка в подзапросе (Ожидается выражение "ВЫБРАТЬ" <<?>>Номенклатура В ( ))

1. user1426258 17.10.24 20:10 Сейчас в теме
Всем привет, подскажите, пожалуйста, пытаюсь сделать запрос, но не выходит результат, стал проверять через консоль запросов и вводить подзапрос, в итоге выдал ошибку -

Ошибка при вызове метода контекста (УстановитьТекстЗапроса)
{ВнешняяОбработка.QueryWizard.Форма.QueryWizard.Форма(118)}:QuerySchema.SetQueryText(Query);
{ВнешняяОбработка.QueryWizard.Форма.ArbitraryExpression.Форма(325)}:OpenForm("ExternalDataProcessor.QueryWizard.Form.QueryWizard", Params,, True,,,

по причине:
{(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
<<?>>Номенклатура В ( )



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



Пробовал через отладчик посмотреть, останавливается на
 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

пишет ошибка при чтении, соответственно, дальше не проходит и все мои значения в запросе неопределенны
По теме из базы знаний
Найденные решения
13. user1426258 19.10.24 19:11 Сейчас в теме
В общем, в моем случае решением было проверка на оперативность документа. У меня запрос стоял в условии, что документ оперативный, а я проводил на доках предыдущих дней. Создал новый док и вуаля - я программист. Может кому поможет.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. spacecraft 17.10.24 21:17 Сейчас в теме
(1) это старая болезнь консолей.

(1)
пишет ошибка при чтении, соответственно, дальше не проходит и все мои значения в запросе неопределенны

Нет возвращаемых записей. Результат запроса - пустой.

Судя по коду, если в регистре еще не было записей по списку номенклатуры из ТЧ документа, то так и будет.
Виртуальная таблица Остатки получает значения, не включая указываемый период. В данном случае до момента времени документа.
5. user1426258 17.10.24 21:31 Сейчас в теме
(4) А что нужно поменять? (не в своей жизни)
2. starjevschik 17.10.24 20:49 Сейчас в теме
Тут бы надо определиться...
Текст ошибки - это из обработки консоль запросов. Что-то туда не то записали, текста запроса нет, скорее всего. Мы это исправляем?
Или мы хотим понять, почему наш запрос ничего не возвращает? Тогда неплохо бы посмотреть, какие параметры мы запросу передаем. Если даже отладчик у нас работает, то это вроде бы не так уж сложно.
Или какую проблему хотим решить? Их много перечислено и все разные...
3. user1426258 17.10.24 21:01 Сейчас в теме
(2) Кто мы??? ученики 1с
Чего мы хотим??? не знаем
когда??? сейчас

А если серьезно, то для меня запрос в консоли и конфигураторе одно и тоже. Я же на учебной тренируюсь. Учу по Гилеву и там в документе РеализацияТоваровИУслуг должны проходить движения в регистры Себестоимость и Продажи, но почему то после
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

отладчик уходит в конецЕсли

Если НЕ Отказ Тогда
		
		Движения.СебестоимостьТоваров.Записывать = Истина;  
		
		// регистр Продажи 
		Движения.Продажи.Записывать = Истина;
		
			
		
	
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	СебестоимостьТоваровОстатки.Номенклатура КАК Номенклатура,
		|	СебестоимостьТоваровОстатки.СуммаОстаток КАК Сумма,
		|	СебестоимостьТоваровОстатки.КоличествоОстаток КАК Количество
		|ИЗ
		|	РегистрНакопления.СебестоимостьТоваров.Остатки(
		|			&МоментВремени,
		|			Номенклатура В
		|				(ВЫБРАТЬ
		|					РеализацияТоваровИУслугТовары.Товар КАК Товар
		|				ИЗ
		|					Документ.РеализацияТоваровИУслуг.Товары КАК РеализацияТоваровИУслугТовары
		|				ГДЕ
		|					РеализацияТоваровИУслугТовары.Ссылка = &Ссылка)) КАК СебестоимостьТоваровОстатки";
		
		Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
		Запрос.УстановитьПараметр("Ссылка", Ссылка);
		
		РезультатЗапроса = Запрос.Выполнить();
		
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			Если ВыборкаДетальныеЗаписи.Количество <> 0 Тогда
				
				СебеСтоимостьЕдиницы = ВыборкаДетальныеЗаписи.Сумма/ВыборкаДетальныеЗаписи.Количество;
			Иначе
				СебеСтоимостьЕдиницы = 0;
			КонецЕсли;  
			
		// Движения по регистру СебестоимостьТоваров	
		Движение = Движения.СебестоимостьТоваров.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
		Движение.Период = Дата;    
		
		СтрокаТЧ = Товары.Найти(ВыборкаДетальныеЗаписи.Номенклатура, "Товар"); 
		
		Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
		Движение.Количество = СтрокаТЧ.Количество;
		СебестоимостьСписания = СебеСтоимостьЕдиницы * СтрокаТЧ.Количество;
		Движение.Сумма = СебестоимостьСписания;
		
		
		// Движения по регистру Продажи
		Движение = Движения.Продажи.Добавить();
		Движение.Период = Дата;
		Движение.Клиент = Клиент;
		Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
		Движение.Количество = СтрокаТЧ.Количество;
		Движение.Сумма = СтрокаТЧ.Сумма;
		Движение.Себестоимость =  СебестоимостьСписания;
			
		КонецЦикла;
		
			
	КонецЕсли;
Показать
6. starjevschik 17.10.24 22:07 Сейчас в теме
(3)
для меня запрос в консоли и конфигураторе одно и тоже

ну тут же не ты запросы выполняешь, а 1с. Поэтому важно, что для нее запросы, а не что для тебя, так?


(2)
неплохо бы посмотреть, какие параметры мы запросу передаем

а если еще и отвечать на вопросы...


(3)
Я же на учебной тренируюсь

так у препода спроси, это его работа, он за нее получает деньги. Он лучше объяснит. Здесь все-таки не учат
7. user1426258 18.10.24 20:27 Сейчас в теме
(6)
ну тут же не ты запросы выполняешь, а 1с. Поэтому важно, что для нее запросы, а не что для тебя, так?

Я так написал, потому что не знал, что для нее это разные вещи
Текст ошибки - это из обработки консоль запросов. Что-то туда не то записали, текста запроса нет, скорее всего. Мы это исправляем?
Или мы хотим понять, почему наш запрос ничего не возвращает?
Прикрепленные файлы:
8. user1426258 18.10.24 20:31 Сейчас в теме
(6)
так у препода спроси, это его работа, он за нее получает деньги. Он лучше объяснит. Здесь все-таки не учат


Во-первых, я смотрю на ютюбе курс без прямой обратной связи, во-вторых, я думал, что форум для этого и существует, чтобы можно было задать вопрос, а те кому не лень могли бы подсказать. Я же не насильно сюда тащу людей
10. user1880116 19.10.24 08:35 Сейчас в теме
(8)
я думал, что форум для этого и существует
Это популярное, но неправильное мнение.

Форум, как и весь сайт, существует для извлечения коммерческой выгоды. Ты, как минимум, должен пойти к своему руководителю и убедить его купить тебе абонемент.
11. user1426258 19.10.24 18:12 Сейчас в теме
(10) Первое правило айтишного форума - никто не должен знать для чего он существует.

Ты, как минимум, должен пойти к своему руководителю


Если бы такой человек существовал, меня бы здесь не было. Он, видимо, еще не родился
12. user1880116 19.10.24 18:55 Сейчас в теме
(11)
Он, видимо, еще не родился
Смешно, действительно.

Ну вот, кажется, ты начинаешь понимать, что ты - ни разу не целевая аудитория этого сайта.
14. user1426258 19.10.24 19:17 Сейчас в теме
(12)
Хоть бы послали меня на ... нужный сайт, а то как-то не гуманно.
9. user1426258 18.10.24 21:50 Сейчас в теме
(6)
По идее у меня должны заполнять регистры Продажи и Себестоимость, но они пустые
13. user1426258 19.10.24 19:11 Сейчас в теме
В общем, в моем случае решением было проверка на оперативность документа. У меня запрос стоял в условии, что документ оперативный, а я проводил на доках предыдущих дней. Создал новый док и вуаля - я программист. Может кому поможет.
15. Bukaska 140 21.10.24 00:44 Сейчас в теме
(13) Возможно как раз вопрос в галочках Проведение и ОперативноеПроведение.
Обработка проведения имеет два параметра(Отказ, режим)
Режим.. проводите документ сегодня? ВЫ его проводите здесь и сейчас, это оперативное проведение.
если вы проводите фиг пойми какой датой, но не сегодня - это неоперативное проведение.
Итого, если в свойствах документа на вкладке Движения - неоперативное проведение запрещено, то и результат понятен.
"Вуаля, я программист" - улыбнуло. Сказала бы, но помолчу)))
16. user1426258 07.11.24 18:08 Сейчас в теме
(15) Хоть кого-то улыбнуло))) Специально для токсиков написал, чтоб побесить)))
И спасибо, за ответ)
17. Bukaska 140 07.11.24 22:12 Сейчас в теме
(16) Меня вы не побесили..нисколечко)))
18. user1426258 09.11.24 20:11 Сейчас в теме
(17) Не знаю, что такое любовь, но мне кажется это она)
Оставьте свое сообщение

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