8.х Преобразовать строку в число

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

  1. TopicStarter Overlay
    flintm
    Offline

    flintm Опытный в 1С

    Регистрация:
    6 июл 2008
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    Добрый день! Подскажите, как в 1С 8.1 преобразовать строку в число? В лоб через Число() не получается. В частности, нужно чтобы
    мПрефиксВТ = "2" + Константы.ПрефиксВесовогоТовара.Получить(); имело тип ЧИСЛО.
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.574
    Симпатии:
    717
    Баллы:
    204
    ээээ...а если так?

    мПрефиксВТ = Число("2" + Формат(Константы.ПрефиксВесовогоТовара.Получить(), "ЧН=0; ЧГ=0");
  3. TopicStarter Overlay
    flintm
    Offline

    flintm Опытный в 1С

    Регистрация:
    6 июл 2008
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    Нет. В лоб через ЧИСЛО не получается..
  4. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    ну тогда пиши свою функцию... преобразования... :)


    почему из двух строковых...сложить..будет строка...из нее получаешь число...или у тебя в Константы.ПрефиксВесовогоТовара.Получить() не только циферки ?
  5. TopicStarter Overlay
    flintm
    Offline

    flintm Опытный в 1С

    Регистрация:
    6 июл 2008
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    В константе только циферки.
    Почему не получается ЧИСЛО, не знаю.
    Написать свою функцию преобразования не могу (нет таких познаний в коде), поэтому и спрашиваю здесь у специалистов...
  6. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Потому что нужно так:
    Код:
    Префикс = Константы.ПрефиксВесовогоТовара.Получить();
    мПрефиксВТ = 2 + Префикс;
    

    А у вас "2"-это строка, вот и не приводилось к числу.
  7. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Вообще-то nomad_irk написал рабочий пример. Лично только что проверил - работает.
    Можно даже без формата:
    Код:
    Попытка
    мПрефиксВТ = Число("2" + Константы.ПрефиксВесовогоТовара.Получить());
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
    
    alexburn, подумайте.. :angry:
    Если у меня префикс "1", то я хочу получить "21", а в вашем примере получу "3". ;)
  8. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    :D Конечно думал :D , это как палка о двух концах, просто из объяснения уважаемого AlexB, я что понял-то и показал:)

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