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

Ошибка в условии запроса

Автор mahaidor, 08 мая 2014, 16:52

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

mahaidor

Здравствуйте. написал запрсо:
"ВЫБРАТЬ             
     | Оценка.Пять,
     | Оценка.Четыре,
     | Оценка.Три
     | ИЗ Справочник."+Спр+" КАК Оценка
     |ГДЕ Оценка.Наименование=&Класс и Оценка.Пол=&Пол и       Оценка.Дисциплина=Перечисление.НормативыФП."+Дисциплина+"";

Система ругется что не найдено поле Перечисление.НормативыФП."+Дисциплина+"", это при том, наименование перечисления вводится правильно и запрос выполняется на стороне сервера.

cska-fanat-kz

какого типа у вас переменная Дисциплина?
где кусок кода где ей что нибудь присваивается?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Besart

возможно так?
"ВЫБРАТЬ             
     | Оценка.Пять,
     | Оценка.Четыре,
     | Оценка.Три
     | ИЗ Справочник."+Спр+" КАК Оценка
     |ГДЕ Оценка.Наименование=&Класс и Оценка.Пол=&Пол и       Оценка.Дисциплина=&Дисциплина

mahaidor

Переменная дисциплина типа строка. Суть в том, что функция, где выполняется запрос, работает на стороне сервера, но вызывается в процедуре, которая выполняется на стороне клиента, а значит, я не смогу передать параметр Дисциплина, который должен быть типа перечисление. То есть в контексте клиента я не могу передать параметр типа:
Оценка=ФункцияОценкаФП(Перечисления.Нормативы.Отжимания), поэтому вариант который вы предложили не пойдет.
Добавлено: 08 мая 2014, 17:39


Оценка.Дисциплина имеет тип перечисление
Добавлено: 08 мая 2014, 17:49


Цитата: cska-fanat-kz от 08 мая 2014, 17:05
какого типа у вас переменная Дисциплина?
где кусок кода где ей что нибудь присваивается?

  ТабЧасть.ОценкаОтжиманий=ОценкаФизическойПодготовленности("НормативыПерваяЧасть",Класс,Пол,"Отжимания",ТабЧасть.Отжимания,1);

Передаю параметр "Отжимания"

Besart

а что мешает в зависимости от значения переменной Дисциплина, присваивать параметру запроса нужное перечисление?
и откуда вы берете Дисциплину, если в это реквизит формы или объекта, то сразу сделайте его тип - нужное перечисление, и он будет доступен как на клиенте, так и на сервере

cska-fanat-kz

значение перечисления на клиенте можно получать с помощью функции ПредопределенноеЗначение()

ПредопределенноеЗначение("Перечисление.Нормативы.Отжимания")
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

mahaidor

Цитата: cska-fanat-kz от 09 мая 2014, 14:46
значение перечисления на клиенте можно получать с помощью функции ПредопределенноеЗначение()

ПредопределенноеЗначение("Перечисление.Нормативы.Отжимания")
Спасибо, этот совет помог.

Теги:

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

Рейтинг@Mail.ru

Поиск