Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут! (в рабочие часы)

Формат даты, числа, строки и времени в 1С

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

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

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

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

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

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

Значение — форматируемое значение, Форматная строка — строка, заданная определенным образом, из которой формируется правило обработки формата.

Самое интересное — форматная строка. Рассмотрим её подробнее.

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

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

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

Для запуска конструктора достаточно вызвать контекстное меню (правая кнопка мыши) и выбрать в списке «Конструктор форматной строки»:

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

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

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

Где необходимо выбрать нужную Вам вкладку в зависимости от типа данных — Число, Дата или Булево.

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

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

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

Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") // "25.02.2015"

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

Формат(ТекущаяДата(), "ДЛФ=DD") // "25 февраля 2015"

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

Формат(ТекущаяДата(), "ДЛФ=T") // "20:15:43"

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

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

Формат(100500, "ЧДЦ=2") // "100 500,00"

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

Формат(100500, "ЧГ=") // "100500"

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

Формат(100500, "ЧДЦ=2; ЧРД=,") // "100 500,00"

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

Формат(100500.99, "ЧДЦ=") // "100 500"

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

Формат(100500, "ЧЦ=9; ЧВН=; ЧГ=") // "000100500"

Читайте также другие статьи по конфигурированию 1С.

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Остались вопросы?

СПРОСИТЕ в комментариях!

Комментариев: 23 на “Формат даты, числа, строки и времени в 1С
  1. Почему все примеры кода в текстах приводятся только в русской версии языка..?

    Ответить

    • Просто так пишут 99.9% разработчиков 1с:)

      Ответить

  2. Получим формат числа с двумя точками после запятой:
    Формат(100500, «ЧДЦ=2») // «100 500.00»
    Наверно двумя знаками после точки?

    А как через конструктор представить номер телефона?
    123-45-67

    Ответить

    • Я думаю это не слишком принципиально, но всё же правильно «после запятой».

      По конструктору номера телефона — я бы хранил номер телефона в формате «1234567», а ввод и вывод данных осуществлял с помощью «маски».

      Ответить

      • А поделитесь маской пожалуйста
        на входе 79261234567
        на выходе хочется +7(926)123-45-67

        Спасибо!

        Ответить

  3. > Округление числа (не математическое) до целых: Формат(100500.99, «ЧДЦ=») // «100 500»

    У меня Формат(100500.99, «ЧДЦ=»)=100501. Зависит от платформы?

    Ответить

  4. А как из формата МесяцГод типа «Ноябрь 2016» сделать начало месяца с типом дата — 01.11.2016?

    Ответить

    • Мне не известно грамотного способа, я делал через «Если Месяц = «Ноябрь» Тогда»…

      Если найдете интересный способ — скажите 🙂

      Ответить

  5. при выводе на печать ТОРГ 12 количество выводится 63,36,000 а надо 63,360
    формат в этой колонке ЧЦ = 15 ЧДЦ=3

    Ответить

    • Формат колонки правильный. Возможно где-то в коде дописывается «000»?

      Ответить

    • макет сам смотри

      Ответить

  6. Не проще ли в конфигураторе в СКД нужного отчета править формат поле ДоступноОсновной?

    Ответить

  7. Подскажите пожалуйста, в динамическом списке есть запрос который выводит строку с типом число, и когда там 0 то он выводит пустую строку!Пробовал через ЕСТЬNULL не получается, а где указать формат в запросе не понимаю, да и ругается где бы я не указывал на синтаксические ошибки.

    Ответить

  8. > Округление числа (не математическое) до целых: Формат(100500.99, «ЧДЦ=») // «100 500»
    У меня выводится 100 500, т.е. в разделителем десят.знака
    Как подскажите избавиться от этого разделителя/ЧДЦ=» округляет стандартно/
    Спасибо.

    Ответить

  9. Подскажите, возможно ли формат отображения числа указать в произвольной форме, например «000000 00 00000 0» ?

    Ответить

  10. Не могу вытащить дату из ДатыВремя &ДатаДоговора. помогите с синтаксисом

    Ответить

    • Вам нужно из переменной дата&время вытащить только дату?

      Ответить

  11. Ну и где здесь обещанный пример форматирования строки?

    Ответить

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

    Ответить

  13. У меня в конструкторе форматной строки не работает клавиатура, не получается ввести ничего, флажок формат даты нажимала, что не так ((((?

    Ответить

Добавить комментарий:

Ваш адрес email не будет опубликован.