Разработка и Конфигурация · 11 мин
Конструктор форматной строки в 1С: назначение и практика использования
Что такое конструктор форматной строки в 1С, как вызвать его в конфигураторе, настроить формат чисел, дат и булевых значений и проверить результат.
Конструктор форматной строки — это встроенный в конфигуратор 1С визуальный инструмент, который помогает разработчику составить правильную строку форматирования для функции Формат() без заучивания синтаксиса наизусть. Форматная строка определяет, как значение — число, дата, булево — будет представлено пользователю в виде текста: с каким количеством знаков после запятой, в каком порядке выводить день, месяц и год, что показывать вместо нуля.
Инструмент доступен при редактировании модулей, свойств элементов форм, полей макетов и в других местах, где платформа ожидает форматную строку. Вместо того чтобы вручную писать конструкции вида ЧЦ=15; ЧДЦ=2; ЧРД=,, разработчик открывает конструктор, выбирает нужные параметры в диалоге и получает готовую строку, которую платформа подставляет в код или свойство.
Конструктор особенно полезен начинающим: синтаксис форматной строки в 1С неочевиден, параметры разделяются точкой с запятой, а ошибка в одном символе приводит либо к неожиданному отображению данных, либо к тому, что формат молча игнорируется. Диалог с выпадающими списками и примером результата снимает эту проблему.
Где используется форматная строка и зачем нужен конструктор
Форматная строка применяется в трёх основных местах. Во-первых, в коде — как второй параметр функции Формат(Значение, ФорматнаяСтрока), которая преобразует значение в строку. Во-вторых, в свойстве «Формат» полей ввода, надписей и ячеек табличного документа — там строка задаётся в палитре свойств без программирования. В-третьих, в выражениях языка запросов и СКД через функцию ФОРМАТ(), где синтаксис аналогичен.
Без форматирования платформа выводит значения «как есть»: дата показывается со временем вплоть до секунд, число — без разделителей разрядов, булево — словами «Да» или «Нет» не всегда в нужном виде. Форматная строка позволяет привести отображение к требованиям печатной формы, отчёта или интерфейса.
Конструктор нужен, потому что синтаксис параметров неинтуитивен: ЧЦ — общая длина числа, ЧДЦ — длина дробной части, ЧН — представление нуля, ДФ — формат даты, БЛ/БИ — представления булевых значений. Помнить все сокращения и порядок их записи необязательно, если под рукой диалог с подсказками.
Как вызвать конструктор форматной строки
Самый частый способ — через палитру свойств. Выделите поле формы или ячейку макета, найдите свойство «Формат» и нажмите кнопку выбора (три точки) в правой части строки свойства. Откроется диалог конструктора, где слева выбирается тип значения (число, дата, булево), а справа — конкретные параметры.
Второй способ — из редактора модуля. Установите курсор в то место кода, где нужна форматная строка, и вызовите контекстное меню правой кнопкой мыши: пункт «Конструктор форматной строки». Готовая строка будет вставлена в позицию курсора, что удобно при написании вызовов Формат() в коде.
В диалоге есть поле «Пример», где сразу видно, как будет выглядеть результат при текущих настройках. Меняйте параметры и контролируйте образец — это самый быстрый способ подобрать нужный вид без запуска всей конфигурации.
- 1Откройте палитру свойств поля или поставьте курсор в модуль, где нужен вызов Формат()
- 2Вызовите конструктор: кнопка выбора у свойства «Формат» или контекстное меню в редакторе модуля
- 3Выберите тип значения: число, дата или булево
- 4Настройте параметры и смотрите на поле «Пример»
- 5Нажмите «ОК» — платформа подставит готовую строку
- 6Проверьте результат в режиме предприятия на реальных данных
Форматирование чисел через конструктор
Для чисел конструктор предлагает задать общую длину представления, количество знаков дробной части, разделитель дробной части, разделитель групп разрядов и представление нулевого значения. Эти настройки превращаются в параметры ЧЦ, ЧДЦ, ЧРД, ЧГ и ЧН.
Практический пример: нужно вывести сумму с двумя знаками после запятой и пробелами между тысячами. В конструкторе указываете длину дробной части 2 и разделитель групп — пробел. Полученная строка вида ЧДЦ=2; ЧГ=3,0 выведет «1 234 567,89» вместо «1234567.89». Параметр «сдвиг разрядов» (отрицательное значение в ЧЦ влияет иначе — проверяйте на примере) используется редко, для отображения сумм в тысячах.
Полезная возможность — строка «представление нуля». Если в отчёте нулевые остатки должны показываться прочерком, задайте в конструкторе соответствующее значение, и вместо «0,00» пользователь увидит «-». Это читается лучше и не требует условий в коде.
СуммаСтрокой = Формат(СуммаДокумента, "ЧЦ=15; ЧДЦ=2; ЧРД=,; ЧГ=3,0; ЧН=-");Форматирование дат и булевых значений
Для дат конструктор предлагает выбрать из списка готовых шаблонов: только дата, дата со временем, длинный или краткий формат, а также собрать произвольный шаблон из составляющих (день, месяц, год, часы, минуты). В результирующей строке это параметры ДФ (формат даты) и ДЛФ (локальный формат даты).
Типичная задача — убрать время из даты документа. По умолчанию дата в 1С хранит время, и без форматирования пользователь видит «15.03.2026 10:24:37». Конструктор с шаблоном «краткая дата» сформирует строку ДЛФ=D, и на экране останется «15.03.2026». Для нестандартных видов, например «15 марта 2026 г.», используется ДЛФ=DD или ручной шаблон ДФ='d MMMM yyyy ''г.''' — конструктор помогает собрать и такой.
Для булевых значений задаются две строки: что выводить для «Ложь» (параметр БЛ) и что для «Истина» (БИ). Например, в печатной форме вместо «Истина/Ложь» удобно выводить «Да/Нет» или «Оплачен/Не оплачен». Конструктор подставит обе строки в нужном порядке.
Ручная правка строки и сочетание с конструктором
Конструктор не закрывает всех случаев: некоторые параметры проще дописать вручную. Типичный сценарий — сначала собрать основу в конструкторе, затем в редакторе добавить то, что диалог не предложил: например, параметр ЧС (сдвиг разрядов) для вывода сумм в тысячах или нестандартные литералы в шаблоне даты.
Строка форматирования состоит из пар «параметр=значение», разделённых точкой с запятой. Порядок параметров не важен. Если параметр содержит пробелы или спецсимволы, значение заключается в одинарные кавычки. Платформа игнорирует неизвестные параметры, поэтому опечатка в имени параметра не вызовет ошибку — просто формат не применится, и это затрудняет поиск причины.
При ручной правке держите под рукой синтакс-помощник конфигуратора: откройте описание функции «Формат» и сверяйте имена параметров. Это надёжнее, чем копировать строки из старого кода, где могли накопиться ошибки.
Как проверить, что формат применился правильно
Первый уровень проверки — поле «Пример» в самом конструкторе: оно показывает образец ещё до сохранения. Но пример использует типовое значение, поэтому обязательна проверка на реальных данных: откройте форму или сформируйте печатную форму в режиме предприятия.
Обратите внимание на граничные случаи: нулевое значение, очень большое число, дата со временем 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'.
Чем заменить ноль на прочерк в отчёте?
В конструкторе для числового значения задайте «представление нуля» — например, прочерк. В строку добавится параметр ЧН=-, и все нулевые значения будут показаны прочерком без дополнительных условий в коде или настройках отчёта.
Работает ли конструктор в тонком и веб-клиенте?
Конструктор форматной строки — инструмент конфигуратора, то есть среды разработки. В режиме предприятия (тонкий, толстый или веб-клиент) он недоступен: пользователь видит только результат применения готовой форматной строки, заданной разработчиком.