Здравствуйте.
пока СГРУПИРОВАТЬ выключена форма работает, включаю группировку отвечает
ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
по причине:
{(19, 2)}: Поле не найдено "ВидНоменклатуры"
Что не так?
Запрос:
"ВЫБРАТЬ
| ДокументПечать." + ИмяТабличнойЧасти +".(
| НомерСтроки,
| Номенклатура.Артикул КАК Артикул,
//| Номенклатура.Наименование КАК Наименование,
//| Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
| Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
| Количество КАК Количество,
| Цена КАК Цена,
| Сумма КАК Сумма,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
| )
|
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ДокументПечать
|
|ГДЕ
| ДокументПечать.Ссылка = &ТекущийДокумент
|
|СГРУППИРОВАТЬ ПО
| ВДокументПечать.ВидНоменклатуры
//|
//|УПОРЯДОЧИТЬ ПО
//| ДокументПечать." + ИмяТабличнойЧасти +".НомерСтроки
|";
Показатьпока СГРУПИРОВАТЬ выключена форма работает, включаю группировку отвечает
ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
по причине:
{(19, 2)}: Поле не найдено "ВидНоменклатуры"
Что не так?
По теме из базы знаний
- Модель запроса
- Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности
- Как читать чужой код? Часть 3. Разбор и доработка запросов
- Экспертный взгляд на оптимизацию производительности на примере исправления и декомпозиции запроса
- Модель запроса SQL
Найденные решения
Примерно так может выглядеть запрос и обработка его результата выборки в цикле (см. вложение).
* Исправлен текст запроса, функция возвращает результат запроса
* Убраны лишние конструкции (помечены комментарием)
* Заменены одни конструкции на другие (так же помечены комментарием).
Работоспособность не проверялась. Только общая логика скорректирована была
* Исправлен текст запроса, функция возвращает результат запроса
* Убраны лишние конструкции (помечены комментарием)
* Заменены одни конструкции на другие (так же помечены комментарием).
Работоспособность не проверялась. Только общая логика скорректирована была
Прикрепленные файлы:
ВПФ_ОтчетОРозничныхПродажах().epf
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Букафку "В" убрал, итог тот же "ненайдено поле"
Запрос через конструктор:
Ответ;
ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
по причине:
{(2, 2)}: Группировка по таблицам верхнего уровня и вложенным таблицам
<<?>>ОтчетОРозничныхПродажах.Товары.(
Запрос через конструктор:
"ВЫБРАТЬ
| ОтчетОРозничныхПродажах.Товары.(
| Номенклатура.ВидНоменклатуры,
| Количество,
| Цена,
| Сумма
| )
|ИЗ
| Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
|
|СГРУППИРОВАТЬ ПО
| ОтчетОРозничныхПродажах.Товары.(Номенклатура.ВидНоменклатуры,
| Количество,
| Цена,
| Сумма)"
ПоказатьОтвет;
ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
по причине:
{(2, 2)}: Группировка по таблицам верхнего уровня и вложенным таблицам
<<?>>ОтчетОРозничныхПродажах.Товары.(
(3) Если тебе нужна только таб часть то:
"ВЫБРАТЬ
| Номенклатура.ВидНоменклатуры,
| Количество,
| Цена,
| Сумма
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
|
|СГРУППИРОВАТЬ ПО
| Номенклатура.ВидНоменклатуры,
| Количество,
| Цена,
| Сумма"
Показать
(6)
и
Ответ всегда =
Поле объекта не обнаружено (Товары)
ТЧастьДокумента = ТаблицаРезультатаЗапроса.Товары.Выбрать();
не могу понять, в самом первом случае почему он не находит это поле "ВидНоменклатуры" оно же дите "Номенклатуры" и в запросе есть на него ссылка и где лежит, Почему без групировки показывает а группировка его не видит, что меняется при группировке в запросе?
Вообще мне надо по одинаковому "ВидуНоменклатуры" Ссумировать количество и сумму, этоже "группировка" или "объеденить все"?
"ВЫБРАТЬ | Номенклатура.ВидНоменклатуры, | Количество, | Цена, | Сумма |ИЗ | Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары | |СГРУППИРОВАТЬ ПО | Номенклатура.ВидНоменклатуры, | Количество, | Цена, | Сумма"
и
"ВЫБРАТЬ
| ОтчетОРозничныхПродажахТовары.Номенклатура.ВидНоменклатуры,
| СУММА(ОтчетОРозничныхПродажахТовары.Количество) КАК Количество,
| ОтчетОРозничныхПродажахТовары.Цена,
| СУММА(ОтчетОРозничныхПродажахТовары.Сумма) КАК Сумма
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
|
|СГРУППИРОВАТЬ ПО
| ОтчетОРозничныхПродажахТовары.Номенклатура.ВидНоменклатуры,
| ОтчетОРозничныхПродажахТовары.Цена"
ПоказатьОтвет всегда =
Поле объекта не обнаружено (Товары)
ТЧастьДокумента = ТаблицаРезультатаЗапроса.Товары.Выбрать();
не могу понять, в самом первом случае почему он не находит это поле "ВидНоменклатуры" оно же дите "Номенклатуры" и в запросе есть на него ссылка и где лежит, Почему без групировки показывает а группировка его не видит, что меняется при группировке в запросе?
Вообще мне надо по одинаковому "ВидуНоменклатуры" Ссумировать количество и сумму, этоже "группировка" или "объеденить все"?
Не читайте, пожалуйста, между строк, иначе понимания не будет. Если в (6) составлен запрос через конструктор, то в нем, возможно, и ошибки даже нет.
Но смотрите, что делаете дальше: Получаете результат запроса, а по потом в результате вы пытаетесь найти поле "товары", которого у вас нет. У вас запрос и так построен уже (обращение идет) к тч товары, значит вам нужно:
Рез = запрос.выполнить();
ВыборкаТЧ = рез.выбрать();
И все. Никакого более получения".Товары" из результата для выборки не нужно делать.
Ошибку не в том месте ищете
Но смотрите, что делаете дальше: Получаете результат запроса, а по потом в результате вы пытаетесь найти поле "товары", которого у вас нет. У вас запрос и так построен уже (обращение идет) к тч товары, значит вам нужно:
Рез = запрос.выполнить();
ВыборкаТЧ = рез.выбрать();
И все. Никакого более получения".Товары" из результата для выборки не нужно делать.
Ошибку не в том месте ищете
(15) То, как у вас формируется информация в печатной форме - это уже вопрос другой. Возможно там проблема с логикой в корне.
По сути, что нужно: нужно получить результат запроса с группировкой по виду номенклатуры и агрегированию (суммирование) неких числовых показателей (обычно это количество и/или сумма).
Есть результат запроса:
Все.
Вопросы?
По сути, что нужно: нужно получить результат запроса с группировкой по виду номенклатуры и агрегированию (суммирование) неких числовых показателей (обычно это количество и/или сумма).
Есть результат запроса:
Запрос = Новый Запрос("Текст запроса");
Запрос.УстановитьПараметр("Док", СсылкаНаОбъект);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаПоТЧ = РезультатЗапроса.Выбрать();
Пока ВыборкаПоТЧ.Следующий() Цикл
// Здесь в цикле формируем печатную форму
КонецЦикла;
ПоказатьВсе.
Вопросы?
"ВЫБРАТЬ
| ОтчетОРозничныхПродажах.Номенклатура.ВидНоменклатуры,
| ОтчетОРозничныхПродажах.Количество,
| ОтчетОРозничныхПродажах.Цена,
| ОтчетОРозничныхПродажах.Сумма
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажах
|
|СГРУППИРОВАТЬ ПО
| ОтчетОРозничныхПродажах.Номенклатура.ВидНоменклатуры,
| ОтчетОРозничныхПродажах.Количество,
| ОтчетОРозничныхПродажах.Цена,
| ОтчетОРозничныхПродажах.Сумма "
Показать
Файлы форм, конфа Розница.
Хочу уточнить, я не прошу сделать за меня, я прошу объяснить почему добавление группировки ломает запрос.
Первый файл дает вместо наименований товаров Виды номенклатуры все норм.
Второй файл логично, должен сгруппировать одинаковые Виды номенклатуры в одну строку, про ссумирование остальных полей еще не думал.
Результат.
ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
по причине:
{(19, 17)}: Поле не найдено "ДокументПечать.ВидНоменклатуры"
ДокументПечать.<<?>>ВидНоменклатуры
Если возможно, прошу объяснить мою ошибку. Учился на 1С 77, запросами не пользовался, потому представление о синтаксисе запроса и его работе имею весьма смутное.
Спасибо за ваше время.
Хочу уточнить, я не прошу сделать за меня, я прошу объяснить почему добавление группировки ломает запрос.
Первый файл дает вместо наименований товаров Виды номенклатуры все норм.
Второй файл логично, должен сгруппировать одинаковые Виды номенклатуры в одну строку, про ссумирование остальных полей еще не думал.
Результат.
ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
по причине:
{(19, 17)}: Поле не найдено "ДокументПечать.ВидНоменклатуры"
ДокументПечать.<<?>>ВидНоменклатуры
Если возможно, прошу объяснить мою ошибку. Учился на 1С 77, запросами не пользовался, потому представление о синтаксисе запроса и его работе имею весьма смутное.
Спасибо за ваше время.
Прикрепленные файлы:
ВПФ_ОтчетОРозничныхПродажах.epf
ВПФ_ОтчетОРозничныхПродажах().epf
(12)
Согласен, но в тексте присутствут строки работа которых сыпется при формировании запроса из конструктора, в частности (6), как вы видите применялся как предложенный запрос так и из конструктора, далее следующая строка "ТЧастьДокумента = ТаблицаРезультатаЗапроса.Товары.Выбрать(); " уже чегото не находит. Потому и прошу объяснить возникающую ошибку в имеющемся запросе, дабы не затрагивать весь модуль.
Спасибо за ваше время.
Согласен, но в тексте присутствут строки работа которых сыпется при формировании запроса из конструктора, в частности (6), как вы видите применялся как предложенный запрос так и из конструктора, далее следующая строка "ТЧастьДокумента = ТаблицаРезультатаЗапроса.Товары.Выбрать(); " уже чегото не находит. Потому и прошу объяснить возникающую ошибку в имеющемся запросе, дабы не затрагивать весь модуль.
Спасибо за ваше время.
Примерно так может выглядеть запрос и обработка его результата выборки в цикле (см. вложение).
* Исправлен текст запроса, функция возвращает результат запроса
* Убраны лишние конструкции (помечены комментарием)
* Заменены одни конструкции на другие (так же помечены комментарием).
Работоспособность не проверялась. Только общая логика скорректирована была
* Исправлен текст запроса, функция возвращает результат запроса
* Убраны лишние конструкции (помечены комментарием)
* Заменены одни конструкции на другие (так же помечены комментарием).
Работоспособность не проверялась. Только общая логика скорректирована была
Прикрепленные файлы:
ВПФ_ОтчетОРозничныхПродажах().epf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот