Имя: Пароль:
1C
 
вопрос по вычислениям в запросе
0 НубВ1С8
 
14.07.16
11:07
типовая конфа УТ 10.3, запрос к свойствам номенклатуры - свойства Высота и Ширина, числовые. Хочу Высота * Ширина = Площадь
Сам запрос:

ВЫБРАТЬ
    Номенклатура.Ссылка КАК Номенклатура,
    СвойстваОбъектов.Ссылка КАК Свойство
ПОМЕСТИТЬ тНом
ИЗ
    Справочник.Номенклатура КАК Номенклатура,
    ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
ГДЕ
    СвойстваОбъектов.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура)
    И НЕ Номенклатура.ЭтоГруппа

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Свойство
;

////////////////////////////////////////////////////////////////////////////////
Выбрать
ТаблицаШирины.Номенклатура как номенклатура,
ТаблицаШирины.Ширина как ширина,
ТаблицаВысоты.Высота как высота


из
(ВЫБРАТЬ
    тНом.Номенклатура КАК Номенклатура,
    ЗначенияСвойствОбъектов.Значение КАК Ширина
ИЗ
    тНом КАК тНом
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        ПО (ЗначенияСвойствОбъектов.Объект = тНом.Номенклатура)
            И (ЗначенияСвойствОбъектов.Свойство = тНом.Свойство)
            И (ЗначенияСвойствОбъектов.Свойство.Наименование = "Ширина")
            
где
    НЕ ЗначенияСвойствОбъектов.Значение ЕСТЬ NULL) как ТаблицаШирины  
ЛЕВОЕ СОЕДИНЕНИЕ
(ВЫБРАТЬ
    тНом.Номенклатура КАК Номенклатура,
    ЗначенияСвойствОбъектов.Значение КАК Высота
ИЗ
    тНом КАК тНом
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        ПО (ЗначенияСвойствОбъектов.Объект = тНом.Номенклатура)
            И (ЗначенияСвойствОбъектов.Свойство = тНом.Свойство)
            И (ЗначенияСвойствОбъектов.Свойство.Наименование = "Высота")
            
где
    НЕ ЗначенияСвойствОбъектов.Значение ЕСТЬ NULL) как ТаблицаВысоты
По ТаблицаШирины.Номенклатура = ТаблицаВысоты.Номенклатура

если в "выбрать" добавляю
"ТаблицаШирины.Ширина * ТаблицаВысоты.Высота как площадь", то ругается на неверный параметр "*" что я делаю не так?
1 Garykom
 
гуру
14.07.16
11:10
выразить
2 Nuobu
 
14.07.16
11:12
Типы полей должны быть числовыми, у вас - возможно - другое.
3 НубВ1С8
 
14.07.16
11:14
(1) (ВЫРАЗИТЬ(ТаблицаШирины.Ширина КАК ЧИСЛО)) * (ВЫРАЗИТЬ(ТаблицаВысоты.Высота КАК ЧИСЛО)) КАК Площадь

помогло! огромное спасибо! так и думал, что дело в типе

(2) у РегистрСведений.ЗначенияСвойствОбъектов Значение имеет сложный тип из ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура. Там числовые, но они задаются пользователями, поэтому возможны варианты.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.