1с формат числа без разделителя групп

Обновлено: 06.07.2024

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

Но перед тем как рассматривать конструктор форматной строки, познакомимся с функцией Формат.

Рассмотрим её синтаксис. Он достаточно простой:

Формат(<Значение>, <ФорматнаяСтрока>)

ФорматнаяСтрока – это строка или правило, по которому наше значение будет преобразовываться в текстовую строку. Эта функция возвращает значение с типом Строка.

Эта функция работает во всех видах клиентов (тонкий клиент, толстый, веб), поэтому её можно применять где угодно.
Для того, что бы понять, как она работает, я создам простую обработку, на форме которой размещу три реквизита: РеквизитБулево, РеквизитДата и РеквизитЧисло с соответствующими типам , и создам три команды: «Форматировать булево», «Форматировать дату» и «Форматировать число», которые размещу на форме в виде кнопок.



Создадим обработчик команды «Форматировать дату» в клиентском контексте, и напишем в нем следующий код:

Я намеренно оставил форматную строку пустую, что бы Вам стало понятно, каким образом её можно очень быстро и удобно формировать. Для того что бы узнать каким образом форматировать нам ту или иную переменную примитивного типа, можно смотреть справочную информацию и вникать во все особенности форматирования (хотя это очень нужно и полезно), а можно воспользоваться конструктором форматной строки. Для этого нужно поставить курсор между кавычек и либо вызвать конструктор через контекстное меню



Или через главное меню конфигуратора 1С



После этого откроется форма конструктора форматной строки, где будет три закладки: Число, Дата и Булево, а так же поле выбора языка.



Поскольку мы форматируем дату, то перейдем на закладку «Дата».



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



Конструктор предоставляет возможность отформатировать дату в трех форматах.
Это свободный формат даты



Локальный формат даты



Если Вы установите одновременно и локальный и свободный формат, то дата будет форматироваться согласно свободному формату.



Какой бы Вы формат не выбрали, внизу будет показано представление форматной строки



И после нажатия кнопки «Ок» параметр ФорматнаяСтрока заполнится согласно этому представлению.

На этом по большому счету работа с конструктором закончилась. Если мы сейчас сохраним обработку, то при выполнении команды «Форматировать дату», будет выходить наша отформатированная дата, согласно установленному формату.




Естественно у многих из вас возникнет вопрос.



Каким образом составлять свободный формат даты?
А вот для этого нам придется все-таки залезть в дебри справочной информации 1С.
Что бы это сделать, ставим курсор на слово формат и нажимаем комбинацию клавиш Ctrl+F1, откроется вот такое окно.



В нем мы выбираем самую нижнюю строку «Глобальный контекст/Функции форматирования/Формат» и переходим в справку. И вот касательно формата даты, в справке есть описание всех имен, которые могут встречаться.



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



Тут конечно ограниченное количество возможных форматов, но зато не придется что-то самим подбирать. Кстати, описание локальных форматов даты в справке тоже есть, и я Вам рекомендую с ними познакомиться.
Идем дальше. У нас осталось еще два типа, которые можно форматировать по определенным правилам в строку. Это Число и Булево.
С ними все точно так же как и с датами.
Для примера, создадим обработчик команды «Форматировать число» в клиентском контексте. И так же, как и в случае Даты, будет в процедуре Сообщить форматировать реквизит РеквизитЧисло.

Опять же, вызываем конструктор форматной строки одним из знакомых нам способом и переходим на закладку «Число».



У этого формата девять различных значений, каждое из которых опять-таки описывается в справочной информации.



Я разберу только некоторые из них дабы не утомлять Вас. Но перед этим подскажу, как понять какой флажок какому значению формата соответствует в справке. Для этого ставим нужную галочку, внизу смотрим, какое значение прописалось, и ищем его в справке.



Разберем некоторые форматы.
Очень часто пользователям мешает группировка цифр, и необходимо её убрать. Для этого нужно установить в параметр «Группировка» значение «0».



После этого число будет в обычном виде, без всяких разделений групп.
Еще интересный параметр – сдвиг. В том случае, когда он указан число будет умножено или поделено на 10 в степени этого параметра.


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



Доделаем нашу форматную строку для числа: длину поставим 12, точность 2, и уберем группировку. Получится вот такой формат.



И у нас получится следующая форматная строка:

Посмотрим, как работает наше форматирование



Разберем форматирование последнего примитивного типа – Булево. Для этого , так же как и для предыдущих типов, создадим процедуру на клиенте, где будем форматировать реквизит РеквизитБулево в процедуре Сообщить.

Откроем конструктор форматной строки и перейдем на закладку «Булево»



Тут все просто. Можно выбрать или какое-то предопределенное значение, которое будет выходить вместо Истина-Ложь.



Или написать какие-нибудь свои значения.



Подставим последний вариант в форматную строку функции Формат.

Сохраним обработку и посмотрим, как будет работать наш формат.


На этом бы и закончить изучение конструктора форматной строки.



Конструктор форматной строки можно использовать во всех полях, которые отображают значения одного из вышеперечисленных типов (число, булево, дата). Это может быть поле СКД или поле формы.
Например, у этого журнала, есть поле Дата.



К этому полю можно применить формат, и даты будут выходить так, как нам удобно.
Для этого нужно зайти в настройки формы.



И найти нужное поле.



Если у этого поля есть свойство Формат, то нужно нажать на кнопку «…» рядом с этим свойством, и откроется уже знакомый Вам конструктор форматной строки, где можно сделать любые необходимые настройки.



После этого наша форма списка изменится



Точно так же можно настроить формат полей СКД. Нужно зайти в оформление поля и найти свойство Формат.



В котором можно уже по знакомой нам технологии настроить нужный формат поля с примитивным типом.




Таким образом, конструктор форматной строки применим ни только при программировании код, но и при настройке интерфейса, при работе СКД и т.д., что делает его очень удобным инструментом в настройке пользовательского интерфейса.

Более подробно и основательно начальные вопросы программирования в 1С есть в моей книге:


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

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

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

3 thoughts on “ Конструктор форматной строки ”

Есть поле, с типом число. Сейчас в число можно вбить только два знака после запятой (например 1,17). А нужно до 6 знаков после запятой (например 1, 176760). Пробовал задавать точность 6, но с этим параметром система сначала даёт вбить число 1,17676, а потом сама округляет число до 1,180000. Как убрать округление?


&НаКлиенте
Процедура ФорматированиеСуммы ( Команда )

// Отображение общего числа цифр
Сообщить ( Формат ( 138 , "ЧЦ=3" )); // 138
Сообщить ( Формат ( 138 , "ЧЦ=2" )); // 99
Сообщить ( Формат ( 138 , "ЧЦ=1" )); // 9

// Отображение общего числа цифр после запятой
Сообщить ( Формат ( 138.214 , "ЧДЦ=2" )); // 138.21
Сообщить ( Формат ( 138.214 , "ЧДЦ=1" )); // 138.2
Сообщить ( Формат ( 138.214 , "ЧДЦ=0" )); // 138

// Сдвиг разрядов числа
Сообщить ( Формат ( 7 , "ЧС=5" )); // 0,00007
Сообщить ( Формат ( 7 , "ЧС=1" )); // 0,7
Сообщить ( Формат ( 7 , "ЧС=-3" )); // 7000

// Установка разделителя групп
Сообщить ( Формат ( 500000000 , "ЧРГ=*" )); // 500*000*000

// Вывод нулевого представления числа
Сообщить ( Формат ( 0 , "ЧН=ноль" )); // ноль

// Вывод лидирующих нулей
Сообщить ( Формат ( 138 , "ЧЦ=10; ЧВН ЧЦ=2; ЧВН ЧГ=0" )); // 3000000
Сообщить ( Формат ( 3000000 , "ЧГ=3,0" )); // 3 000 000
Сообщить ( Формат ( 3000000 , "ЧГ=3,2,0" )); // 30 00 000

// Представление числа прописью
Сообщить ( ЧислоПрописью ( 138.21 )); // Сто тридцать восемь 21

// Рубли-копейки (Сто тридцать восемь рублей 21 копейка)
ФСтр = "Л=ru_RU;ДП=Истина" ; ПарПИ = "рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2" ; //по-русски
ФСтр = "Л=en_US;ДП=Истина" ; ПарПИ = "rouble,roubles,kopeck,kopecks,2" ; //по-английски
ФСтр = "Л=uk_UA;ДП=Истина" ; ПарПИ = "карбованець,карбованцi,карбованцiв,м,копiйка,копiйки,копiйок,м,2" ; //по-украински
ФСтр = "Л=lv_LV;ДП=Истина" ; ПарПИ = "rublis,rubli,rublu,v,kapeika,kapeiki,kapeiku,s,2" ; //по-латышски
ФСтр = "Л=ro_RO;ДП=Истина" ; ПарПИ = "rubla,ruble,f,copeica,copeici,f,2" ; //по-румынски
ФСтр = "Л=bg_BG;ДП=Истина" ; ПарПИ = "рубла,рубли,ж,копейка,копейки,ж,2" ; //по-болгарски

// Доллары-центы (Сто тридцать восемь долларов США 21 цент)
ФСтр = "Л=ru_RU;ДП=Истина" ; ПарПИ = "доллар,доллара,долларов,м,цент,цента,центов,м,2" ; //по-русски
ФСтр = "Л=en_US;ДП=Истина" ; ПарПИ = "dollar,dollars,cent,cents,2" ; //по-английски
ФСтр = "Л=uk_UA;ДП=Истина" ; ПарПИ = "долар,долара,доларiв,м,цент,цента,центiв,м,2" ; //по-украински
ФСтр = "Л=lv_LV;ДП=Истина" ; ПарПИ = "dolars,dolari,dolaru,v,cent,centi,centu,v,2" ; //по-латышски
ФСтр = "Л=ro_RO;ДП=Истина" ; ПарПИ = "dolar,dolari,m,cent,centi,m,2" ; //по-румынски
ФСтр = "Л=bg_BG;ДП=Истина" ; ПарПИ = "долар,долара,м,цент,цента,м,2" ; //по-болгарски

// Евро-евроценты (Сто тридцать восемь евро 21 евроцент)
ФСтр = "Л=ru_RU;ДП=Истина" ; ПарПИ = "евро,евро,евро,м,евроцент,евроцента,евроцентов,м,2" ; //по-русски
ФСтр = "Л=en_US;ДП=Истина" ; ПарПИ = "euro,euros,eurocent,eurocents,2" ; //по-английски
ФСтр = "Л=uk_UA;ДП=Истина" ; ПарПИ = "євро,євро,євро,м,євроцент,євроцента,євроцентів,м,2" ; //по-украински
ФСтр = "Л=lv_LV;ДП=Истина" ; ПарПИ = "eiro,eiro,eiro,v,cents,centi,centi,v,2" ; //по-латышски
ФСтр = "Л=ro_RO;ДП=Истина" ; ПарПИ = "euro,euro,м,eurocent,eurocenti,м,2" ; //по-румынскимммм
ФСтр = "Л=bg_BG;ДП=Истина" ; ПарПИ = "евро,евро,с,евроцент,евроцента,м,2" ; //по-болгарски

Сообщить ( ЧислоПрописью ( 138.21 , ФСтр , ПарПИ ));

// Килограммы-граммы (Сто тридцать восемь килограммов 210 грамм)
Сообщить ( ЧислоПрописью ( 138.21 , "Л=ru_RU; ДП=Истина" , "килограмм, килограмма, килограммов, м, грамм, грамма, граммов, м, 3" ));

Функция Формат в 1С 8.3 предоставляет достаточно интересный инструмент разработчику для форматирования значений. Особенно часто эта функция используется для вывода примитивных типов данных (даты, времени, чисел, строки, булево) в нужном формате.

Рассмотрим подробнее функцию и способ составления форматной строки.

функция формат в 1С

Функция Формат()

Синтаксис функции достаточно прост:

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

Для облегчения труда разработчика фирма 1С встроила в платформу специальный конструктор форматной строки.

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

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

Сам конструктор выглядит следующим образом:

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

Рассмотрим использование функции на примерах.

Формат даты в 1С на примере месяца: прописью, без времени

Получить формат даты без времени:

Формат даты 1С, где месяц прописью:

Формат времени без даты, только час, минута и секунда:

Примеры формата числа

Получим формат числа с двумя точками после запятой:

Число без неразрывных пробелов:

Использование запятой вместо точки для дробной части:

Округление числа (не математическое) до целых:

Вывод лидирующих нулей без неразрывных пробелов:

Читайте также: