Запрос

1. crowrav 19.06.17 04:05 Сейчас в теме
Здравствуйте.
Запрос:
	"ВЫБРАТЬ
	|	ДокументПечать." + ИмяТабличнойЧасти +".(
	|		НомерСтроки,
	|		Номенклатура.Артикул КАК Артикул,
	//|		Номенклатура.Наименование КАК Наименование,
	//|		Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
	|		Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
	|		Количество КАК Количество,
	|		Цена КАК Цена,
	|		Сумма КАК Сумма,
	|		Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
	|	)
	|
	|ИЗ
	|	Документ.ОтчетОРозничныхПродажах КАК ДокументПечать
	|
	|ГДЕ
	|	ДокументПечать.Ссылка = &ТекущийДокумент
	|
	|СГРУППИРОВАТЬ ПО
	|	ВДокументПечать.ВидНоменклатуры
	//|
	//|УПОРЯДОЧИТЬ ПО
	//|	ДокументПечать." + ИмяТабличнойЧасти +".НомерСтроки
	|";
Показать

пока СГРУПИРОВАТЬ выключена форма работает, включаю группировку отвечает

ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
по причине:
{(19, 2)}: Поле не найдено "ВидНоменклатуры"

Что не так?
По теме из базы знаний
Найденные решения
17. cassper 19.06.17 11:04 Сейчас в теме
Примерно так может выглядеть запрос и обработка его результата выборки в цикле (см. вложение).
* Исправлен текст запроса, функция возвращает результат запроса
* Убраны лишние конструкции (помечены комментарием)
* Заменены одни конструкции на другие (так же помечены комментарием).

Работоспособность не проверялась. Только общая логика скорректирована была
Прикрепленные файлы:
ВПФ_ОтчетОРозничныхПродажах().epf
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Amadeuc404 54 19.06.17 04:08 Сейчас в теме
Поля ВидНоменклатуры в табличной части нету. Конструктором собери запрос.

(1)
ВДокументПечать
Буква "В" лишняя
3. crowrav 19.06.17 04:28 Сейчас в теме
Букафку "В" убрал, итог тот же "ненайдено поле"
Запрос через конструктор:
"ВЫБРАТЬ
		 |	ОтчетОРозничныхПродажах.Товары.(
		 |		Номенклатура.ВидНоменклатуры,
		 |		Количество,
		 |		Цена,
		 |		Сумма
		 |	)
		 |ИЗ
		 |	Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
		 |
		 |СГРУППИРОВАТЬ ПО
		 |	ОтчетОРозничныхПродажах.Товары.(Номенклатура.ВидНоменклатуры,
		 |	Количество,
		 |	Цена,
		 |	Сумма)"
Показать

Ответ;
ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
по причине:
{(2, 2)}: Группировка по таблицам верхнего уровня и вложенным таблицам
<<?>>ОтчетОРозничныхПродажах.Товары.(
4. PhoenixAOD 62 19.06.17 04:45 Сейчас в теме
(3)а почему бы не обратится сразу к ТЧ и с ней работать?
Amadeuc404; +1 Ответить
6. Amadeuc404 54 19.06.17 04:47 Сейчас в теме
(3) Если тебе нужна только таб часть то:
"ВЫБРАТЬ 
|	Номенклатура.ВидНоменклатуры, 
|	Количество, 
|	Цена, 
|	Сумма 
|ИЗ 
|	Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
| 
|СГРУППИРОВАТЬ ПО 
|	Номенклатура.ВидНоменклатуры, 
|	Количество, 
|	Цена, 
|	Сумма" 
Показать
7. crowrav 19.06.17 06:58 Сейчас в теме
(6)
"ВЫБРАТЬ | Номенклатура.ВидНоменклатуры, | Количество, | Цена, | Сумма |ИЗ | Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары | |СГРУППИРОВАТЬ ПО | Номенклатура.ВидНоменклатуры, | Количество, | Цена, | Сумма"


и
"ВЫБРАТЬ
|	ОтчетОРозничныхПродажахТовары.Номенклатура.ВидНоменклатуры,
|	СУММА(ОтчетОРозничныхПродажахТовары.Количество) КАК Количество,
|	ОтчетОРозничныхПродажахТовары.Цена,
|	СУММА(ОтчетОРозничныхПродажахТовары.Сумма) КАК Сумма
|ИЗ
|	Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
|
|СГРУППИРОВАТЬ ПО
|	ОтчетОРозничныхПродажахТовары.Номенклатура.ВидНоменклатуры,
|	ОтчетОРозничныхПродажахТовары.Цена"
Показать

Ответ всегда =

Поле объекта не обнаружено (Товары)
ТЧастьДокумента = ТаблицаРезультатаЗапроса.Товары.Выбрать();
не могу понять, в самом первом случае почему он не находит это поле "ВидНоменклатуры" оно же дите "Номенклатуры" и в запросе есть на него ссылка и где лежит, Почему без групировки показывает а группировка его не видит, что меняется при группировке в запросе?
Вообще мне надо по одинаковому "ВидуНоменклатуры" Ссумировать количество и сумму, этоже "группировка" или "объеденить все"?
14. cassper 19.06.17 08:09 Сейчас в теме
Не читайте, пожалуйста, между строк, иначе понимания не будет. Если в (6) составлен запрос через конструктор, то в нем, возможно, и ошибки даже нет.
Но смотрите, что делаете дальше: Получаете результат запроса, а по потом в результате вы пытаетесь найти поле "товары", которого у вас нет. У вас запрос и так построен уже (обращение идет) к тч товары, значит вам нужно:
Рез = запрос.выполнить();
ВыборкаТЧ = рез.выбрать();

И все. Никакого более получения".Товары" из результата для выборки не нужно делать.

Ошибку не в том месте ищете
Amadeuc404; +1 Ответить
15. crowrav 19.06.17 10:22 Сейчас в теме
(14)
И в итоге я вижу итоговую цифру и больше ничего, видимо это связано с процессом вывода в макет результатов запроса который уже разительно отличается от того на который расчитан текущий процесс.
Спасибо за ваше время.
16. cassper 19.06.17 10:55 Сейчас в теме
(15) То, как у вас формируется информация в печатной форме - это уже вопрос другой. Возможно там проблема с логикой в корне.

По сути, что нужно: нужно получить результат запроса с группировкой по виду номенклатуры и агрегированию (суммирование) неких числовых показателей (обычно это количество и/или сумма).

Есть результат запроса:
Запрос = Новый Запрос("Текст запроса");
Запрос.УстановитьПараметр("Док", СсылкаНаОбъект);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаПоТЧ = РезультатЗапроса.Выбрать();

Пока ВыборкаПоТЧ.Следующий() Цикл

// Здесь в цикле формируем печатную форму

КонецЦикла;
Показать


Все.

Вопросы?
5. PhoenixAOD 62 19.06.17 04:46 Сейчас в теме
"ВЫБРАТЬ 
|	ОтчетОРозничныхПродажах.Номенклатура.ВидНоменклатуры, 
|	ОтчетОРозничныхПродажах.Количество, 
|	ОтчетОРозничныхПродажах.Цена, 
|	ОтчетОРозничныхПродажах.Сумма 
|ИЗ 
|	Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажах 
| 
|СГРУППИРОВАТЬ ПО 
| ОтчетОРозничныхПродажах.Номенклатура.ВидНоменклатуры, 
|	ОтчетОРозничныхПродажах.Количество, 
|	ОтчетОРозничныхПродажах.Цена, 
|	ОтчетОРозничныхПродажах.Сумма "
Показать
8. cassper 19.06.17 07:17 Сейчас в теме
По последнему тексту запроса:
тч = запрос.выполнить().выгрузить()

И не нужно никакую "товары" получать из результата запроса.
9. cassper 19.06.17 07:20 Сейчас в теме
Ну или если нужно обходить выборку в цикле, то
ВыборкаТовары = запрос.выполнить().выбрать();
А далее в цикле обход выборки (строки результата запроса)
10. signum2009 1029 19.06.17 07:49 Сейчас в теме
Посмотрите реквизиты и табличную часть документа ОтчетОРозничныхПродажах и реквизиты справочника Номенклатура
11. crowrav 19.06.17 07:51 Сейчас в теме
Файлы форм, конфа Розница.
Хочу уточнить, я не прошу сделать за меня, я прошу объяснить почему добавление группировки ломает запрос.
Первый файл дает вместо наименований товаров Виды номенклатуры все норм.
Второй файл логично, должен сгруппировать одинаковые Виды номенклатуры в одну строку, про ссумирование остальных полей еще не думал.
Результат.
ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
по причине:
{(19, 17)}: Поле не найдено "ДокументПечать.ВидНоменклатуры"
ДокументПечать.<<?>>ВидНоменклатуры

Если возможно, прошу объяснить мою ошибку. Учился на 1С 77, запросами не пользовался, потому представление о синтаксисе запроса и его работе имею весьма смутное.
Спасибо за ваше время.
Прикрепленные файлы:
ВПФ_ОтчетОРозничныхПродажах.epf
ВПФ_ОтчетОРозничныхПродажах().epf
12. cassper 19.06.17 07:56 Сейчас в теме
(11) соберите в конструкторе текст запроса, подобный (6), где есть группировки. Этого для достижения результата будет достаточно
13. crowrav 19.06.17 08:02 Сейчас в теме
(12)
Согласен, но в тексте присутствут строки работа которых сыпется при формировании запроса из конструктора, в частности (6), как вы видите применялся как предложенный запрос так и из конструктора, далее следующая строка "ТЧастьДокумента = ТаблицаРезультатаЗапроса.Товары.Выбрать(); " уже чегото не находит. Потому и прошу объяснить возникающую ошибку в имеющемся запросе, дабы не затрагивать весь модуль.
Спасибо за ваше время.
17. cassper 19.06.17 11:04 Сейчас в теме
Примерно так может выглядеть запрос и обработка его результата выборки в цикле (см. вложение).
* Исправлен текст запроса, функция возвращает результат запроса
* Убраны лишние конструкции (помечены комментарием)
* Заменены одни конструкции на другие (так же помечены комментарием).

Работоспособность не проверялась. Только общая логика скорректирована была
Прикрепленные файлы:
ВПФ_ОтчетОРозничныхПродажах().epf
18. crowrav 22.06.17 08:28 Сейчас в теме
(17)
Спасибо за решение, работает с некоторой корректировкой. Если бы только в результате запроса не требовалось еще получить суммирование арифметический действий с полями. А Функция СУММА( А+Б) этого не делает, я так понимаю нужно делать подзапрос.
19. cassper 22.06.17 18:24 Сейчас в теме
Оставьте свое сообщение

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