Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:03

Исключение: Неверные параметры "*"

Автор maxxi, 02 авг 2024, 14:56

0 Пользователей и 1 гость просматривают эту тему.

maxxi

Всем привет, этот код :

ВЫБРАТЬ
  Продажи.Товар КАК Товар,
  СУММА(Продажи.Количество) КАК Количество,
  Продажи.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ вт_Продажи
ИЗ
  РегистрНакопления.Продажи КАК Продажи
ГДЕ
  Продажи.Филиал = &Филиал
  И Продажи.Регистратор ССЫЛКА Документ.Расход_В_МногоВалюта
  И Продажи.Регистратор.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ) И КОНЕЦПЕРИОДА(&Кон, ДЕНЬ)
  И Продажи.Товар В ИЕРАРХИИ(&Товар)

СГРУППИРОВАТЬ ПО
  Продажи.Товар,
  Продажи.Сотрудник
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
  Таб.Товар КАК Товар,
  Таб.Бонус КАК Бонус
ПОМЕСТИТЬ вт_Excel
ИЗ
  &Таб КАК Таб
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
  вт_Продажи.Товар КАК Товар,
  СУММА(вт_Продажи.Количество) КАК Количество,
  вт_Продажи.Сотрудник КАК Сотрудник,
  вт_Excel.Бонус КАК Бонус,
  СУММА(ISNULL(вт_Excel.Бонус,0) * ISNULL(вт_Продажи.Количество,0)) КАК ВсегоБонус
ИЗ
  вт_Продажи КАК вт_Продажи,
  вт_Excel КАК вт_Excel

СГРУППИРОВАТЬ ПО
  вт_Продажи.Товар,
  вт_Продажи.Сотрудник,
  вт_Excel.Бонус

выдает исключение: Неверные параметры "*"
Сумма(<<?>>isnull(вт_Excel.Бонус,0)*isnull(вт_Продажи.Количество,0)) Как Поле1

LexaK

maxxi, ругается правда на другую строчку, не из запроса...
попробуйте такой запрос, да и значение и тип Бонуса проверьте!!!


////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
  вт_Продажи.Товар КАК Товар,
  СУММА(вт_Продажи.Количество) КАК Количество,
  вт_Продажи.Сотрудник КАК Сотрудник,
  вт_Excel.Бонус КАК Бонус,
  СУММА(ЕстьNULL(вт_Excel.Бонус,0) * вт_Продажи.Количество) КАК ВсегоБонус
ИЗ
  вт_Продажи КАК вт_Продажи
  левое соединение  вт_Excel КАК вт_Excel
  по вт_Продажи.Товар = вт_Excel.Товар

СГРУППИРОВАТЬ ПО
  вт_Продажи.Товар,
  вт_Продажи.Сотрудник,
  вт_Excel.Бонус
 
 
если помогло нажмите: Спасибо!

LexaK

maxxi, другими словами умножать можно только числа!!!
 (ну или то что в них может неявно преобразоваться)
если помогло нажмите: Спасибо!

maxxi


maxxi

Вот тип колонки в Excel.

Максим75

maxxi, дайте еще раз запрос. может что-то в синтаксисе не то

maxxi

Максим75,
ВЫБРАТЬ
Продажи.Товар КАК Товар,
СУММА(Продажи.Количество) КАК Количество,
Продажи.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ вт_Продажи
ИЗ
РегистрНакопления.Продажи КАК Продажи
ГДЕ
Продажи.Филиал = &Филиал
И Продажи.Регистратор ССЫЛКА Документ.Расход_В_МногоВалюта
И Продажи.Регистратор.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Нач, ДЕНЬ) И КОНЕЦПЕРИОДА(&Кон, ДЕНЬ)
И Продажи.Товар В ИЕРАРХИИ(&Товар)

СГРУППИРОВАТЬ ПО
Продажи.Товар,
Продажи.Сотрудник
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Таб.Товар КАК Товар,
Таб.Бонус КАК Бонус
ПОМЕСТИТЬ вт_Excel
ИЗ
&Таб КАК Таб
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
вт_Продажи.Товар КАК Товар,
СУММА(вт_Продажи.Количество) КАК Количество,
вт_Продажи.Сотрудник КАК Сотрудник,
вт_Excel.Бонус КАК Бонус,
СУММА(ISNULL(вт_Excel.Бонус,0) * вт_Продажи.Количество,0) КАК ВсегоБонус
ИЗ
вт_Продажи КАК вт_Продажи,
вт_Excel КАК вт_Excel

СГРУППИРОВАТЬ ПО
вт_Продажи.Товар,
вт_Продажи.Сотрудник,
вт_Excel.Бонус


Максим75

maxxi, так это изначальный запрос.
где текст исправленного запроса? таблицы у Вас как между собой связаны? связь где?

maxxi

Максим75, декартово соединение

Максим75

maxxi, т.е. полное соединение.
ну тогда здесь СУММА(ISNULL(вт_Excel.Бонус,0) * вт_Продажи.Количество,0) может быть ситуация, когда есть в таблице бонус, а продаж за период не было, потому и не сможет умножить.

короче говоря, вначале сделайте во вложенном запросе без умножения отдельно бонус и отдельно количество (естественно на NULL обработать), а потом уже умножьте в основном запросе. Видимо не хочет применять агрегатную функцию к перемножению двух аргументов, которые еще и через ISNULL обрабатываете)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск