Имя: Пароль:
1C
1С v8
Как в конструкторе запроса получить произведение двух полей
,
0 Aleks_set
 
10.01.18
15:50
Пожалуйста, подскажите новичку!
В запросе создал Временную таблицу и получил результат с полями: ВТ_Расчет.Ячейка, ВТ_Расчет.Остаток,ВТ_Расчет.Заказ, Вт_Расчет_Свойство и ВТ_Расчет.Значение. теперь нужно в этом же запросе добавить вычисляемое поле: ВысотаОбщая = ВТ_Расчет.Остаток*ВТ_Расчет.Значение. Как правильно это описать? Возникает ошибка, указывающая на *. Ни чего не понимаю.
1 Lexey_
 
10.01.18
15:57
(0) в общем случае так, если типы числовые
2 0xFFFFFF
 
10.01.18
16:06
(0) ВысотаОбщая = ЕстьNULL(ВТ_Расчет.Остаток,0)*ЕстьNULL(ВТ_Расчет.Значение,0)
3 Aleks_set
 
10.01.18
16:40
Возникает ошибка: Поле не найдено ВысотаОбщая
4 hhhh
 
10.01.18
16:42
(3) так вы пишите просто ВТ_Расчет.Остаток*ВТ_Расчет.Значение.
5 Aleks_set
 
10.01.18
16:43
//Создаю новое поле ВысотаОбщая где и прописываю:
ВысотаОбщая = ЕстьNULL(ВТ_Расчет.Остаток,0)*ЕстьNULL(ВТ_Расчет.Значение,0)
6 Fragster
 
гуру
10.01.18
16:43
ВТРасчет.Остаток*ВТРасчет.Значение КАК ВысотаОбщая
7 Darych
 
10.01.18
16:44
ВТ_Расчет.Остаток*ВТ_Расчет.Значение КАК ЧтоТО
8 Aleks_set
 
10.01.18
16:44
попробовал так: Синтаксическая ошибка "КАК"
9 Darych
 
10.01.18
16:45
текст запроса
10 igorP
 
10.01.18
16:48
Не нужно писать ВысотаОбщая = , пишите естьNULL(ВТ_Расчет.Остаток,0)*ЕстьNULL(ВТ_Расчет.Значение,0)как ВысотаОбщая
11 Fragster
 
гуру
10.01.18
16:50
(8) это надо писать не в конструкторе. если хочется прям в конструкторе, то поле надо задать как ВТРасчет.Остаток*ВТРасчет.Значение, а потом на странице объединения/псевдонимы указать ВысотаОбщая
12 hhhh
 
10.01.18
16:50
(8) имя поля задается на закладке "Объединения и псевдонимы". А вы прям в формулу хреначите.
13 Aleks_set
 
10.01.18
16:52
2 минуты печатаю запрос, скопировать не получается - выходит какая-то ерунда.
14 cw014
 
10.01.18
16:58
В описании поля пишите "естьNULL(ВТ_Расчет.Остаток,0)*ЕстьNULL(ВТ_Расчет.Значение,0)". На закладке "Пседвонимы" находите свое "Поле1" и заменяете на "ВысотаОбщая"
15 hhhh
 
10.01.18
16:59
(13) на каком принтере печатаете?
16 Aleks_set
 
10.01.18
17:02
Выбрать
|СкладскиеЯчейки.Ссылка как Ячейка.
|ТоварыВЯчейкахОстатки.ВНаличииОстаток,
|ТоварыВЯчейкахОстатки.Назначение.
|ТоварыВЯчейкахОстатки.Номенклатура,
|НоменклатураДополнительныеРеквизиты.Свойство,
|НоменклатураДополнительныеРеквизиты.Значение,
|поместить ВТ_Расчет
|из
|Справочник.СкладскиеЯчейки как складскиеЯчейки
|левоесоединение РегистрНакопления.ТоварыВЯчейках.Остатки как |ТоварыВЯчейкахОстатки
|полноесоединение Справочник.номенклатура как номенклатура
|левоесоединение Справочник.номенклатура.дополнительныеРеквизиты как НоменклатураДополнительныереквизиты
|по Номенклатура.ССылка = номенклатураДополнительныеРеквизиты.Ссылка
|по (ТоварыВЯчейкахОстатки.Номенклатура = НоменклатураДополнительныеРеквизиты.Ссылка
|по (ТоварыВЯчейкахОстатки.Ячейка = СкладскиеЯчейки.Ссылка)
|где
|НоменклатураДополнительныереквизиты.свойство = &Свойство
|;//////////////////////////////////////
выбрать
ВТ_Расчет.Ячейка,
ВТ_Расчет.ВНаличииОстаток,
ВТ_Расчет.Назначение,
ВТ_Расчет.Значение,

естьNULL(ВТ_Расчет.Остаток,0)*ЕстьNULL(ВТ_Расчет.Значение,0) как ВысотаОбщая
из ВТ_Расчет как ВТ_Расчет
где ВТ_Расчет.Свойство = "&Свойство"
17 Aleks_set
 
10.01.18
17:06
cw014 спасибо за "".
18 Darych
 
10.01.18
17:06
ну во-первых
где ВТ_Расчет.Свойство = &Свойство
19 Aleks_set
 
10.01.18
17:07
задаю после запроса в параметрах. Это высота
20 Darych
 
10.01.18
17:08
(19) без кавычек
21 Aleks_set
 
10.01.18
17:10
//Это дополнительный реквизит у номенклатуры.
//А сразу вопрос? как его прописать в условиях ВТ_Расчет.Свойство = "Высота"
22 Darych
 
10.01.18
17:10
(20)+ эта строка вообще не нужна - у тебя уже фильтр в ВТ есть
23 Aleks_set
 
10.01.18
17:11
Да , но у номенклатуры много свойств, а мне нужна только высота. как её прописать в запросе?
24 hhhh
 
10.01.18
17:13
(23) ну прописано уже

|где
|НоменклатураДополнительныереквизиты.свойство = &Свойство
25 Aleks_set
 
10.01.18
17:15
НО потом нужно задать имя параметра где и выбрать Высота, а чтобы его не прописывать в коде, а сразу задать в запросе - что так нельзя?
26 Aleks_set
 
10.01.18
17:16
//все равно пишет ошибку: пробовал по разному!
Неверные параметры "*"
естьNULL(ВТ_Расчет.Остаток,0)*<<?>>ЕстьNULL(ВТ_Расчет.Значение,0)
27 hhhh
 
10.01.18
17:18
|где
|НоменклатураДополнительныереквизиты.свойство.Наименование = ""Высота""
28 hhhh
 
10.01.18
17:19
(26) наверно английские буквы в ЕстьNULL у тебя
29 Вафель
 
10.01.18
17:42
(26) значение нужно выражать в число, ибо это составной тип
30 Darych
 
10.01.18
17:53
(27) как ты думаешь, сколько таблиц он заджойнит?)))
31 Вафель
 
10.01.18
18:03
(30) у поля свойсвто конкретный тип
32 Darych
 
10.01.18
18:05
(31) ну да .. попутал с ПВХ ДополнительныеРеквизитыИСведения
33 Aleks_set
 
10.01.18
18:14
Чет я вообще запутался в трех соснах.
34 azernot
 
10.01.18
18:18
В запросе нет пол "Остаток"
В запросе есть поле "ВНаличииОстаток"

Поэтому писать надо
ВТ_Расчет.ВНаличииОстаток*ВТ_Расчет.Значение КАК ВысотаОбщая


А вообще, запрос - полная лажа. Если опишите, что хотите в итоге получить, запрос можно реально оптимизировать.
35 Вафель
 
10.01.18
18:19
ЕстьNULL(ВЫРАЗИТЬ(ВТ_Расчет.Значение КАК ЧИСЛО(15, 3)), 0)
36 Aleks_set
 
10.01.18
18:41
// мне нужно чтобы в результате были поля:
ВТ_Расчет.Ячейка,
ВТ_Расчет.ВНаличииОстаток,
ВТ_Расчет.Назначение,
ВТ_Расчет.Свойство // которое всегда Высота(Продукция)
ВТ_Расчет.Значение,
// причем нужно перемножить поля ВТ_Расчет.ВНаличииОстаток( кол-во товара), и ВТ_Расчет.Значение(высота товара), а далее сгруппировать по ячейкам
37 Aleks_set
 
10.01.18
18:43
Таким образом мне нужно получить общую высоту товаров в конкретной ячейке. Ячейка под конкретное назначение(например, под конкретный заказ)