Имя: Пароль:
1C
 
функция ВЫРАЗИТЬ в запросе не работает
0 pppp
 
01.12.08
13:43
не могу выразить число в строку или наоборот
мож меня глючит пытаюсь в 1с написать аналог sql запроса
select cast('30' as numeric(10))

набираю в консоле

ВЫБРАТЬ ВЫРАЗИТЬ("30" как число)

{ОбщаяФорма.КонсольТестированияЗапроса(35)}: Ошибка при вызове метода контекста (Выполнить): {(1, 9)}: Несовместимые типы "ВЫРАЗИТЬ"
ВЫБРАТЬ <<?>>ВЫРАЗИТЬ("30" как число)
   ЭлементыФормы.Результат.Значение=Запрос.Выполнить().Выгрузить();
по причине:
{(1, 9)}: Несовместимые типы "ВЫРАЗИТЬ"
ВЫБРАТЬ <<?>>ВЫРАЗИТЬ("30" как число)
1 Garkin
 
01.12.08
13:45
RTFM
2 asady
 
01.12.08
13:45
(0) не взлетит.
3 Mitriy
 
01.12.08
13:45
ВЫРАЗИТЬ так не умеет... справку читай... очень внимательно...
4 globalasax
 
01.12.08
13:53
Приведение типа>

ВЫРАЗИТЬ ( <Выражение> КАК <Тип значения> )

<Тип значения>

БУЛЕВО |
ЧИСЛО [(Длина[, Точность])]|
СТРОКА [(Длина)]|
ДАТА |
<Имя таблицы>

<Длина>

Число

<Точность>

Число
5 pppp
 
01.12.08
13:53
а на выразить и справки нету
6 globalasax
 
01.12.08
13:54
<Выражение> приводится к одному из примитивных типов, или к ссылочному типу данных; в последнем случае <Имя таблицы> указывает на соответствующую таблицу информационной базы.

Если <Выражение> содержит в составном типе требуемый <Тип значения>, то приведение типа считается осуществимым, и для каждого значения указанного типа результатом будет это самое значение. Для значений других типов результатом приведения типа будет значение NULL.

Если <Выражение> не содержит в составном типе требуемый <Тип значения>, то выполнение данного запроса завершится ошибкой из-за принципиальной невозможности совершить приведение типов.

Для <Тип значения> СТРОКА с указанием длины максимальный размер строки 1024.
7 pppp
 
01.12.08
13:54
длина точность опциональны, но если их указать точно такая же ошибка
ВЫБРАТЬ ВЫРАЗИТЬ("30" как число(10,0))

однох...
8 pppp
 
01.12.08
13:55
и чего 1с не может число в строку и обратно???
9 pppp
 
01.12.08
13:56
напишите рабочий пример плиз (всего 3 слова писать то)
10 pppp
 
01.12.08
13:57
почему у 1с строка и число несовместиииииии-и-и-и-и-и-и-имые типы млин
11 globalasax
 
01.12.08
13:59
дык не работает  ВЫБРАТЬ ВЫРАЗИТЬ("30" КАК ЧИСЛО). А так  ВЫБРАТЬ ВЫРАЗИТЬ("30" КАК СТРОКА) работает. Преобразовывать не хочет.
12 pppp
 
01.12.08
13:59
на sql все легко переводится и туда и обратно с любой точностью и разрадностью
13 globalasax
 
01.12.08
13:59
(4) из справки
14 pppp
 
01.12.08
13:59
хахахаха строку в строку и конвертировать то не надо
15 Garkin
 
01.12.08
13:59
(12) Нет в запросах 1с преобразования типов.
16 globalasax
 
01.12.08
14:01
Поля исходных таблиц могут иметь составной тип. Для таких полей возникает необходимость привести значения поля к какому-либо определенному типу. В языке запросов предусмотрена возможность приведения типа, ею можно пользоваться в списке полей выборки и в условии отбора в предложении ГДЕ.
17 Cheater
 
01.12.08
14:01
18 pppp
 
01.12.08
14:06
млин скачай на клиент число переведи в строку и обратно отправь на сервер
проще быстрее ;((
19 pppp
 
01.12.08
14:08
в общем функцию cast 1с решила не реализовывать а написала свою великую выразить для выражения типа в самого себя если он идет в выборке а остальные подтипы составного типа в NULL це глобально можно было решить

ВЫБРАТЬ КОГДА поле1 ССЫЛКА Справочник.Номенклатура ТОГДА поле1 ИНАЧЕ NULL КОНЕЦ
20 MSensey
 
01.12.08
15:23
(19) не совсем ты прав, что можно вместо ВЫРАЗИТЬ использовать ВЫБОР ...
почему? подумай сам
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший