Переделать формат суммы из 625.25 в 625-25

1. planod 10.02.12 06:56 Сейчас в теме
Собственно вопрос) как точку заменить на дефис.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
34. perepetulichka 890 26.03.21 17:59 Сейчас в теме
(1) ТекстСумма = "Сумма " + Формат(Сумма, "ЧЦ=15; ЧДЦ=2; ЧРД=-; ЧН=0-00; ЧГ=");
2. Abzkrs 36 10.02.12 07:16 Сейчас в теме
наверно почитать про Формат()
3. planod 10.02.12 07:56 Сейчас в теме
(2) Abzkrs, буду признателен за ссылку на хоошую статью)
4. onyx 29 10.02.12 09:51 Сейчас в теме
5. Abzkrs 36 10.02.12 09:52 Сейчас в теме
в синтаксис помошнике про Формат() все доходчиво написано - про разделитель дробной части
6. varelchik 10.02.12 10:03 Сейчас в теме
Мда..........
А вот так не пробовали?
Формат(Число,"Ч15.2-")
7. planod 10.02.12 10:31 Сейчас в теме
(6) varelchik, попробовал - спасибо Вам)
8. planod 10.02.12 10:53 Сейчас в теме
(6) varelchik, а еще такой вопрос: как из числа 800 сделать число 800-00??? опять же через формат? у меня не получилось((
9. Pari 10.02.12 11:27 Сейчас в теме
как из числа 800 сделать число 800-00??? опять же через формат? у меня не получилось((

Что значит "не получилось"? Формат(НужноеЧисло,"Ч15.2-") работает для любых чисел. Только возвращает не число, а строку. (800-00 это строка)
PS. Чтобы слева убрать лишние пробелы, можно так СокрЛ(Формат(НужноеЧисло,"Ч15.2-"))
10. planod 10.02.12 11:43 Сейчас в теме
(9) Pari, В том-то и дело, что даже, скопировав, Ваш код у меян выводит 800 вместо 800-00.
11. evgaid 145 10.02.12 11:50 Сейчас в теме
Я сталкивался с такой проблемой, она возникает когда идет два раза определения формата, т.е. в модуле к примеру стоит Формат(*,"Ч15.2,") и в печатной форме делаете к примеру #Ч15.2-, то он вместо 800-00, будет выводить 800. Проверьте это!
12. planod 10.02.12 11:53 Сейчас в теме
(11) evgaid, хорошо, поищу, но у меня идет запись в текстовый файл сразу.
13. DaDaEtoYa 22 10.02.12 12:00 Сейчас в теме
а если так
СтрЗаменить(Формат(Значение,"Ч.2"),".","-");
14. planod 10.02.12 12:08 Сейчас в теме
(13) DaDaEtoYa, не получилось( а если сначала число 800 превратить в 800.00 Такое возможно?
15. S.V.Y 17 10.02.12 12:13 Сейчас в теме
(14) planod, откуда число берется? Если из таблицы значений, то приведи колонку к виду *,"Число","12","2", допустим, хотя на Формат() это влиять не должно. Это раз. Два: пробуйте не Формат(НужноеЧисло,"Ч15.2-"), а Формат(НужноеЧисло,"Ч15.2.-"), первый символ "." - разделяет тысячи, второй "-" - дробную часть числа, или копейки.
19. Pari 10.02.12 13:52 Сейчас в теме
Два: пробуйте не Формат(НужноеЧисло,"Ч15.2-"), а Формат(НужноеЧисло,"Ч15.2.-"), первый символ "." - разделяет тысячи, второй "-" - дробную часть числа, или копейки.

(15) valerka78, то, что часто используешь, хорошо держится в памяти. Тем не менее я обычно проверяю то, что предлагаю.
Pari, В том-то и дело, что даже, скопировав, Ваш код у меня выводит 800 вместо 800-00

(14) Уточните, где выводит? В печатной форме или где? Какой переменной присваиваете значение Формат(.....)?
Приведите строчку кода.
23. planod 13.02.12 10:28 Сейчас в теме
(19) Pari,
Уточните, где выводит? В печатной форме или где? Какой переменной присваиваете значение Формат(.....)?

Значение переменной беру из документа ПлатежноеПоручение
сумма = Док.Сумма

А потом дальше произвожу запись в файл txt. После просматриваю файл, а там вместо 800-00 записано 800
24. Pari 13.02.12 19:49 Сейчас в теме
А потом дальше произвожу запись в файл txt. После просматриваю файл, а там вместо 800-00 записано 800

(23) Перед тем, как записать текст в файл, нужно сначала этот текст сформировать.
Если работаете с объектом Текст, то видимо в коде есть добавление очередной строки, что-то вроде
ТекстПП.ДобавитьСтроку(ОчереднаяСтрока);
Как формируется эта строка с суммой платежного поручения, в каком коде??
ОчереднаяСтрока = ....;
Что справа от равенства??
26. planod 15.02.12 05:21 Сейчас в теме
(24) Pari, беру из Платежного Поручения
 сумма = Док.Сумма;
буфер = формат(сумма,"Ч12.2-.");
ТекстПП.ДобавитьСтроку(буфер);


Смотрю текстовый документ, а там число без необходимых ноликов в конце.
28. Pari 15.02.12 15:04 Сейчас в теме
(26) planod, увы, вариантов больше нет. В том виде, как в (26), работает. И с записью в файл и с выводом в Сообщить(). Могу только предложить выложить обработку в теме, для проверки утверждения, что чудес не бывает :)
20. varelchik 10.02.12 15:26 Сейчас в теме
(15) valerka78,
Уважаемый
Вы ЖКК когданибу читали?
или хотя бы СП загялдыывали?
Форматная строка для числе представляет собой следующие параметры:
N.nAB
где
N- Разрядность
n- количество знаков после запятой
А- разделитель дробной части
В- разделитель триад.
формат(800000,"Ч12.2-.") = 800.000-00
формат(800,"Ч12.2-.") = 800-00
Есче пытання будут?
Читайте ЖКК.
16. DaDaEtoYa 22 10.02.12 12:20 Сейчас в теме
(14) planod, у Вас вобще, что-то очень странное творится, вы через отладчик не пробовали смотреть пошагово?, что получается с числом, если его сначала форматом преобразовать(причем попробовать разные форматные строки), а потом и остальные действия смотреть

Формат(Значение,"Ч.2") - так вы как раз и переводите число 800 в строку "800.00"
17. nicotin 35 10.02.12 13:22 Сейчас в теме
(14) planod, еще раз внимательно проверьте свой код на соответствие
Описание встроенного языка, стр 82
Для числовых значений форматная строка должна иметь вид: "Чm.nDT" или "Чm", где т и п— целые числа. Целое положительное число m определяет длину поля в котором будет размещаться строковое представление числа, а целое по¬ложительное число n определяет число знаков после десятичной точки. D — представляет собой любой символ (кроме пробела и цифры), которым в сфор-матированной строке целая часть будет отделяться от дробной, а T — символ (также кроме пробела и цифры), которым будут разделяться триады целой час¬ти числа. Символы "D" и "Т" являются необязательными.
21. varelchik 10.02.12 15:36 Сейчас в теме
(17) nicotin,
А вот на счет пробелов вы дали маху.
Использовать можно даже еще и как.
Одинаково что для дробной, что для разделителя триад.
22. nicotin 35 10.02.12 15:58 Сейчас в теме
(21) varelchik, Да я просто вставил кусок из электронной книги, кстати совпадает с оригиналом ЖКК.
Если пробелы использовать можно, то это уже недокументированная возможность.Интересно, а как
числа с пробелами воспринимает встроенный калькулятор 1С ?
18. nicotin 35 10.02.12 13:30 Сейчас в теме
+17 Еще может быть, что вы пытаетесь применить Формат() к переменной, которая УЖЕ является строкой.
Тогда попробуйте применить Формат(Число(МояПеременная), СтрокаШаблона);
25. hild 15.02.12 01:48 Сейчас в теме
синтаксис помощник спасет от таких проблем или скачайте типовой хелп по 1с, их более чем достаточно и примеры есть, в конце концов книги для 7.7 из типового комплекта поставки тоже есть и в электронном виде тоже
27. TolikL 15.02.12 08:49 Сейчас в теме
В глобальном модуле можно чтони - нибуль прописать пр о форматы:
Например:

Перем сФорматС, сФорматВ, сФорматК;
Процедура УстановитьФорматСумм()
сФорматС = "Ч0"+(Метаданные.ДлинаСуммыПроводки+3)+"."+Метаданные.ТочностьСуммыПроводки;
Если Метаданные.РазделятьТриадыСуммыПроводки = 1 Тогда
сФорматС = сФорматС+".,";
КонецЕсли;

сФорматВ = "Ч0"+(Метаданные.ДлинаВалютнойСуммыПроводки+3)+"."+Метаданные.ТочностьВалютнойСуммыПроводки;
Если Метаданные.РазделятьТриадыВалютнойСуммыПроводки= 1 Тогда
сФорматВ = сФорматВ+".,";
КонецЕсли;

сФорматК = "Ч0"+(Метаданные.ДлинаКоличестваПроводки+3)+"."+Метаданные.ТочностьКоличестваПроводки;
Если Метаданные.РазделятьТриадыКоличестваПроводки = 1 Тогда
сФорматК = сФорматК+".,";
КонецЕсли;
КонецПроцедуры
29. varelchik 15.02.12 15:14 Сейчас в теме
Согласен.
Обработку в студию.
30. Гость 15.02.12 19:38
У меня не получилось, а тоже стоит такая проблема Формат(НужноеЧисло,"Ч15.2.-"
31. Pari 15.02.12 20:01 Сейчас в теме
(30) У меня в (10), а ещё до этого у varelchik в (6)
Формат(НужноеЧисло,"Ч15.2-")
Или так Формат(НужноеЧисло,"Ч15.2-."), если нужна точка в качестве разделителя групп разрядов.
Сначала "-", потом ".", задачка из серии "найди десять отличий" :)
32. dusha0020 1107 15.02.12 21:43 Сейчас в теме
А нет подозрения что автор топика просто $m набивает с ответов в форуме? Проблема элементарна, а решения все нет. Да и зарегистрировался он не так давно... Здесь можно мозг сломать почему
буфер = формат(сумма,"Ч12.2-.");
не работает, а секрет может быть довольно простым...
33. R1sks 16.02.12 00:40 Сейчас в теме
ctrl+H = в выделенном столбце заменить точку на дефис :-))))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот