К статье
Практический материал

Разработка и Конфигурация · 11 мин

Конструктор форматной строки в 1С: назначение и практика использования

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

Конструктор форматной строки — это встроенный в конфигуратор 1С визуальный инструмент, который помогает разработчику составить правильную строку форматирования для функции Формат() без заучивания синтаксиса наизусть. Форматная строка определяет, как значение — число, дата, булево — будет представлено пользователю в виде текста: с каким количеством знаков после запятой, в каком порядке выводить день, месяц и год, что показывать вместо нуля.

Инструмент доступен при редактировании модулей, свойств элементов форм, полей макетов и в других местах, где платформа ожидает форматную строку. Вместо того чтобы вручную писать конструкции вида ЧЦ=15; ЧДЦ=2; ЧРД=,, разработчик открывает конструктор, выбирает нужные параметры в диалоге и получает готовую строку, которую платформа подставляет в код или свойство.

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

Где используется форматная строка и зачем нужен конструктор

Форматная строка применяется в трёх основных местах. Во-первых, в коде — как второй параметр функции Формат(Значение, ФорматнаяСтрока), которая преобразует значение в строку. Во-вторых, в свойстве «Формат» полей ввода, надписей и ячеек табличного документа — там строка задаётся в палитре свойств без программирования. В-третьих, в выражениях языка запросов и СКД через функцию ФОРМАТ(), где синтаксис аналогичен.

Без форматирования платформа выводит значения «как есть»: дата показывается со временем вплоть до секунд, число — без разделителей разрядов, булево — словами «Да» или «Нет» не всегда в нужном виде. Форматная строка позволяет привести отображение к требованиям печатной формы, отчёта или интерфейса.

Конструктор нужен, потому что синтаксис параметров неинтуитивен: ЧЦ — общая длина числа, ЧДЦ — длина дробной части, ЧН — представление нуля, ДФ — формат даты, БЛ/БИ — представления булевых значений. Помнить все сокращения и порядок их записи необязательно, если под рукой диалог с подсказками.

Как вызвать конструктор форматной строки

Самый частый способ — через палитру свойств. Выделите поле формы или ячейку макета, найдите свойство «Формат» и нажмите кнопку выбора (три точки) в правой части строки свойства. Откроется диалог конструктора, где слева выбирается тип значения (число, дата, булево), а справа — конкретные параметры.

Второй способ — из редактора модуля. Установите курсор в то место кода, где нужна форматная строка, и вызовите контекстное меню правой кнопкой мыши: пункт «Конструктор форматной строки». Готовая строка будет вставлена в позицию курсора, что удобно при написании вызовов Формат() в коде.

В диалоге есть поле «Пример», где сразу видно, как будет выглядеть результат при текущих настройках. Меняйте параметры и контролируйте образец — это самый быстрый способ подобрать нужный вид без запуска всей конфигурации.

Порядок действий
  1. 1
    Откройте палитру свойств поля или поставьте курсор в модуль, где нужен вызов Формат()
  2. 2
    Вызовите конструктор: кнопка выбора у свойства «Формат» или контекстное меню в редакторе модуля
  3. 3
    Выберите тип значения: число, дата или булево
  4. 4
    Настройте параметры и смотрите на поле «Пример»
  5. 5
    Нажмите «ОК» — платформа подставит готовую строку
  6. 6
    Проверьте результат в режиме предприятия на реальных данных

Форматирование чисел через конструктор

Для чисел конструктор предлагает задать общую длину представления, количество знаков дробной части, разделитель дробной части, разделитель групп разрядов и представление нулевого значения. Эти настройки превращаются в параметры ЧЦ, ЧДЦ, ЧРД, ЧГ и ЧН.

Практический пример: нужно вывести сумму с двумя знаками после запятой и пробелами между тысячами. В конструкторе указываете длину дробной части 2 и разделитель групп — пробел. Полученная строка вида ЧДЦ=2; ЧГ=3,0 выведет «1 234 567,89» вместо «1234567.89». Параметр «сдвиг разрядов» (отрицательное значение в ЧЦ влияет иначе — проверяйте на примере) используется редко, для отображения сумм в тысячах.

Полезная возможность — строка «представление нуля». Если в отчёте нулевые остатки должны показываться прочерком, задайте в конструкторе соответствующее значение, и вместо «0,00» пользователь увидит «-». Это читается лучше и не требует условий в коде.

bsl
СуммаСтрокой = Формат(СуммаДокумента, "ЧЦ=15; ЧДЦ=2; ЧРД=,; ЧГ=3,0; ЧН=-");

Форматирование дат и булевых значений

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

Типичная задача — убрать время из даты документа. По умолчанию дата в 1С хранит время, и без форматирования пользователь видит «15.03.2026 10:24:37». Конструктор с шаблоном «краткая дата» сформирует строку ДЛФ=D, и на экране останется «15.03.2026». Для нестандартных видов, например «15 марта 2026 г.», используется ДЛФ=DD или ручной шаблон ДФ='d MMMM yyyy ''г.''' — конструктор помогает собрать и такой.

Для булевых значений задаются две строки: что выводить для «Ложь» (параметр БЛ) и что для «Истина» (БИ). Например, в печатной форме вместо «Истина/Ложь» удобно выводить «Да/Нет» или «Оплачен/Не оплачен». Конструктор подставит обе строки в нужном порядке.

Ручная правка строки и сочетание с конструктором

Конструктор не закрывает всех случаев: некоторые параметры проще дописать вручную. Типичный сценарий — сначала собрать основу в конструкторе, затем в редакторе добавить то, что диалог не предложил: например, параметр ЧС (сдвиг разрядов) для вывода сумм в тысячах или нестандартные литералы в шаблоне даты.

Строка форматирования состоит из пар «параметр=значение», разделённых точкой с запятой. Порядок параметров не важен. Если параметр содержит пробелы или спецсимволы, значение заключается в одинарные кавычки. Платформа игнорирует неизвестные параметры, поэтому опечатка в имени параметра не вызовет ошибку — просто формат не применится, и это затрудняет поиск причины.

При ручной правке держите под рукой синтакс-помощник конфигуратора: откройте описание функции «Формат» и сверяйте имена параметров. Это надёжнее, чем копировать строки из старого кода, где могли накопиться ошибки.

Типичные ошибки
01
Опечатка в имени параметра (ЧДД вместо ЧДЦ) — платформа молча игнорирует параметр, формат не применяется
02
Форматирование значения до вычислений — результат Формат() это строка, арифметика с ней невозможна
03
Использование точки вместо запятой в разделителе при русской локали — пользователь видит непривычный вид числа
04
Забытый параметр ДЛФ — дата выводится со временем и «ломает» вёрстку печатной формы
05
Попытка задать формат для строки — форматирование работает только с числами, датами и булево

Как проверить, что формат применился правильно

Первый уровень проверки — поле «Пример» в самом конструкторе: оно показывает образец ещё до сохранения. Но пример использует типовое значение, поэтому обязательна проверка на реальных данных: откройте форму или сформируйте печатную форму в режиме предприятия.

Обратите внимание на граничные случаи: нулевое значение, очень большое число, дата со временем 00:00:00, пустая дата (01.01.0001). Именно на них чаще всего всплывают недочёты — например, пустая дата без специального формата показывается как «01.01.0001 0:00:00», что выглядит как мусор в отчёте.

Если формат не применился, проверьте три вещи: правильность имён параметров, то, что значение имеет ожидаемый тип (число, а не строка с цифрами), и что форматная строка передана именно вторым параметром функции Формат(), а не первым.

Контрольные точки

Как проверить результат

Отображение числа в форме
Норма

Нужное число знаков после запятой, разделители разрядов

Тревожный признак

Число без изменений или с точкой вместо запятой

Дата в печатной форме
Норма

Только дата в заданном шаблоне

Тревожный признак

Дата со временем или в формате по умолчанию

Нулевое и пустое значение
Норма

Прочерк или заданное представление нуля

Тревожный признак

«0,00» или «01.01.0001 0:00:00»

Код с Формат()
Норма

Строка вторым параметром, значение нужного типа

Тревожный признак

Ошибка преобразования или игнорирование формата

Ограничения и альтернативы

Конструктор не работает со строками и ссылочными типами — для них форматирования нет. Если нужно изменить представление строки, используйте строковые функции (Лев, Прав, СтрЗаменить). Для ссылок представление задаётся через функциональные опции и настройки объектов, а не форматную строку.

Для представления дат и чисел в многоязычных конфигурациях учитывайте региональные настройки: разделитель дробной части и порядок день-месяц-год зависят от локали сеанса. Жёстко зашитый в строку разделитель может конфликтовать с локалью пользователя.

В механизме СКД формат можно задать прямо в настройках поля на закладке «Наборы данных» или «Настройки» — там тоже доступен конструктор. Это предпочтительнее, чем форматировать значения в запросе, потому что в запросе форматирование превращает поле в строку и ломает группировки и итоги.

Итог

Что важно запомнить

Конструктор форматной строки — визуальный диалог конфигуратора, собирающий параметры ЧЦ, ЧДЦ, ДФ, ДЛФ, БЛ/БИ для функции Формат() и свойств полей. Вызывается из палитры свойств или контекстного меню модуля, результат контролируется по полю «Пример» и на реальных данных. Форматирование меняет только отображение и возвращает строку.

Частые вопросы

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

Кнопка выбора появляется только у свойств, где платформа ожидает форматную строку (свойство «Формат» полей ввода, надписей, ячеек макета). В модуле используйте контекстное меню правой кнопки мыши — пункт «Конструктор форматной строки». Если и там пункта нет, проверьте, что редактируется именно модуль встроенного языка, а не, например, текстовый документ.

Почему форматная строка игнорируется без ошибки?

Платформа не сообщает об ошибках в форматной строке — неизвестные параметры и опечатки просто пропускаются. Проверьте имена параметров по синтакс-помощнику (ЧЦ, ЧДЦ, ДФ, ДЛФ), убедитесь, что форматируемое значение имеет подходящий тип, и что строка передана вторым параметром функции Формат().

Можно ли использовать форматную строку в запросе?

Да, в языке запросов есть функция ФОРМАТ(Значение, ФорматнаяСтрока) с тем же синтаксисом. Но помните: результат — строка, поэтому по такому полю нельзя корректно сортировать, группировать и суммировать. Для отчётов на СКД лучше задавать формат в настройках поля, а не в запросе.

Как вывести дату без времени?

Откройте конструктор, выберите тип «Дата» и шаблон краткой даты — получится строка ДЛФ=D. Вызов Формат(ДатаДокумента, "ДЛФ=D") вернёт только дату без часов и минут. Для произвольного вида используйте параметр ДФ с ручным шаблоном, например ДФ='dd.MM.yyyy'.

Чем заменить ноль на прочерк в отчёте?

В конструкторе для числового значения задайте «представление нуля» — например, прочерк. В строку добавится параметр ЧН=-, и все нулевые значения будут показаны прочерком без дополнительных условий в коде или настройках отчёта.

Работает ли конструктор в тонком и веб-клиенте?

Конструктор форматной строки — инструмент конфигуратора, то есть среды разработки. В режиме предприятия (тонкий, толстый или веб-клиент) он недоступен: пользователь видит только результат применения готовой форматной строки, заданной разработчиком.