Как преобразовать строку в число 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С 8.3 нужно преобразовать число в строку. Самый простой вариант использовать метод Строка, который преобразует собственный параметр в строку.
Ч1 = 120; Ч2 = 12.24; Ч3 = 10000000000; СтрокаЧ1 = Строка(Ч1); СтрокаЧ2 = Строка(Ч2); СтрокаЧ3 = Строка(Ч3); Сообщить(СтрокаЧ1); Сообщить(СтрокаЧ2); Сообщить(СтрокаЧ3);
И какой результат возвращает этот код:

У этого способа имеется недостаток: он ставит пробелы между разрядами у длинных чисел. Для того, чтобы в 1С преобразовать число в строку без пробелов нужно воспользоваться функцией Формат. Данная функция имеет два параметра: преобразуемое значение и форматную строку. Если нам нужно указать, что число преобразуется в строку без пробелов в разряде, то необходимо указать в форматной строке, что порядок разделения группировки разрядов числа или равен 0, или пустой.
Ч1 = 10000000000; СтрокаЧ1 = Формат(Ч1,"ЧГ color: red;">); Сообщить(СтрокаЧ1);
Результат будет без разрядов:

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

Если мы зададим дату в не верном формате, то преобразование не произойдет и возникнет ошибка «Преобразование значения к типу Дата не может быть выполнено».
Например, этот код:
СтрокаД1 = "121559"; Дата1 = Дата(СтрокаД1)
Приведет к ошибке:

Дата в строку в 1С
Преобразовать дату в строку можно несколькими способами. Первый способ: воспользоваться уже знакомым нам методом Строка.
Дата1 = Дата(2012,10,12); СтрокаД = Строка(Дата1); Сообщить(СтрокаД);
В этом случае у нас выйдет строка в обычном «полном» формате даты.

А чтобы получить дату в том формате, в каком нам нужно, необходимо воспользоваться методом Формат.
Форматов дат может быть великое множество ,все я разбирать в этой статье не буду, покажу только как можно быстро воспользоваться этой функцией.
Мы изменим предыдущий код, написав вместо метода Строка метод Формат, а в качестве второго параметра у метода Формат напишем просто две кавычки.
Дата1 = Дата(2012,10,12); СтрокаД = Формат(Дата1,""); Сообщить(СтрокаД);
После нужно между кавычками поставить курсор, вызвать контекстное меню, и применить в нем команду Конструктор форматной строки.

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

И после нажатия кнопки ОК этого конструктора, нужный формат появится в виде строки.
Дата1 = Дата(2012,10,12); СтрокаД = Формат(Дата1,"ДФ=dd/MM/yy"); Сообщить(СтрокаД);
В результате метода Формат, дата будет преобразована в строку в том виде, в каком нам необходимо.

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

Булево в строку в 1С
Разберем, как в 1С можно выразить тип булево строкой. Булево значение можно преобразовать в строку несколькими способами. Во-первых, можно просто воспользоваться методом Строка.
Например, как здесь:
б_Истина = Истина; б_Ложь = Ложь; СтрИстина = Строка(б_Истина); СтрЛожь = Строка(б_Ложь); Сообщить(СтрИстина); Сообщить(СтрЛожь);
У нас будет выходить следующий результат:

В этом случае, булево в строку преобразовалось согласно региональным установкам информационной базы.
Если мы, как-то по-другому хотим преобразовать булево в строку, то можно воспользоваться уже знакомым нам методом Формат.
Переделаем, предыдущий код:
б_Истина = Истина; б_Ложь = Ложь; СтрИстина = Формат(б_Истина,""); СтрЛожь = Формат(б_Ложь,"");
Знакомым способом вызовем конструктор форматной строки, где на закладке Булево введем преставление значений Истина и Ложь.

После нажатия кнопки ОК конструктора, второй параметр метода Формат заполнится:
б_Истина = Истина; б_Ложь = Ложь; СтрИстина = Формат(б_Истина,"БЛ='Ни как нет'; БИ=Конечно"); СтрЛожь = Формат(б_Ложь,"БЛ='Ни как нет'; БИ=Конечно"); Сообщить(СтрИстина); Сообщить(СтрЛожь);
И будет следующий результат:

Число в булево в 1С
В 1С 8.3. мы можем преобразовать любое число в булево по следующему правилу: 0 будет преобразован в Ложь, все остальные значения в Истина.
б_Ложь = Булево(0); б_Истина = Булево(100000);
Будет следующий результат:

Булево в число в 1С
Можно сделать и обратное преобразование. Булево значение в число.
Для этого нужно воспользоваться методом Число, где в качестве параметра указать булево значение. Тогда Истина будет преобразована в 1С, а Ложь – в 0.
Например, как в этом коде:
б_Истина = Истина; б_Ложь = Ложь; ч_Истина = Число(б_Истина); ч_Ложь = Число(б_Ложь);
С таким результатом:

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

Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 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).
Для получения строкового представления года следует не получать числовое значение года, а использовать функцию Формат. Например:
Формат ( ТекущаяДата ( ) , «ДФ=гггг» )