В системе 1С:Предприятие форматные строки — это мощный инструмент для преобразования данных в удобочитаемый вид. Они позволяют настраивать отображение чисел, дат, строк и других типов значений в отчетах, печатаемых формах и при обмене данными. Однако ручное написание форматных строк требует знания синтаксиса и может занимать много времени. Именно для этого в платформе предусмотрен конструктор форматной строки — визуальный помощник, который упрощает создание сложных шаблонов.
Этот инструмент особенно полезен разработчикам, которые часто сталкиваются с необходимостью форматировать данные для выгрузки в Excel, PDF или текстовые файлы. С его помощью можно быстро настроить отображение числовых значений с разделителями разрядов, указать формат даты и времени, добавить условное форматирование и даже управлять выводом пустых значений. Но как именно работает этот конструктор, где его найти в интерфейсе 1С и какие возможности он предоставляет? Давайте разберёмся по порядку.
Что такое форматная строка в 1С и зачем она нужна
Форматная строка в 1С:Предприятие — это специальный шаблон, который определяет, как будет отображаться значение при выводе на экран, печать или экспорт. Она применяется к данным разных типов:
- 📅 Даты и время — например,
"ДФ=dd.MM.yyyy"для отображения даты в формате31.12.2026. - 💰 Числа —
"ЧЦ=10; ЧРД=;"для вывода чисел с двумя знаками после запятой и разделителями разрядов. - 📝 Строки —
"СЧ=15"для обрезки строки до 15 символов. - 🔢 Булевы значения —
"БИ=Да;Ложь=Нет"для заменыИстина/ЛожьнаДа/Нет.
Без форматных строк данные в отчетах и документах могли бы выглядеть неудобно: даты в нечитаемом формате, числа без разделителей, пустые значения вместо осмысленных подсказок. Например, вместо привычного 1 000,50 руб. пользователь увидел бы 1000.5, а дата 2026-12-31T00:00:00 вместо 31.12.2026.
Конструктор форматной строки автоматизирует создание этих шаблонов, избавляя от необходимости запоминать синтаксис. Он доступен в разных частях платформы: при настройке полей отчетов, в конфигураторе при работе с макетами, а также в языке запросов 1С.
Где найти конструктор форматной строки в интерфейсе 1С
Конструктор форматной строки встроен в несколько ключевых мест платформы 1С:Предприятие 8. Его расположение зависит от контекста, в котором вы работаете:
- В конфигураторе:
- 🔧 При редактировании макета печати (
Файл → Открыть макет), в свойствах поляФормат. - 📊 В свойствах реквизитов отчетов или обработок, где требуется указать формат вывода.
- 🔧 При редактировании макета печати (
- В пользовательском режиме:
- 📋 В настройках печатных форм документов (например, в
Счете на оплатуилиАкте выполненных работ). - 🔍 В конструкторе запросов, при настройке вывода полей.
- 📋 В настройках печатных форм документов (например, в
- 💻 При использовании функции
Формат()в коде — конструктор можно вызвать через контекстное меню в синтакс-помощнике.
Чтобы открыть конструктор, обычно достаточно:
- Выделить поле, для которого нужно настроить формат (например, в макете печати).
- В свойствах поля найти параметр
Формат. - Нажать на кнопку с многоточием (
...) рядом с полем ввода — откроется окно конструктора. ЧГ=0— не группировать цифры (отключает разделители тысяч).ЧДЦ=2— выводить ровно 2 знака после запятой.ЧРД=— использовать пробел в качестве разделителя разрядов.НЧ=0— заменятьNull(пустое значение) на0.
Если кнопка конструктора не активна, проверьте, что поле поддерживает форматирование (например, текстовые поля без привязки к данным не имеют этой опции).
В некоторых версиях платформы (например, в 1С:Предприятие 8.3.20+) конструктор может выглядеть немного иначе, но принципы работы остаются теми же. Если вы не видите ожидаемых опций, обновите конфигурацию или проверьте настройки интерфейса.
Синтаксис форматных строк: основные элементы
Прежде чем пользоваться конструктором, полезно понимать базовый синтаксис форматных строк. Он состоит из директив — команд, которые указывают, как преобразовать данные. Директивы разделяются точкой с запятой (;). Например:
ЧГ=0; ЧДЦ=2; ЧРД= ; НЧ=0
Разберём этот пример:
Конструктор форматной строки позволяет собирать такие шаблоны визуально, без ручного ввода. Однако знание синтаксиса помогает быстрее ориентироваться в настройках и исправлять ошибки.
| Тип данных | Пример директивы | Результат | Описание |
|---|---|---|---|
| Число | ЧЦ=10; ЧДЦ=2; ЧРД=; |
1 234,56 |
10 знаков всего, 2 после запятой, разделитель разрядов — точка с запятой |
| Дата | ДФ=dd MMMM yyyy; ДЛП=Длинный |
31 декабря 2026 |
Полное название месяца, формат дня и года |
| Строка | СЧ=20; СЗ=пробел |
Текст из 20 сим... |
Обрезать строку до 20 символов, заполнять пробелами |
| Булево | БИ=Да; Ложь=Нет; НБ=Не указано |
Да / Нет |
Замена стандартных Истина/Ложь на пользовательские значения |
Важно: директивы чувствительны к регистру! Например, ЧЦ (число цифр) и чц — это разные команды, и вторая не сработает.
Пошаговая инструкция: как пользоваться конструктором
Рассмотрим процесс создания форматной строки на примере настройки поля в макете печати. Предположим, нам нужно отформатировать вывод суммы документа с разделителями разрядов и двумя знаками после запятой.
- Откройте макет печати:
В конфигураторе перейдите в раздел
Объекты → [ВашДокумент] → Макетыи выберите нужный макет (например,ПечатнаяФорма). - Выделите поле с числом:
Найдите на макете поле, которое выводит сумму (например,
СуммаДокумента), и кликните по нему. - Откройте свойства поля:
В панели свойств найдите параметр
Формати нажмите на кнопку...рядом с ним. - Настройте формат в конструкторе:
В открывшемся окне:
- 📌 Выберите тип данных —
Число. - 📌 Укажите количество знаков после запятой —
2. - 📌 Включите разделители разрядов и выберите символ (обычно пробел или запятая).
- 📌 При необходимости настройте вывод нулевых значений (например, замените
0на прочерк).
- 📌 Выберите тип данных —
Нажмите ОК и сохраните макет. Запустите печать документа, чтобы увидеть, как применяется формат.
Выбран правильный тип данных (число/дата/строка)
Указано нужное количество знаков после запятой
Настроены разделители разрядов (если требуется)
Проверено отображение пустых значений (Null)
Тестировался вывод на реальных данных-->
Если результат не устраивает, вернитесь в конструктор и скорректируйте настройки. Например, для валютных сумм может потребоваться добавить символ валюты (ЧС=руб.).
Что делать, если конструктор не сохраняет изменения?
Иногда изменения в конструкторе не применяются из-за кэширования макета. В этом случае:
1. Закройте и снова откройте макет.
2. Перезапустите 1С:Предприятие в режиме конфигуратора.
3. Проверьте, нет ли блокировок на редактирование объекта (например, если макет используется в другой сессии).
Типичные ошибки и как их избежать
Даже с конструктором пользователи часто сталкиваются с проблемами при работе с форматными строками. Вот наиболее распространённые ошибки и способы их решения:
- ❌ Неверный тип данных:
Если вы применяете формат для даты к числовому полю, 1С проигнорирует настройки или выдаст ошибку. Всегда проверяйте, что тип формата соответствует типу данных поля.
- ❌ Конфликт директив:
Например, одновременно указаны
ЧГ=0(отключить группировку) иЧРД=;(разделитель — точка с запятой). В этом случае приоритет будет у последней директивы. - ❌ Неучтённые региональные настройки:
Формат даты
dd.MM.yyyyможет не сработать, если в системе установлен другой региональный стандарт (например,MM/dd/yyyy). Используйте универсальные форматы или настройте региональные параметры в 1С. - ❌ Игнорирование пустых значений:
Если не указать директиву
НЧ(заменаNull), пустые поля могут отображаться как#или вовсе пропадать из вывода.
⚠️ Внимание: В версиях 1С:Предприятие 8.3.18 и ниже некоторые директивы (например, ДЛП для длинного формата даты) могут работать некорректно. Проверяйте совместимость в документации к вашей версии платформы.
Чтобы избежать ошибок, тестируйте форматные строки на реальных данных. Например, если вы настраиваете вывод суммы, проверьте, как строка ведёт себя с:
- 💵 Отрицательными числами (
-1000.50). - 💵 Нулевыми значениями (
0). - 💵 Очень большими числами (
1 000 000 000). - 💵 Пустыми значениями (
Null).
Практическое применение: примеры форматных строк
Рассмотрим несколько реальных примеров, где конструктор форматной строки значительно упрощает работу.
1. Форматирование денежных сумм
Задача: вывести сумму в формате 1 234,56 руб. с разделителями разрядов и символом валюты.
Решение в конструкторе:
- Тип данных:
Число. - Число десятичных знаков:
2. - Разделитель разрядов:
Пробел. - Символ валюты:
руб.(в директивеЧС=руб.). - Замена пустых значений:
0.
Результирующая строка: ЧДЦ=2; ЧРД= ; ЧС=руб.; НЧ=0
2. Вывод даты в длинном формате
Задача: отобразить дату как 31 декабря 2026 года.
Решение:
- Тип данных:
Дата. - Формат даты:
dd MMMM yyyy 'года'. - Локализация:
Длинный(для полного названия месяца).
Результирующая строка: ДФ="dd MMMM yyyy 'года'"; ДЛП=Длинный
3. Условное форматирование строк
Задача: если строка пустая, выводить — (прочерк), иначе обрезать до 30 символов.
Решение:
- Тип данных:
Строка. - Максимальная длина:
30. - Замена пустых значений:
—.
Результирующая строка: СЧ=30; НС=—
Эти примеры показывают, как гибко можно настраивать вывод данных. Конструктор позволяет собирать такие строки интуитивно, без знания всех директив наизусть.
Для сложных форматов (например, с условной логикой) может потребоваться комбинировать конструктор с ручным редактированием строки. Не бойтесь дописывать директивы вручную, если конструктор не покрывает вашу задачу.
Расширенные возможности: условное форматирование и функции
Помимо базовых настроек, конструктор форматной строки поддерживает более сложные сценарии:
- 🎨 Условное форматирование:
Можно задавать разные форматы в зависимости от значения. Например, отрицательные суммы выводить красным цветом, а положительные — зелёным. Для этого используются директивы вида
ЧЦ=2; ЧЦ<0="[Красный]ЧЦ=2". - 🔄 Преобразование типов:
С помощью форматной строки можно не только менять внешний вид, но и преобразовывать данные. Например, число
1выводить как"Да", а0— как"Нет"(директиваБИ=Да; Ложь=Нет). - 📊 Работа с коллекциями:
Для массивов или табличных частей можно настраивать формат вывода каждого элемента, например, разделяя их запятыми:
СП=;.
Пример условного форматирования для температуры:
ЧЦ=1; ЧЦ>30="[Красный]ЧЦ=1°С"; ЧЦ<10="[Синий]ЧЦ=1°С"
В этом случае:
- Температура выше 30°С будет красного цвета.
- Ниже 10°С — синего.
- Остальные значения — стандартного цвета.
⚠️ Внимание: Условное форматирование в форматных строках поддерживается не во всех версиях 1С. В старых релизах (до 8.3.15) для этого может потребоваться использовать программный код.
Для сложных правил (например, зависимых от других полей) лучше использовать обработчики событий в 1С, а не только форматные строки.
FAQ: ответы на частые вопросы
Как сохранить форматную строку для повторного использования?
В 1С нет встроенного механизма сохранения пользовательских форматов, но вы можете:
- Скопировать готовую строку в текстовый файл или
Excel. - Создать обработку с коллекцией часто используемых форматов.
- Использовать
Хранилище значенийдля сохранения шаблонов.
В некоторых конфигурациях (например, 1С:ERP) есть возможность настраивать глобальные форматы для типов данных.
Почему форматная строка не применяется при печати?
Возможные причины:
- Формат настроен не для того поля (проверьте привязку данных в макете).
- В коде печати переопределяется формат (ищите вызов функции
Формат()). - Региональные настройки системы конфликтуют с форматом (например, в Windows установлен другой разделитель дробной части).
- Поле имеет тип
Строка, но в него передаётся число — формат не сработает.
Для диагностики добавьте в макет поле с выводом исходного значения (без формата) и сравните с отформатированным.
Можно ли в форматной строке использовать свои функции?
Нет, форматные строки не поддерживают вызов произвольных функций. Однако вы можете:
- Использовать встроенные директивы (например,
ЧСдля символа валюты). - Подготовить данные до применения формата с помощью кода на 1С.
- Для сложной логики создавать вычисляемые поля в запросах.
Пример подготовки данных в коде:
Если СуммаДокумента < 0 Тогда
ТекстСуммы = Формат(Абс(СуммаДокумента), "ЧДЦ=2; ЧРД= ") + " (долг)";
Иначе
ТекстСуммы = Формат(СуммаДокумента, "ЧДЦ=2; ЧРД= ");
КонецЕсли;
Как вывести число прописью с помощью форматной строки?
Форматные строки не поддерживают преобразование чисел в прописной вид. Для этого используйте:
- Встроенную функцию
ЧислоПрописью():
Текст = ЧислоПрописью(1234.56, "рубль,,копейка,м,ж");
В макетах печати можно создать вычисляемое поле с этой функцией.
Где хранится история изменений форматных строк в конфигураторе?
1С:Предприятие не ведёт историю изменений форматных строк автоматически. Однако вы можете:
- Использовать систему версий конфигурации (
Конфигурация → Версии). - Настроить внешнюю систему контроля версий (например, Git) для хранения файлов конфигурации.
- Вручную вести журнал изменений в отдельном документе.
Для критичных проектов рекомендуется сохранять копии макетов перед правками.