Перейти к содержимому

Как преобразовать строку в число 1с

  • автор:

Как преобразовать строку в число 1с

Подскажите как правильно преобразовать строку в число, например 3500.50. Делаю Число(3500.50) выводится ошибка «Преобразование значения к типу Число не может быть выполнено».

надо делать Число(«3500.50»)
(1) да, да все верно, я так и делаю. просто не написала здесь. Ошибка выводится.
Этого не может быть. Вы не все рассказываете.
лишние символы, наверное, в числе?
«3 500»
(2) да, все верно, только там ещё неразрывный пробел есть?
(4) (5) а как удалить неразрывный пробел
?
(6) СтрЗаменить, Формат, ну и ещё 2-3 извращённых варианта.

пробовала вот так Число(«3 500.50″,»ЧГ=0») и вот так СтрЗаменить(«3 500.50″,Символы.НПП,»») не помогло

ой (8) тут не число, а ФОрмат

(7)Если там уже строка, формат не поможет. Формат надо делать на этапе превращения в строку. Но тогда не понятен смысл всех этих туда-сюда.

(6)Дарю, копируй:
СтрЗаменить(Переменная,» «,»»)

(8)Ну, значит там не НПП, а обычный пробел
(11) да, вы правы. это был обычный пробел) всем спасибо за помощь!
ТипЧисло.привестизначение

Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший

Преобразование типов в 1С

Разберем основные вопросы преобразования типов в 1С 8.3: из строки в число, из числа в строку, из даты в число и прочие варианты. В этой статье мы рассмотрим функции преобразования значений, и я соберу в едино все варианты преобразования примитивных типов.

Строка в число в 1С

Узнаем, как в 1С 8.3 преобразовать строку в число.

Пусть, у нас есть числа в таком виде.

СтрокаЧ1 = "120"; СтрокаЧ2 = "12.24"; СтрокаЧ3 = "12,24"; СтрокаЧ4 = "0,24"; СтрокаЧ5 = "0000001"; 

Для того, чтобы выполнить преобразование этих строк в число, необходимо воспользоваться методом Число. Этот метод преобразует параметр в число.

Ч1 = Число(СтрокаЧ1); Ч2 = Число(СтрокаЧ2); Ч3 = Число(СтрокаЧ3); Ч4 = Число(СтрокаЧ4); Ч5 = Число(СтрокаЧ5); 

Обратите внимание, что разделять дробную часть можно в строке как при помощи символа точка «.», так и при помощи символа запятая «,». Если перед каким-то числом в строке стоят нули, то они отсекаются. У нас будет следующий результат.

Строка в число в 1С

Число в строку в 1С

Рассмотрим обратную задачу, когда в 1С 8.3 нужно преобразовать число в строку. Самый простой вариант использовать метод Строка, который преобразует собственный параметр в строку.

Ч1 = 120; Ч2 = 12.24; Ч3 = 10000000000; СтрокаЧ1 = Строка(Ч1); СтрокаЧ2 = Строка(Ч2); СтрокаЧ3 = Строка(Ч3); Сообщить(СтрокаЧ1); Сообщить(СтрокаЧ2); Сообщить(СтрокаЧ3); 

И какой результат возвращает этот код:

Число в строку в 1С

У этого способа имеется недостаток: он ставит пробелы между разрядами у длинных чисел. Для того, чтобы в 1С преобразовать число в строку без пробелов нужно воспользоваться функцией Формат. Данная функция имеет два параметра: преобразуемое значение и форматную строку. Если нам нужно указать, что число преобразуется в строку без пробелов в разряде, то необходимо указать в форматной строке, что порядок разделения группировки разрядов числа или равен 0, или пустой.

Ч1 = 10000000000; СтрокаЧ1 = Формат(Ч1,"ЧГ color: red;">); Сообщить(СтрокаЧ1); 

Результат будет без разрядов:

число в строку без пробелов 1C

Строка в дату 1С

Узнаем, как преобразовать в 1С 8.3 строку в дату. Для этого необходимо использовать метод Дата, который преобразует параметр (в том числе строку ) в дату . Причем, замечу, что строка должна быть задана в таком формате «ГГГГММДДЧЧММСС».

Подробнее о форматах дат читайте в этой статье: даты в 1С.

СтрокаД1 = "20120910"; СтрокаД2 = "20120910121559"; СтрокаД3 = "00010101121559"; Дата1 = Дата(СтрокаД1); Дата2 = Дата(СтрокаД2); Дата3 = Дата(СтрокаД3); 

Строка в дату в 1С

Если мы зададим дату в не верном формате, то преобразование не произойдет и возникнет ошибка «Преобразование значения к типу Дата не может быть выполнено».

Например, этот код:

СтрокаД1 = "121559"; Дата1 = Дата(СтрокаД1) 

Приведет к ошибке:

Преобразование значения к типу Дата не может быть выполнено

Дата в строку в 1С

Преобразовать дату в строку можно несколькими способами. Первый способ: воспользоваться уже знакомым нам методом Строка.

Дата1 = Дата(2012,10,12); СтрокаД = Строка(Дата1); Сообщить(СтрокаД); 

В этом случае у нас выйдет строка в обычном «полном» формате даты.

Дата в строку в 1С

А чтобы получить дату в том формате, в каком нам нужно, необходимо воспользоваться методом Формат.

Форматов дат может быть великое множество ,все я разбирать в этой статье не буду, покажу только как можно быстро воспользоваться этой функцией.

Мы изменим предыдущий код, написав вместо метода Строка метод Формат, а в качестве второго параметра у метода Формат напишем просто две кавычки.

Дата1 = Дата(2012,10,12); СтрокаД = Формат(Дата1,""); Сообщить(СтрокаД); 

После нужно между кавычками поставить курсор, вызвать контекстное меню, и применить в нем команду Конструктор форматной строки.

Конструктор форматной строки

В этом конструкторе на закладке Дата вы можете выбрать удобный вам формат даты.

Конструктор форматной строки

И после нажатия кнопки ОК этого конструктора, нужный формат появится в виде строки.

Дата1 = Дата(2012,10,12); СтрокаД = Формат(Дата1,"ДФ=dd/MM/yy"); Сообщить(СтрокаД); 

В результате метода Формат, дата будет преобразована в строку в том виде, в каком нам необходимо.

Дата в строку в 1С

Строка в булево в 1С

При помощи метода Булево мы можем некоторые строковые представления (Да, Нет, Истина, Ложь) преобразовывать в значения Истина или Ложь.

Например, следующие переменные:

стр_Да = Булево("Да"); стр_Нет = Булево("Нет"); стр_Истина = Булево("Истина"); стр_Ложь = Булево("Ложь"); 

Будут иметь такие значения:

Строка в булево

Булево в строку в 1С

Разберем, как в 1С можно выразить тип булево строкой. Булево значение можно преобразовать в строку несколькими способами. Во-первых, можно просто воспользоваться методом Строка.

Например, как здесь:

б_Истина = Истина; б_Ложь = Ложь; СтрИстина = Строка(б_Истина); СтрЛожь = Строка(б_Ложь); Сообщить(СтрИстина); Сообщить(СтрЛожь); 

У нас будет выходить следующий результат:

Булево в строку

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

Если мы, как-то по-другому хотим преобразовать булево в строку, то можно воспользоваться уже знакомым нам методом Формат.

Переделаем, предыдущий код:

б_Истина = Истина; б_Ложь = Ложь; СтрИстина = Формат(б_Истина,""); СтрЛожь = Формат(б_Ложь,""); 

Знакомым способом вызовем конструктор форматной строки, где на закладке Булево введем преставление значений Истина и Ложь.

Конструктор форматной строки Булево

После нажатия кнопки ОК конструктора, второй параметр метода Формат заполнится:

б_Истина = Истина; б_Ложь = Ложь; СтрИстина = Формат(б_Истина,"БЛ='Ни как нет'; БИ=Конечно"); СтрЛожь = Формат(б_Ложь,"БЛ='Ни как нет'; БИ=Конечно"); Сообщить(СтрИстина); Сообщить(СтрЛожь); 

И будет следующий результат:

Булево в строку

Число в булево в 1С

В 1С 8.3. мы можем преобразовать любое число в булево по следующему правилу: 0 будет преобразован в Ложь, все остальные значения в Истина.

б_Ложь = Булево(0); б_Истина = Булево(100000); 

Будет следующий результат:

Число в булево в 1С

Булево в число в 1С

Можно сделать и обратное преобразование. Булево значение в число.

Для этого нужно воспользоваться методом Число, где в качестве параметра указать булево значение. Тогда Истина будет преобразована в 1С, а Ложь – в 0.

Например, как в этом коде:

б_Истина = Истина; б_Ложь = Ложь; ч_Истина = Число(б_Истина); ч_Ложь = Число(б_Ложь); 

С таким результатом:

Булево в число

Статьи о примитивных типах в 1С:

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

Как преобразовать строку в число 1с

Функция 1С Число(«Строка») пытается преобразовать строковое(текстовое) значение в числовое.

  • Выполняем функцию 1С Число(«22»)
  • 1С возвращает 22

Обратите внимание, что при неудачной попытке преобразования 1С вызывает «исключение» (ошибку).

Поэтому необходимо использовать Попытка/Исключение для отлова таких ситуаций.

Пример программного кода:

Только зарегистрированные пользователи VIP группы могут видеть этот контент.

Проголосовать за этот пост:

При преобразовании числа из 4 цифр в строку количество символов в строке равно 5. Почему?

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

Год = 2003 ;
Строка1 = Строка ( Год ) ; //Строка1 = «2 003», длина строки — 5 символов, включая неразрывный пробел

Чтобы преобразовать число к строке без вставки символа-разделителя групп (неразрывного пробела), нужно применить функцию Формат с параметром ЧГ=0:

Строка1 = Формат ( Число1 , «ЧГ=0» ) ;

Чтобы изменить преобразование чисел к строке по умолчанию, нужно для информационной базы установить региональные настройки (например, параметр «Группировка» установить в 0).

Для получения строкового представления года следует не получать числовое значение года, а использовать функцию Формат. Например:

Формат ( ТекущаяДата ( ) , «ДФ=гггг» )

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *