Переделать формат суммы из 625.25 в 625-25
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
как из числа 800 сделать число 800-00??? опять же через формат? у меня не получилось((
Что значит "не получилось"? Формат(НужноеЧисло,"Ч15.2-") работает для любых чисел. Только возвращает не число, а строку. (800-00 это строка)
PS. Чтобы слева убрать лишние пробелы, можно так СокрЛ(Формат(НужноеЧисло,"Ч15.2-"))
Я сталкивался с такой проблемой, она возникает когда идет два раза определения формата, т.е. в модуле к примеру стоит Формат(*,"Ч15.2,") и в печатной форме делаете к примеру #Ч15.2-, то он вместо 800-00, будет выводить 800. Проверьте это!
(14) planod, откуда число берется? Если из таблицы значений, то приведи колонку к виду *,"Число","12","2", допустим, хотя на Формат() это влиять не должно. Это раз. Два: пробуйте не Формат(НужноеЧисло,"Ч15.2-"), а Формат(НужноеЧисло,"Ч15.2.-"), первый символ "." - разделяет тысячи, второй "-" - дробную часть числа, или копейки.
Два: пробуйте не Формат(НужноеЧисло,"Ч15.2-"), а Формат(НужноеЧисло,"Ч15.2.-"), первый символ "." - разделяет тысячи, второй "-" - дробную часть числа, или копейки.
(15) valerka78, то, что часто используешь, хорошо держится в памяти. Тем не менее я обычно проверяю то, что предлагаю.
Pari, В том-то и дело, что даже, скопировав, Ваш код у меня выводит 800 вместо 800-00
(14) Уточните, где выводит? В печатной форме или где? Какой переменной присваиваете значение Формат(.....)?
Приведите строчку кода.
(19) Pari,
Значение переменной беру из документа ПлатежноеПоручение
А потом дальше произвожу запись в файл txt. После просматриваю файл, а там вместо 800-00 записано 800
Уточните, где выводит? В печатной форме или где? Какой переменной присваиваете значение Формат(.....)?
Значение переменной беру из документа ПлатежноеПоручение
сумма = Док.Сумма
А потом дальше произвожу запись в файл txt. После просматриваю файл, а там вместо 800-00 записано 800
А потом дальше произвожу запись в файл txt. После просматриваю файл, а там вместо 800-00 записано 800
(23) Перед тем, как записать текст в файл, нужно сначала этот текст сформировать.
Если работаете с объектом Текст, то видимо в коде есть добавление очередной строки, что-то вроде
ТекстПП.ДобавитьСтроку(ОчереднаяСтрока);
Как формируется эта строка с суммой платежного поручения, в каком коде??
ОчереднаяСтрока = ....;
Что справа от равенства??
(15) valerka78,
Уважаемый
Вы ЖКК когданибу читали?
или хотя бы СП загялдыывали?
Форматная строка для числе представляет собой следующие параметры:
N.nAB
где
N- Разрядность
n- количество знаков после запятой
А- разделитель дробной части
В- разделитель триад.
формат(800000,"Ч12.2-.") = 800.000-00
формат(800,"Ч12.2-.") = 800-00
Есче пытання будут?
Читайте ЖКК.
Уважаемый
Вы ЖКК когданибу читали?
или хотя бы СП загялдыывали?
Форматная строка для числе представляет собой следующие параметры:
N.nAB
где
N- Разрядность
n- количество знаков после запятой
А- разделитель дробной части
В- разделитель триад.
формат(800000,"Ч12.2-.") = 800.000-00
формат(800,"Ч12.2-.") = 800-00
Есче пытання будут?
Читайте ЖКК.
(14) planod, у Вас вобще, что-то очень странное творится, вы через отладчик не пробовали смотреть пошагово?, что получается с числом, если его сначала форматом преобразовать(причем попробовать разные форматные строки), а потом и остальные действия смотреть
Формат(Значение,"Ч.2") - так вы как раз и переводите число 800 в строку "800.00"
Формат(Значение,"Ч.2") - так вы как раз и переводите число 800 в строку "800.00"
(14) planod, еще раз внимательно проверьте свой код на соответствие
Описание встроенного языка, стр 82
Описание встроенного языка, стр 82
Для числовых значений форматная строка должна иметь вид: "Чm.nDT" или "Чm", где т и п— целые числа. Целое положительное число m определяет длину поля в котором будет размещаться строковое представление числа, а целое по¬ложительное число n определяет число знаков после десятичной точки. D — представляет собой любой символ (кроме пробела и цифры), которым в сфор-матированной строке целая часть будет отделяться от дробной, а T — символ (также кроме пробела и цифры), которым будут разделяться триады целой час¬ти числа. Символы "D" и "Т" являются необязательными.
В глобальном модуле можно чтони - нибуль прописать пр о форматы:
Например:
Перем сФорматС, сФорматВ, сФорматК;
Процедура УстановитьФорматСумм()
сФорматС = "Ч0"+(Метаданные.ДлинаСуммыПроводки+3)+"."+Метаданные.ТочностьСуммыПроводки;
Если Метаданные.РазделятьТриадыСуммыПроводки = 1 Тогда
сФорматС = сФорматС+".,";
КонецЕсли;
сФорматВ = "Ч0"+(Метаданные.ДлинаВалютнойСуммыПроводки+3)+"."+Метаданные.ТочностьВалютнойСуммыПроводки;
Если Метаданные.РазделятьТриадыВалютнойСуммыПроводки= 1 Тогда
сФорматВ = сФорматВ+".,";
КонецЕсли;
сФорматК = "Ч0"+(Метаданные.ДлинаКоличестваПроводки+3)+"."+Метаданные.ТочностьКоличестваПроводки;
Если Метаданные.РазделятьТриадыКоличестваПроводки = 1 Тогда
сФорматК = сФорматК+".,";
КонецЕсли;
КонецПроцедуры
Например:
Перем сФорматС, сФорматВ, сФорматК;
Процедура УстановитьФорматСумм()
сФорматС = "Ч0"+(Метаданные.ДлинаСуммыПроводки+3)+"."+Метаданные.ТочностьСуммыПроводки;
Если Метаданные.РазделятьТриадыСуммыПроводки = 1 Тогда
сФорматС = сФорматС+".,";
КонецЕсли;
сФорматВ = "Ч0"+(Метаданные.ДлинаВалютнойСуммыПроводки+3)+"."+Метаданные.ТочностьВалютнойСуммыПроводки;
Если Метаданные.РазделятьТриадыВалютнойСуммыПроводки= 1 Тогда
сФорматВ = сФорматВ+".,";
КонецЕсли;
сФорматК = "Ч0"+(Метаданные.ДлинаКоличестваПроводки+3)+"."+Метаданные.ТочностьКоличестваПроводки;
Если Метаданные.РазделятьТриадыКоличестваПроводки = 1 Тогда
сФорматК = сФорматК+".,";
КонецЕсли;
КонецПроцедуры
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот