Есть некий макет, например:
Сумма: $сумма$
Курс: $курс$
Валюта: $валюта$
Есть некая функция форматирования, которая обрабатывает макет по структуре Параметров:
Вопрос - как максимально просто и функционально добавить поддержку форматирования числе с различным количеством знаком после запятой в эту функцию форматирования?
Например, сумму нужно форматировать до 2 знаков после запятой, а курс - до четырех.
Проверку на имя поля не предлагать - неуниверсальное решение.
Сумма: $сумма$
Курс: $курс$
Валюта: $валюта$
Есть некая функция форматирования, которая обрабатывает макет по структуре Параметров:
Функция ЗаменитьПараметры(ТекМакет, Параметры) Экспорт
Для Каждого ПараметрыКЗ Из Параметры Цикл
ЗначениеПоля = ПараметрыКЗ.Значение;
ТекМакет = СтрЗаменить(ТекМакет, "$" + ПараметрыКЗ.Ключ + "$", ЗначениеПоля);
КонецЦикла;
Возврат ТекМакет;
КонецФункции
ПоказатьВопрос - как максимально просто и функционально добавить поддержку форматирования числе с различным количеством знаком после запятой в эту функцию форматирования?
Например, сумму нужно форматировать до 2 знаков после запятой, а курс - до четырех.
Проверку на имя поля не предлагать - неуниверсальное решение.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В макет можно что-нибудь добавлять?
например:
Сумма: $сумма$$ЧДЦ=2$
Курс: $курс$$ЧДЦ=4$
Валюта: $валюта$
например:
Сумма: $сумма$$ЧДЦ=2$
Курс: $курс$$ЧДЦ=4$
Валюта: $валюта$
(2) в макет и код можно добавлять все что угодно.
(2) слишком сложно, попробуйте ка написать код разбора - сами увидите, есть решение проще.
(3) э нет, так не годится, форматом нужно управлять из макета.
Конкретизирую - нужно дописать движок подстановки параметров максимально просто так, чтобы форматом чисел можно было управлять из макета. ;-) Для буквоедов уточню - всего 4 формата - 0,1,2,3 и 4 знака после запятой.
Нужно показать код разбора и способ изменения макета.
У меня код разбора офигительно простой. ;-)
(2) слишком сложно, попробуйте ка написать код разбора - сами увидите, есть решение проще.
(3) э нет, так не годится, форматом нужно управлять из макета.
Конкретизирую - нужно дописать движок подстановки параметров максимально просто так, чтобы форматом чисел можно было управлять из макета. ;-) Для буквоедов уточню - всего 4 формата - 0,1,2,3 и 4 знака после запятой.
Нужно показать код разбора и способ изменения макета.
У меня код разбора офигительно простой. ;-)
(5) точно не помню.
Вроде так:
Т.е. использовал в замене все форматы, которые использовал в оригинальном макете.
Вроде так:
Функция ЗаменитьПараметры(ТекМакет, Параметры) Экспорт
Для Каждого ПараметрыКЗ Из Параметры Цикл
ЗначениеПоля = ПараметрыКЗ.Значение;
ТекМакет = СтрЗаменить(ТекМакет, "$" + ПараметрыКЗ.Ключ + "#5.2$", Формат(ЗначениеПоля, "ЧДЦ=2"));
ТекМакет = СтрЗаменить(ТекМакет, "$" + ПараметрыКЗ.Ключ + "#5.3$", Формат(ЗначениеПоля, "ЧДЦ=3"));
ТекМакет = СтрЗаменить(ТекМакет, "$" + ПараметрыКЗ.Ключ + "$", ЗначениеПоля);
КонецЦикла;
Возврат ТекМакет;
КонецФункции
ПоказатьТ.е. использовал в замене все форматы, которые использовал в оригинальном макете.
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот