Разработка и Конфигурация · 10 мин
Как скрыть колонку в табличном документе 1С
Как скрыть колонку в табличном документе 1С: программные методы, свойство Видимость, работа с областями, типичные ошибки и проверка результата.
Скрытие колонки в табличном документе 1С — частая задача при формировании печатных форм и отчётов: часть данных нужна для расчётов или служебных целей, но показывать её пользователю не требуется. В отличие от обычных таблиц на форме, табличный документ не имеет встроенной команды «скрыть столбец» в один клик — видимостью колонок управляют программно через свойства областей.
Основной инструмент — свойство Видимость у области колонки табличного документа. Если установить его в Ложь, колонка перестанет отображаться на экране и не попадёт на печать, но данные в ячейках сохранятся и останутся доступными для обращения из кода. Это принципиально отличает скрытие от удаления области.
Ниже разобраны рабочие способы скрытия колонки: через область колонки, через ширину колонки, при выводе из макета, а также типичные ошибки, из-за которых колонка продолжает отображаться или «ломается» структура документа.
Как устроено управление видимостью колонок в табличном документе
Табличный документ в 1С состоит из областей — прямоугольных диапазонов ячеек. Область может охватывать одну ячейку, строку, колонку или произвольный прямоугольник. У каждой области есть набор свойств форматирования, среди которых — Видимость, ШиринаКолонки, ВысотаСтроки и другие.
Когда вы обращаетесь к области, которая полностью совпадает с колонкой (от первой до последней строки), изменение свойства Видимость применяется ко всей колонке целиком. Если же область захватывает только часть колонки, скроется только этот фрагмент, что часто становится источником путаницы.
Важно понимать: скрытие влияет только на отображение. Значения ячеек, формулы и параметры остаются в документе, их можно читать и изменять программно. Скрытая колонка также не выводится при печати и при сохранении документа в файл, например в Excel или PDF.
Как скрыть колонку через свойство Видимость
Стандартный способ — получить область колонки и отключить её видимость. Область задаётся адресом в формате «R1C1» или через именованную область макета.
ТабДок = Новый ТабличныйДокумент;
// ... вывод данных в табличный документ ...
// Скрыть третью колонку целиком
ОбластьКолонки = ТабДок.Область("C3");
ОбластьКолонки.Видимость = Ложь;
Адрес "C3" означает колонку с номером 3. Если нужно скрыть колонку только в определённом диапазоне строк, адрес указывают полностью, например "R2C3:R100C3" — тогда скроется фрагмент колонки со 2-й по 100-ю строку.
Чтобы вернуть колонку на экран, достаточно установить тому же свойству значение Истина. Это удобно для интерактивных сценариев, когда пользователь переключает режим просмотра отчёта.
- 1Сформируйте табличный документ или откройте нужную область
- 2Определите номер колонки, которую требуется скрыть
- 3Получите область: ТабДок.Область("C" + НомерКолонки)
- 4Установите ОбластьКолонки.Видимость = Ложь
- 5Выведите документ на форму или проверьте результат на печати
Как скрыть колонку через нулевую ширину
Альтернативный приём — установить колонке нулевую ширину через свойство ШиринаКолонки. Визуально результат похож: колонка исчезает с экрана.
ОбластьКолонки = ТабДок.Область("C3");
ОбластьКолонки.ШиринаКолонки = 0;
Разница между подходами есть. Свойство Видимость — штатный механизм скрытия: колонка корректно исключается из отображения и печати. Нулевая ширина — это, по сути, форматирование: в некоторых сценариях (например, при копировании диапазона или экспорте) колонка с нулевой шириной может вести себя иначе, чем скрытая. Кроме того, при нулевой ширине пользователь иногда может «раздвинуть» колонку мышью в интерактивном режиме.
Рекомендация проста: для скрытия используйте Видимость = Ложь, а нулевую ширину применяйте только если по какой-то причине свойство видимости в вашей ситуации недоступно или работает не так, как ожидается.
Сравнение вариантов
Штатный способ. Колонка исключается из отображения и печати, данные сохраняются. Подходит для большинства задач.
Визуально скрывает колонку, но это форматирование, а не скрытие. Может давать отличия при экспорте и интерактивной работе.
Самый чистый вариант, если данные вообще не нужны. Но требует изменения логики вывода и не подходит, если колонка нужна для расчётов.
Как скрыть колонку при выводе из макета
Если табличный документ формируется из макета, часто удобнее управлять видимостью на этапе вывода, а не после него. Типовой сценарий: в макете есть колонка со служебными данными (например, идентификатор строки), которая нужна коду, но не нужна пользователю.
В этом случае последовательность такая: вывести все нужные области макета в документ, затем по известному номеру колонки скрыть её. Номер колонки можно определить по макету — посчитав позицию в области-шаблоне или задав именованную область колонки прямо в макете.
Если колонка в макете оформлена как отдельная именованная область, можно получить её из макета, настроить свойства и уже потом вывести. Однако чаще поступают проще: выводят всё и скрывают колонку в итоговом документе.
Макет = ПолучитьМакет("МакетОтчета");
ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаДанных");
Для Каждого СтрокаДанных Из Данные Цикл
ОбластьСтрока.Параметры.Заполнить(СтрокаДанных);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
// Скрываем служебную колонку с идентификатором
ТабДок.Область("C1").Видимость = Ложь;
Как скрыть несколько колонок и как вернуть видимость
Для скрытия нескольких колонок подряд используйте область-диапазон: адрес вида "C2:C5" охватывает колонки со 2-й по 5-ю. Одно присвоение скроет их все.
// Скрыть колонки со 2-й по 5-ю
ТабДок.Область("C2:C5").Видимость = Ложь;
Если колонки идут не подряд, скрывайте каждую отдельно в цикле по списку номеров. Это нагляднее и проще сопровождать, чем сложные адреса областей.
Чтобы показать скрытую колонку снова, установите Видимость = Истина для той же области. Это работает и для диапазонов. Полезный приём — хранить список скрытых колонок в переменной, чтобы при переключении режима просмотра точно знать, что восстанавливать.
Проверка результата и типичные ошибки
После скрытия проверьте документ в трёх режимах: на экране, в предварительном просмотре печати и после сохранения в файл (если документ выгружается). Колонка должна отсутствовать во всех трёх случаях, а соседние колонки — отображаться без сдвигов и искажений.
Частая ошибка — скрытие не той области. Адрес "C3" означает третью колонку, а не колонку с «буквой C» в привычном понимании Excel: в синтаксисе 1С нумерация всегда идёт по номеру. Перепутав номер, вы скроете нужную пользователю колонку.
Вторая типичная проблема — попытка скрыть колонку до того, как документ сформирован, или скрытие области в макете в расчёте на то, что настройка перенесётся в результат. Свойства областей макета при выводе применяются к выводимым ячейкам, но поведение зависит от способа вывода, поэтому надёжнее скрывать колонку в итоговом документе после формирования.
Третья ошибка — использование скрытия там, где нужно удаление. Если данные в колонке конфиденциальны (персональные данные, цены поставщика), скрытия недостаточно: значения остаются в файле при сохранении табличного документа и могут быть извлечены. В таких случаях колонку нужно не выводить вовсе или удалять область методом УдалитьОбласть.
Как проверить результат
Колонка не видна, соседние колонки на месте
Колонка видна полностью или частично
Скрытой колонки нет на печатной форме
Колонка появляется при печати
Колонка отсутствует в файле
Колонка присутствует или данные доступны в файле
Значения ячеек скрытой колонки читаются из кода
Значения потеряны — значит, область была удалена, а не скрыта
Частые вопросы
Можно ли скрыть колонку в табличном документе без программирования, вручную?
В режиме просмотра табличного документа штатной команды «скрыть колонку», как в Excel, нет. Пользователь может уменьшить ширину колонки мышью, если документ открыт в интерактивном режиме, но полноценное скрытие выполняется программно через свойство Видимость области.
Пропадут ли данные из скрытой колонки?
Нет. Скрытие влияет только на отображение и печать. Значения, формулы и параметры ячеек сохраняются, их можно читать и изменять из кода. Если нужно именно убрать данные, используйте удаление области или не выводите колонку при формировании.
Как скрыть колонку только в части строк?
Укажите область с диапазоном строк, например ТабДок.Область("R2C3:R50C3"), и установите Видимость = Ложь. Скроется фрагмент третьей колонки со 2-й по 50-ю строку, остальные ячейки колонки останутся видимыми.
Почему колонка снова становится видимой после вывода новых областей?
При выводе областей из макета свойства итогового документа для новых ячеек могут определяться макетом, а не ранее сделанными настройками. Поэтому скрытие колонки выполняйте после того, как документ сформирован полностью.
Чем скрытие отличается от удаления колонки?
Скрытие (Видимость = Ложь) сохраняет данные и структуру документа — колонку можно вернуть. Удаление области сдвигает остальные колонки и уничтожает данные без возможности восстановления. Для конфиденциальных данных используйте удаление или отказ от вывода, для служебных — скрытие.
Будет ли скрытая колонка видна при сохранении табличного документа в Excel?
Скрытая через свойство Видимость колонка не выводится при сохранении в файл, однако сам факт и поведение экспорта зависят от формата и версии платформы. Если данные не должны попасть в файл ни в каком виде, надёжнее не выводить колонку в документ вообще.
Что важно запомнить
Колонку табличного документа 1С скрывают через область: ТабДок.Область("C" + Номер).Видимость = Ложь. Делайте это после полного формирования документа, проверяйте результат на экране, печати и в файле. Для конфиденциальных данных скрытия недостаточно — исключайте колонку из вывода.