8.х Выразить Строку как Число

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Alive, 11 май 2010.

  1. TopicStarter Overlay
    Alive
    Offline

    Alive Опытный в 1С

    Регистрация:
    15 янв 2010
    Сообщения:
    141
    Симпатии:
    0
    Баллы:
    26
    Такая проблема.у Номенклатуры есть свойство, которое имеет значение. Значение присваивается числовое, например 10. Как в запросе выразить это значение как число? Так как мне надо его поделить на число. Помогите пожалуйста!
  2. x-a-d
    Offline

    x-a-d Опытный в 1С

    Регистрация:
    3 сен 2009
    Сообщения:
    184
    Симпатии:
    0
    Баллы:
    26
    СП
    Встроенные функции языка
    Число (Number)
    Синтаксис:
    Число(<Значение>)
    Параметры:
    <Значение> (обязательный)
    Тип: Строка, Булево. Исходное значение.
    Возвращаемое значение:
    Тип: Число. Полученное значение.

    полностью описание смотрите в СП
  3. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    читайте внимательнее
    ВЫРАЗИТЬ(<ПолеЗапроса> КАК ЧИСЛО(15,2)) КАК ЧислоИзСтроки
  4. TopicStarter Overlay
    Alive
    Offline

    Alive Опытный в 1С

    Регистрация:
    15 янв 2010
    Сообщения:
    141
    Симпатии:
    0
    Баллы:
    26
    Первый метод не подходит, так как я писала, необходимо в запросе. Второй через Выразить тоже, видимо строку в число таким образом нельзя выражать
  5. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    А само свойство Номенклатуры какой тип имеет? "Число" или "Строка" (которой присваивается числовое значение)?
  6. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    это единственная функция запроса преобразования типов, значит там не строка. приведите полный текст запроса
  7. Доктор Руфус Бейли
    Offline

    Доктор Руфус Бейли Опытный в 1С

    Регистрация:
    7 апр 2010
    Сообщения:
    277
    Симпатии:
    0
    Баллы:
    26
    Не факт, что не строка. Здесь нужно увидеть не столько текст запроса, сколько ошибку, по причине которой топикпастер решил, что выражать строку, как число в запросе данным методом нельзя. Скорее всего, в этой строке имеются символы, которые невозможно преобразовать в число (например, буквы). Т. е. неплохо было бы ещё взглянуть на входящие данные.
  8. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Эм, прошу прощения, поправьте меня если я ошибаюсь, но в запросах отсутствует возможность преобразования одного типа в другой. Таким образом если изначально свойство номенклатуры имеет тип строка, то в запросе оперировать им как числом не получится, даже если в этой строке одни цифры.
  9. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Согласен. Но не писал, выжидал, может как-нибудь да выкрутитесь :)
  10. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Ну тут только единственно мысли такие: автору проверить правильность выбора типа свойства. Если требуются операции как с числом, то может действительно имеет смысл задать тип свойства как "Число".
    И еще мысль пришла в голову, но не проверял: правильно ли я понимаю что используется эмм.. стандартный механизм конфигураций "Свойства" (и категории). В таком случае - если попробовать задать свойству составной тип данных (строка, число) - тогда думаю ВЫРАЗИТЬ должно отработать (только на числах естественно).
  11. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    не проверял, но что если:

    Код:
    Выбрать 
    Выразить(Таблица1.Поле1 КАК Число(15,2)) 
    ПОМЕСТИТЬ Док
    ИЗ 
    Таблица1 ;
    Выбрать
    *
    ИЗ
    Док КАК Док
    
    ???
  12. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Нет, не получается так. Попробовал. NULL получается если попытаться выразить строковое свойство как число (всмысле уже в 1-м запросе пакета).
  13. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    ну значит не судьба :)
  14. x-a-d
    Offline

    x-a-d Опытный в 1С

    Регистрация:
    3 сен 2009
    Сообщения:
    184
    Симпатии:
    0
    Баллы:
    26
    В запросе вы не будете делить/умножать в общем манипулировать данными
    запрос - это только способ взять данные для дальнейшей обработки
  15. Доктор Руфус Бейли
    Offline

    Доктор Руфус Бейли Опытный в 1С

    Регистрация:
    7 апр 2010
    Сообщения:
    277
    Симпатии:
    0
    Баллы:
    26
    Согласен с тем, что я, в данном случае, сморозил глупость: перепутал со схожей функцией внутреннего языка.

Поделиться этой страницей