Вход | Регистрация


1С:Предприятие ::

Метки: 

Как в конструкторе запроса получить произведение двух полей

Я
   Aleks_set
 
10.01.18 - 15:50
Пожалуйста, подскажите новичку!
В запросе создал Временную таблицу и получил результат с полями: ВТ_Расчет.Ячейка, ВТ_Расчет.Остаток,ВТ_Расчет.Заказ, Вт_Расчет_Свойство и ВТ_Расчет.Значение. теперь нужно в этом же запросе добавить вычисляемое поле: ВысотаОбщая = ВТ_Расчет.Остаток*ВТ_Расчет.Значение. Как правильно это описать? Возникает ошибка, указывающая на *. Ни чего не понимаю.
 
 
   Lexey_
 
1 - 10.01.18 - 15:57
(0) в общем случае так, если типы числовые
   0xFFFFFF
 
2 - 10.01.18 - 16:06
(0) ВысотаОбщая = ЕстьNULL(ВТ_Расчет.Остаток,0)*ЕстьNULL(ВТ_Расчет.Значение,0)
   Aleks_set
 
3 - 10.01.18 - 16:40
Возникает ошибка: Поле не найдено ВысотаОбщая
   hhhh
 
4 - 10.01.18 - 16:42
(3) так вы пишите просто ВТ_Расчет.Остаток*ВТ_Расчет.Значение.
   Aleks_set
 
5 - 10.01.18 - 16:43
//Создаю новое поле ВысотаОбщая где и прописываю:

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

выбрать
ВТ_Расчет.Ячейка,
ВТ_Расчет.ВНаличииОстаток,
ВТ_Расчет.Назначение,
ВТ_Расчет.Значение,

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

//А сразу вопрос? как его прописать в условиях ВТ_Расчет.Свойство = "Высота"
   Darych
 
22 - 10.01.18 - 17:10
(20)+ эта строка вообще не нужна - у тебя уже фильтр в ВТ есть
   Aleks_set
 
23 - 10.01.18 - 17:11
Да , но у номенклатуры много свойств, а мне нужна только высота. как её прописать в запросе?
   hhhh
 
24 - 10.01.18 - 17:13
(23) ну прописано уже
|где
|НоменклатураДополнительныереквизиты.свойство = &Свойство
   Aleks_set
 
25 - 10.01.18 - 17:15
НО потом нужно задать имя параметра где и выбрать Высота, а чтобы его не прописывать в коде, а сразу задать в запросе - что так нельзя?
   Aleks_set
 
26 - 10.01.18 - 17:16
//все равно пишет ошибку: пробовал по разному!

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

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


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

ВТ_Расчет.Значение, 
// причем нужно перемножить поля ВТ_Расчет.ВНаличииОстаток( кол-во товара), и ВТ_Расчет.Значение(высота товара), а далее сгруппировать по ячейкам
   Aleks_set
 
37 - 10.01.18 - 18:43
Таким образом мне нужно получить общую высоту товаров в конкретной ячейке. Ячейка под конкретное назначение(например, под конкретный заказ)



Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует