|
Помогите с запросом | ☑ | ||
---|---|---|---|---|
0
Игорь_МММ
15.05.15
✎
21:00
|
Такая проблема: сделал запрос. В кансоли - выполняется, данные правильные, вставляю на форму в динамический список - ошибка:
Ошибка при выполнении запроса. Ошибка при выполнении запроса. по причине: Поле не найдено "ЕдИзм" Текст запроса, если что: ВЫБРАТЬ СчетОтПоставщика.Поставщик КАК Поставщик, СчетОтПоставщикаСоставСчета.Номенклатура КАК Номенклатура, СчетОтПоставщикаСоставСчета.Количество КАК Количество, СчетОтПоставщикаСоставСчета.ЕдИзм КАК ЕдИзм, СчетОтПоставщикаСоставСчета.ПриходУПоставщика КАК ПриходУПоставщика ПОМЕСТИТЬ Таблица ИЗ Документ.ПоступлениеТоваровУслуг.ПоСчетам КАК ПоступлениеТоваровУслугПоСчетам, Документ.СчетОтПоставщика.СоставСчета КАК СчетОтПоставщикаСоставСчета ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетОтПоставщика КАК СчетОтПоставщика ПО СчетОтПоставщикаСоставСчета.Ссылка = СчетОтПоставщика.Ссылка ГДЕ СчетОтПоставщика.Ссылка <> ПоступлениеТоваровУслугПоСчетам.Счет.Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(Поездка.ДатаПоездки) КАК ДатаПоездки, ПоездкаПоставщики.Поставщик, ПоездкаПоставщики.ПолучениеВДеньПоездки КАК ПолучениеВДеньПоездки ПОМЕСТИТЬ Таблица1 ИЗ Документ.Поездка.Поставщики КАК ПоездкаПоставщики ЛЕВОЕ СОЕДИНЕНИЕ Документ.Поездка КАК Поездка ПО ПоездкаПоставщики.Ссылка = Поездка.Ссылка СГРУППИРОВАТЬ ПО ПоездкаПоставщики.Поставщик, ПоездкаПоставщики.ПолучениеВДеньПоездки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(Поездка.ДатаПоездки) КАК ДатаПоездки, ПоездкаПоставщики.Поставщик ПОМЕСТИТЬ Таб1 ИЗ Документ.Поездка.Поставщики КАК ПоездкаПоставщики ЛЕВОЕ СОЕДИНЕНИЕ Документ.Поездка КАК Поездка ПО ПоездкаПоставщики.Ссылка = Поездка.Ссылка СГРУППИРОВАТЬ ПО ПоездкаПоставщики.Поставщик ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложЗапрос.Поставщик, ВложЗапрос.ДатаПоездки, ВложЗапрос.ПолучениеВДеньПоездки, ЕСТЬNULL(ВложЗапрос.Дата2,ДАТАВРЕМЯ(2001,01,01)) КАК Дата2 ПОМЕСТИТЬ Таб ИЗ (ВЫБРАТЬ Таблица1.ДатаПоездки КАК ДатаПоездки, Таблица1.Поставщик КАК Поставщик, Таблица1.ПолучениеВДеньПоездки КАК ПолучениеВДеньПоездки, ЕСТЬNULL(Таб1.ДатаПоездки,0) КАК Дата2 ИЗ Таблица1 КАК Таблица1 ЛЕВОЕ СОЕДИНЕНИЕ Таб1 КАК Таб1 ПО Таблица1.ДатаПоездки = Таб1.ДатаПоездки И Таблица1.Поставщик = Таб1.Поставщик) КАК ВложЗапрос ГДЕ ВложЗапрос.Дата2 <> 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Таблица.Поставщик КАК Поставщик, Таблица.Номенклатура КАК Номенклатура, Таблица.Количество КАК Количество, Таблица.ЕдИзм КАК ЕдИзм, Таблица.ПриходУПоставщика КАК ПриходУПоставщика, Таб.ДатаПоездки, Таб.ПолучениеВДеньПоездки ПОМЕСТИТЬ ВТ_Таблица ИЗ Таблица КАК Таблица ЛЕВОЕ СОЕДИНЕНИЕ Таб КАК Таб ПО Таблица.Поставщик = Таб.Поставщик ; ВЫБРАТЬ ВТ_Таблица.Поставщик КАК Поставщик, ВТ_Таблица.Номенклатура КАК Номенклатура, ВТ_Таблица.Количество КАК Количество, ВТ_Таблица.ЕдИзм КАК ЕдИзм, ВТ_Таблица.ПриходУПоставщика КАК ПриходУПоставщика ИЗ ВТ_Таблица КАК ВТ_Таблица ГДЕ ВЫБОР КОГДА ВТ_Таблица.ПолучениеВДеньПоездки = Истина ТОГДА ВТ_Таблица.ПриходУПоставщика <= ВТ_Таблица.ДатаПоездки ИНАЧЕ ВТ_Таблица.ПриходУПоставщика > ВТ_Таблица.ДатаПоездки КОНЕЦ |
|||
1
mehfk
15.05.15
✎
21:07
|
>> ИЗ ВТ_Таблица КАК ВТ_Таблица
Продаю идентификаторы, недорого. |
|||
2
Игорь_МММ
15.05.15
✎
21:13
|
Извините ,а что не так с этой строкой. Толи глаза слиплись уже - ничего не вижу
|
|||
3
mehfk
15.05.15
✎
21:17
|
Да, не, все нормально.
|
|||
4
mehfk
15.05.15
✎
21:18
|
Узнай в каком подзапросе ошибка.
|
|||
5
mehfk
15.05.15
✎
21:21
|
Ну и так, в качестве оптимизации (если только так не задумано, но тогда перфекционист заменит левое соединение на внутреннее) - в первом запросе перенеси условие из где в условие соединения.
|
|||
6
Игорь_МММ
15.05.15
✎
21:21
|
как не подскажете?
... в кансоли запросов-то все работает.. |
|||
7
mehfk
15.05.15
✎
21:22
|
С конца по одному подзапросу отнимай
|
|||
8
Игорь_МММ
15.05.15
✎
22:35
|
первый и второй запрос - хорошо . третий - вываливается : Поле не найдено "ДатаПоездки"
|
|||
9
Игорь_МММ
15.05.15
✎
22:35
|
забыл код:
ВЫБРАТЬ МАКСИМУМ(Поездка.ДатаПоездки) КАК ДатаПоездки, ПоездкаПоставщики.Поставщик, ПоездкаПоставщики.ПолучениеВДеньПоездки КАК ПолучениеВДеньПоездки ПОМЕСТИТЬ Таблица1 ИЗ Документ.Поездка.Поставщики КАК ПоездкаПоставщики ЛЕВОЕ СОЕДИНЕНИЕ Документ.Поездка КАК Поездка ПО ПоездкаПоставщики.Ссылка = Поездка.Ссылка СГРУППИРОВАТЬ ПО ПоездкаПоставщики.Поставщик, ПоездкаПоставщики.ПолучениеВДеньПоездки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(Поездка.ДатаПоездки) КАК ДатаПоездки, ПоездкаПоставщики.Поставщик ПОМЕСТИТЬ Таб1 ИЗ Документ.Поездка.Поставщики КАК ПоездкаПоставщики ЛЕВОЕ СОЕДИНЕНИЕ Документ.Поездка КАК Поездка ПО ПоездкаПоставщики.Ссылка = Поездка.Ссылка СГРУППИРОВАТЬ ПО ПоездкаПоставщики.Поставщик ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Таблица1.ДатаПоездки КАК ДатаПоездки, Таблица1.Поставщик КАК Поставщик, Таблица1.ПолучениеВДеньПоездки КАК ПолучениеВДеньПоездки, ЕСТЬNULL(Таб1.ДатаПоездки,0) КАК Дата2 ИЗ Таблица1 КАК Таблица1 ЛЕВОЕ СОЕДИНЕНИЕ Таб1 КАК Таб1 ПО Таблица1.ДатаПоездки = Таб1.ДатаПоездки И Таблица1.Поставщик = Таб1.Поставщик |
|||
10
DrShad
15.05.15
✎
23:02
|
Весь запрос в топку! Кто вас учил так писать? Нахрена вам соединения вообще?
|
|||
11
Игорь_МММ
15.05.15
✎
23:13
|
gooole и форумы - учителя)
а как надо? |
|||
12
Игорь_МММ
15.05.15
✎
23:24
|
по поводу (8) (9) - что тут может быть не так? Вроде все просто
|
|||
13
DrShad
15.05.15
✎
23:37
|
Вот именно что просто, а то что ты написал обладает излишним кодом
|
|||
14
Игорь_МММ
15.05.15
✎
23:39
|
и поэтому не находятся поля?
|
|||
15
ssh2006
15.05.15
✎
23:45
|
(0) > вставляю на форму в динамический список
К слову, дин список не поддерживает пакетных запросов |
|||
16
Игорь_МММ
15.05.15
✎
23:48
|
ну вот оно ..
и так и сяк вертел, уже и сам чувствовал, что дело не в запросе. Спасибо |
|||
17
Игорь_МММ
15.05.15
✎
23:55
|
ну а тогда может есть какой-то вариант чтобы создать на форме таблицу с помощью пакетного запроса?
|
|||
18
Zhuravlik
16.05.15
✎
00:16
|
(17) А просто таблица значений чем не нравится?..
|
|||
19
Игорь_МММ
16.05.15
✎
00:46
|
да, так и сделал. В модуле сделал процедуру и туда запрос - все ок.
Такой вопрос у меня еше (не судите строго) - после выполнения запроса Таблица вида Таблица.Поставщик, Таблица. Номенклатура, Таблица. ЕдИзм и тд. Как мне из нее сделать таблицу вида Таблица.Поставщик , Таблица.(Номенклатура, Количество, ЕдИзм и тд), то есть чтобы все реквизиты кроме одного (Поставщик) находились в ТаблицеЗначений - на форме хочу разделить отображение данных на две таблицы - в одной список Поставщиков. в другой все по нему |
|||
20
Zhuravlik
16.05.15
✎
01:09
|
(19) Возможно дерево значений на форме будет лучшей идеей? Итоги по поставщику, а потом РезультатЗапроса.Выгрузить(ОбходРезультата.ПоГруппировкам).
- А так две таблицы, первую свернуть по поставщику, по событию "ПриАктивизацииСтроки" у первой заполнять вторую данными. Данные лучше кешировать, если их не очень много. - Но вообще (10) совершенно прав: вам бы лучше привести запрос(ы) в порядок. |
|||
21
Игорь_МММ
16.05.15
✎
09:33
|
а что в запросе плохо? просто новичок еще в 1с. буду благодарен за указание на ошибки
(20) сделаю по второму варианту - визуально больше нравится |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |