Разработка и Конфигурация · 10 мин
Как в 1С сделать зачеркнутый текст
Разбираем, как в 1С сделать зачеркнутый текст: в табличном документе, форме, макете печати и программно через код. Пошаговые инструкции, ограничения и решение типичных проблем.
Зачеркнутый текст в 1С чаще всего нужен для визуального выделения отмененных документов, недействующих цен, устаревших позиций в печатных формах и помеченных на удаление элементов. Платформа поддерживает зачеркивание на уровне шрифта: у объекта «Шрифт» есть отдельное свойство, которое включает этот эффект. При этом способ применения зависит от того, где именно нужно зачеркнуть текст — в табличном документе, на форме, в макете или программно.
Важно понимать сразу: в полях ввода обычных текстовых данных (например, в наименовании номенклатуры или комментарии документа) зачеркнуть часть строки штатно нельзя — форматирование там не поддерживается. Зачеркивание доступно в табличных документах, форматированных строках, надписях и элементах оформления форм, а также в макетах печатных форм. Ниже разобраны все рабочие сценарии с точными действиями.
Где в 1С вообще поддерживается зачеркивание
Прежде чем искать кнопку зачеркивания, стоит определить, в каком контексте вы работаете. Платформа 1С:Предприятие 8 поддерживает зачеркнутый шрифт в табличных документах (отчеты, печатные формы), в макетах, в элементах формы типа «Надпись» и «Поле надписи», а также в форматированных строках, которые выводятся в полях форматированного документа.
Не поддерживается зачеркивание в обычных строковых полях ввода, в ячейках табличных частей, которые отображают простые строки, и в большинстве системных надписей, формируемых платформой автоматически. Если данные хранятся как строка, зачеркивание — это всегда вопрос оформления вывода, а не самих данных.
Зачеркивание в табличном документе и макете
Табличный документ — основное место, где требуется зачеркнутый текст: печатные формы, макеты, отчеты на СКД с ручной доработкой. В конфигураторе откройте макет табличного документа, выделите нужную ячейку или диапазон ячеек и откройте палитру свойств (правый клик — «Свойства» или Alt+Enter).
В палитре найдите свойство «Шрифт» и нажмите кнопку выбора (троеточие). Откроется стандартный диалог настройки шрифта, где есть флажок «Зачеркнутый» (в некоторых версиях — «Перечеркнутый»). Установите его и подтвердите выбор. Текст в ячейке сразу отобразится зачеркнутым как в конфигураторе, так и при формировании печатной формы в режиме предприятия.
- 1Откройте макет табличного документа в конфигураторе
- 2Выделите ячейку или диапазон ячеек
- 3Откройте палитру свойств (Alt+Enter)
- 4В свойстве «Шрифт» нажмите кнопку выбора
- 5Установите флажок «Зачеркнутый» и подтвердите
- 6Сохраните макет и проверьте печатную форму в режиме предприятия
Если макет заполняется программно и зачеркивание нужно только для определенных строк (например, для отмененных позиций), оформление ячейки в самом макете не подойдет — оно применится ко всем строкам области. В этом случае зачеркивание назначается из кода после вывода области, о чем ниже.
Программное зачеркивание через код
На встроенном языке 1С зачеркивание задается через объект «Шрифт». Конструктор шрифта принимает параметры, среди которых есть «Зачеркнутый». Типовой прием — получить текущий шрифт ячейки и создать на его основе новый с включенным зачеркиванием.
Пример для табличного документа: после вывода области получите нужную ячейку через метод «Область» и установите свойство «Шрифт». Конструктор выглядит так: Новый Шрифт(ТекущийШрифт,,,,,,,Истина) — последний параметр отвечает за зачеркивание, а пропущенные позиции сохраняют исходные значения размера, наклона и других атрибутов.
Ячейка = ТабДок.Область("R" + НомерСтроки + "C2");
Ячейка.Шрифт = Новый Шрифт(Ячейка.Шрифт,,,,,,,Истина);
// Последний параметр конструктора - ЗачеркнутыйТот же подход работает для элементов формы: у элемента «Надпись» или колонки таблицы формы можно программно изменить шрифт в обработчике «ПриСозданииНаСервере» или при определенных условиях. Учтите, что для динамического зачеркивания отдельных строк таблицы формы правильнее использовать условное оформление, а не прямую установку шрифта.
Зачеркивание через условное оформление формы
Когда нужно зачеркивать строки списка или табличной части по условию (например, отмененные строки заказа или позиции с нулевым количеством), используется условное оформление формы. Это штатный механизм управляемых форм, который не требует изменения данных.
Откройте форму в конфигураторе, перейдите на закладку «Условное оформление» (или откройте настройку условного оформления через свойства формы) и добавьте новый элемент. В нем задайте три части: оформление — шрифт с включенным зачеркиванием; условие — например, «Отменено Равно Истина»; оформляемые поля — колонки таблицы, к которым применяется эффект. После сохранения строки, удовлетворяющие условию, будут отображаться зачеркнутыми.
В типовых конфигурациях условное оформление часто уже настроено для помеченных на удаление объектов в списках — именно так платформа показывает их зачеркнутыми. Если в вашем списке помеченные элементы не зачеркиваются, проверьте, не удален ли соответствующий элемент условного оформления при доработке формы.
Зачеркивание в форматированной строке и форматированном документе
Форматированная строка позволяет собрать текст из фрагментов с разным оформлением, включая зачеркивание. Каждый фрагмент создается конструктором «Новый ФорматированнаяСтрока», где одним из параметров передается шрифт. Для зачеркнутого фрагмента создайте шрифт с включенным параметром «Зачеркнутый» и передайте его в конструктор фрагмента.
Такая строка выводится в полях форматированного документа и в некоторых элементах отображения. Это основной способ показать зачеркнутый фрагмент рядом с обычным текстом — например, старую цену рядом с новой в информационной надписи на форме. В обычной строковой переменной такой эффект невозможен: платформа не хранит оформление внутри простого типа «Строка».
Типичные ошибки и ограничения
Самая частая ошибка — попытка зачеркнуть текст в поле ввода строкового типа. Там нет настроек шрифта для части текста, и никакие символы Unicode не дадут настоящего зачеркивания внутри платформенных механизмов вывода. Если требуется показать «перечеркнутое» значение, меняйте тип поля на форматированный документ или выводите данные через табличный документ.
Вторая ошибка — установка зачеркивания в макете для всей области, когда зачеркивать нужно только часть строк по условию. Итог: зачеркнутыми оказываются все строки печатной формы. Решение — убирать оформление из макета и назначать шрифт программно при выводе каждой строки.
Еще одно ограничение касается экспорта: при сохранении табличного документа в Excel зачеркивание обычно переносится корректно, но при выгрузке данных в текстовые форматы (CSV, TXT) любое оформление теряется, потому что эти форматы не хранят шрифты. Если зачеркивание несет смысловую нагрузку (например, отмена позиции), дублируйте его признаком в данных — отдельной колонкой или статусом.
Как проверить результат
Зачеркнуты только нужные строки или ячейки
Зачеркнут весь документ или зачеркивание отсутствует
Строки зачеркиваются и возвращаются к обычному виду при смене условия
Оформление не реагирует на изменение данных
Зачеркивание сохраняется в файле
Оформление потеряно — добавьте дублирующий признак в данные
Когда зачеркивание не подходит и чем его заменить
Зачеркивание — декоративный прием, и в ряде случаев лучше использовать более надежные механизмы. Для недействующих значений в справочниках типовые конфигурации предлагают пометку на удаление или специальные статусы — они не только визуально выделяют элемент, но и блокируют его использование в новых документах.
Для старых цен в печатных формах вместо зачеркивания иногда корректнее выводить отдельную колонку «Старая цена» — это однозначнее читается при печати на черно-белом принтере и при копировании документа. В интерфейсных надписях альтернативой служит цветовое выделение через стилевые цвета, которое лучше воспринимается пользователями с ослабленным зрением.
Способы визуального выделения
Подходит для отмененных позиций и старых значений; не работает в простых полях ввода и теряется при выгрузке в текст
Хорошо видно в списках и формах; не переносится в печатные формы без отдельной настройки макета
Надежнее всего: работает в отчетах, выгрузках и проверках; требует доработки структуры данных
Часто задаваемые вопросы
Можно ли зачеркнуть часть текста в наименовании товара?
Нет. Наименование — это обычная строка, и платформа не хранит оформление внутри строковых данных. Если нужно показать зачеркнутый фрагмент, выводите значение через форматированную строку на форме или через табличный документ в печати.
Почему зачеркивание не видно в режиме предприятия, хотя в конфигураторе оно есть?
Чаще всего макет не сохранен или изменения внесены в другой макет с похожим именем. Также проверьте, не перезаписывает ли код формирования печатной формы шрифт ячейки после вывода области — программная установка шрифта имеет приоритет над оформлением макета.
Как зачеркнуть помеченные на удаление элементы в списке?
В типовых конфигурациях это обычно уже настроено через условное оформление динамического списка. Если эффекта нет, добавьте элемент условного оформления с условием «ПометкаУдаления Равно Истина» и оформлением шрифта с включенным зачеркиванием.
Сохранится ли зачеркивание при печати и экспорте в PDF?
Да, при печати из 1С и сохранении табличного документа в PDF зачеркивание переносится, так как это свойство шрифта. При экспорте в Excel оно также обычно сохраняется. Теряется оформление только в форматах без поддержки шрифтов — CSV и TXT.
Можно ли зачеркнуть текст в отчете на СКД без программирования?
Да, через условное оформление в настройках отчета: добавьте элемент оформления, выберите шрифт с зачеркиванием и задайте условие отбора. Это делается в пользовательском режиме на закладке настроек отчета без изменения конфигурации.
Есть ли горячая клавиша для зачеркивания, как в Word?
Нет, в 1С нет сочетания клавиш для зачеркивания. Оформление задается только через палитру свойств, диалог выбора шрифта, условное оформление или программный код.
Что важно запомнить
Зачеркивание в 1С — это свойство шрифта, доступное в табличных документах, макетах, надписях и форматированных строках, но не в обычных полях ввода. Для строк по условию используйте условное оформление, для печатных форм — настройку макета или программную установку шрифта, и дублируйте смысловое зачеркивание признаком в данных, если оно важно при выгрузке.