Текст не влезает в ячейку отчёта 1С: что делать в Предприятии, Конфигураторе и коде

· 10 мин

Содержание

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

Способов несколько, и выбор зависит от задачи. Один раз поправить отчёт перед печатью — хватит мыши в режиме Предприятия. Нужно, чтобы печатная форма всегда выходила с широкой колонкой, — правят макет: в пользовательском режиме через «Макеты печатных форм» или в Конфигураторе. Колонки меняют ширину при каждом запуске обработки — задают размеры в коде.

ЗадачаГде правитьСохранится ли
Разово расширить колонку в готовом отчётеРежим Предприятия, мышьюНет, до следующего формирования
Текст обрезается, нужен переносСвойства ячейки, «Размещение текста»Нет, если правили результат отчёта
Печатная форма всегда узкаяМакет печатной формыДа
Колонки «пляшут» в своей обработкеКод модуляДа
Таблица не влезает на листПараметры страницыДа, для этого документа

Как устроен табличный документ в режиме Предприятия

Отчёты, печатные формы и выгрузки в 1С выводятся в табличный документ. Внешне он похож на лист Excel: колонки, строки, ячейки, объединения. Но у него свои правила.

Главное отличие: ширина задаётся колонке целиком, а высота — строке целиком. Расширить одну ячейку, не трогая соседние в той же колонке, нельзя. Если нужна широкая ячейка только в одной строке, её объединяют с соседними справа.

Что мешает просто взять и растянуть колонку:

  • 🔒 Режим «только просмотр». Разработчик мог запретить редактирование результата. Мышь не цепляет границу, ввод в ячейки не работает .
  • 👁 Скрыты заголовки и сетка. Без серой строки с буквами или номерами колонок тянуть не за что.
  • 🔄 Повторное формирование. Нажали «Сформировать» — отчёт перестроился с исходными размерами, ручные правки пропали.

Растягиваем колонку мышью

  1. Сформируйте отчёт или откройте печатную форму.
  2. Щёлкните в любую ячейку документа, чтобы он стал активным.
  3. Включите заголовки: Таблица → Вид → Заголовки в главном меню (кнопка с тремя полосками в левом верхнем углу окна). Там же включается Сетка.
  4. Наведите курсор на границу между заголовками колонок. Курсор сменится на двустороннюю стрелку.
  5. Зажмите левую кнопку и тяните вправо.

Высоту строки меняют так же, только тянут нижнюю границу номера строки в левом столбце заголовков.

💡 Выделите несколько колонок по заголовкам и растяните одну из них — ширина применится ко всем выделенным. Удобно, когда нужно выровнять десяток колонок с суммами.

Если документ защищён от изменений

Скопируйте содержимое в новый табличный документ:

  1. Выделите область отчёта или нажмите Ctrl+A.
  2. Скопируйте Ctrl+C.
  3. Создайте новый документ: Файл → Новый → Табличный документ в главном меню.
  4. Вставьте Ctrl+V.

Оформление, объединения и ширина колонок переносятся. В новом документе уже можно растягивать, печатать и сохранять в файл .mxl.

В печатных формах типовых конфигураций на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) редактирование обычно включается прямо в окне печати: в командной панели есть переключатель режима редактирования. После этого форму можно править перед печатью — менять ширину, текст, шрифт.

Ширина ячеек в макете через Конфигуратор

Ручная правка результата живёт до закрытия окна. Если счёт, акт или своя форма каждый раз печатается с обрезанным наименованием, исправлять нужно макет — шаблон, из которого собирается документ.

Без Конфигуратора: «Макеты печатных форм»

В конфигурациях на БСП макеты типовых печатных форм меняют в пользовательском режиме. В Бухгалтерии 3.0 путь такой: Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм.

  1. Найдите нужный макет в списке (есть поиск по названию).
  2. Откройте его на изменение.
  3. Растяните колонку или поменяйте шрифт так же, как в обычном табличном документе.
  4. Сохраните и закройте. В списке у макета появится отметка, что он изменён.

Изменённый макет переживает обновление конфигурации . Если после обновления фирма 1С поменяет форму, ваша версия останется прежней. Тогда макет сравнивают с новым типовым или возвращают к типовому командой в том же списке.

В Конфигураторе

  1. Откройте дерево конфигурации и найдите объект: документ, отчёт или обработку.
  2. Раскройте ветку «Макеты» и откройте нужный двойным щелчком.
  3. Растяните колонку за границу заголовка. Точное значение задаётся в палитре свойств колонки: выделите колонку по заголовку, контекстное меню → Свойства, поле «Ширина».
  4. Сохраните и обновите конфигурацию базы данных (F7).

Правка макета в типовой конфигурации на поддержке снимает объект с поддержки или требует включить возможность изменений. Это усложнит каждое следующее обновление. Для типовых баз правильнее расширение конфигурации: заимствуйте объект и замените макет там. Расширения доступны с платформы 8.3.6.

Именованные области и объединения

Макет делится на именованные области: «Заголовок», «Шапка», «Строка», «Подвал». Если колонка «Наименование» в табличной части слишком узкая, проверьте две вещи:

  • 📐 ширину колонки в макете (она общая для всех областей, выведенных друг под другом);
  • 🔗 объединения в шапке: часто «широкая» ячейка — это три объединённые колонки, а в строке табличной части та же позиция занимает одну.

Чтобы увеличить поле в строке, не ломая шапку, удобнее объединить ячейки в области «Строка», чем расширять колонку целиком. Объединение — Таблица → Объединить или кнопка на панели макета.

Параметры страницы и поля печати

Частая история: на экране всё помещается, а на бумаге правая колонка уезжает на второй лист. Тут дело не в ширине ячеек, а в настройках страницы.

Откройте Файл → Параметры страницы при активном табличном документе. Что там стоит смотреть:

НастройкаЧто даёт
Ориентация «Альбомная»Лист шире, влезает 12–15 колонок вместо 8–10
Масштаб «По ширине страницы»1С сама ужмёт документ, чтобы он встал по ширине
Масштаб в процентахРучная подгонка, например 85%
Поля слева и справаУменьшение с 10 до 5 мм добавляет около сантиметра полезной ширины
Размер бумагиA3 для больших оборотно-сальдовых ведомостей

Порядок действий:

  1. Нажмите «Предварительный просмотр» и посмотрите, где режется таблица.
  2. Поставьте альбомную ориентацию и масштаб по ширине страницы.
  3. Если шрифт стал мелким, верните книжную ориентацию и уменьшите только поля.

💡 Масштаб по ширине страницы не делает колонки шире — он ужимает весь документ. Если одна колонка выходит обрезанной, масштаб не поможет: её нужно расширить или включить перенос.

Параметры страницы хранятся в самом табличном документе. Для макета их задают в Конфигураторе, в свойствах макета, и тогда каждая распечатка выходит с нужной ориентацией.

Шрифт и перенос слов: как они влияют на размер ячейки

Иногда расширять колонку вообще не нужно. Длинное наименование номенклатуры прекрасно встаёт в узкую колонку в две-три строки — если включить перенос.

Откройте свойства ячейки или выделенной области (контекстное меню → Свойства) и найдите «Размещение текста». Вариантов четыре:

ЗначениеКак ведёт себя текст
АвтоЗаходит на соседние пустые ячейки справа, если они свободны
ОбрезатьРежется по границе ячейки
ЗабиватьНе выходит за границы ячейки, даже если справа пусто
ПереноситьПереносится по словам на новые строки внутри ячейки

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

Что ещё помогает без изменения ширины:

  • 🔤 Уменьшить кегль. С 10 до 8 пунктов в узкой колонке помещается примерно на четверть больше символов.
  • 🅰 Сменить гарнитуру. Arial уже, чем Times New Roman при том же размере.
  • ↩ Убрать отступ. У ячейки может стоять отступ слева, который съедает место.
  • 🔁 Повернуть заголовок. У длинных названий колонок в шапке выручает вертикальная ориентация текста — в свойствах ячейки есть поле ориентации в градусах.

Не ставьте «Авто» для колонок, где соседняя ячейка может быть пустой. Текст «перелезет» в неё на экране, а в выгрузке в Excel и на печати картинка окажется другой.

Отчёты на СКД

В отчётах на системе компоновки данных (большинство типовых отчётов) ширину задают через оформление. В настройках отчёта переключитесь на расширенный вид и откройте условное оформление. Добавьте элемент для нужного поля и задайте параметры «Минимальная ширина» и «Максимальная ширина». Там же включается размещение текста с переносом.

Разработчик то же самое делает в Конфигураторе, в настройках схемы компоновки, на закладке условного оформления. Настройка сохранится в варианте отчёта и будет применяться при каждом формировании.

Табличный документ при выгрузке в Excel

Сохранить отчёт в Excel можно через Файл → Сохранить как или кнопку сохранения в командной панели отчёта, выбрав тип файла «Лист Excel» с расширением .xlsx.

Ширина колонок переносится пропорционально, но не всегда удачно. Типичные проблемы и что делать:

  • 📏 Колонки узкие, вместо чисел решётки ####. Это Excel: число не влезает. Выделите лист и дважды щёлкните по границе любого заголовка колонки — Excel подгонит ширину.
  • 🧩 Объединённые ячейки мешают сортировке. Перед сохранением в 1С уберите лишние объединения или в Excel используйте «Выравнивание по центру выделения».
  • ✂ Текст обрезан. В 1С стояло «Авто», а соседняя ячейка в Excel не пустая — проверьте размещение текста в исходном документе.

💡 Если отчёт регулярно уходит в Excel для обработки, сформируйте его с минимальным оформлением: без группировок и шапок. В типовых отчётах это делается в настройках вывода: отключите вывод заголовка и отборов.

Обратное направление тоже работает: файл .xlsx открывается в 1С через Файл → Открыть и превращается в табличный документ. Ширина колонок при этом подхватывается из файла.

Размеры ячеек в коде обработки

Если вы пишете или дорабатываете отчёт, ширину и высоту надёжнее задавать программно. Тогда результат не зависит от того, как кто-то растянул макет.

Основные свойства области табличного документа:

  • ШиринаКолонки — ширина колонки в условных единицах табличного документа;
  • ВысотаСтроки — высота строки;
  • АвтоВысотаСтроки — подгонка высоты под содержимое;
  • РазмещениеТекста — значение из ТипРазмещенияТекстаТабличногоДокумента;
  • Шрифт — объект Шрифт.

Пример: после вывода всех областей задаём ширину колонкам, включаем перенос в колонке наименований и настраиваем печать.

// ТабДок — уже заполненный ТабличныйДокумент
ТабДок.Область("C1").ШиринаКолонки = 10;  // № п/п
ТабДок.Область("C2").ШиринаКолонки = 45;  // Наименование
ТабДок.Область("C3").ШиринаКолонки = 14;  // Сумма

ОбластьНаименований = ТабДок.Область(1, 2, ТабДок.ВысотаТаблицы, 2);
ОбластьНаименований.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;
ТабДок.Область(1, 1, ТабДок.ВысотаТаблицы, ТабДок.ШиринаТаблицы).АвтоВысотаСтроки = Истина;

ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.АвтоМасштаб = Истина;

Готового метода «подогнать ширину по содержимому», как двойной щелчок в Excel, у табличного документа нет. Простая подгонка по длине самого длинного текста в колонке:

Для НомерКолонки = 1 По ТабДок.ШиринаТаблицы Цикл
    МаксДлина = 0;
    Для НомерСтроки = 1 По ТабДок.ВысотаТаблицы Цикл
        Текст = ТабДок.Область(НомерСтроки, НомерКолонки, НомерСтроки, НомерКолонки).Текст;
        МаксДлина = Макс(МаксДлина, СтрДлина(Текст));
    КонецЦикла;
    // ограничиваем ширину, чтобы одна длинная строка не растянула колонку на весь лист
    ТабДок.Область("C" + Формат(НомерКолонки, "ЧГ=0")).ШиринаКолонки = Мин(Макс(МаксДлина + 2, 5), 60);
КонецЦикла;

Длина в символах и ширина в условных единицах соотносятся только примерно и зависят от шрифта. Коэффициент подберите на своём макете: для шрифта 10 пунктов обычно хватает длины плюс два символа запаса.

Обход каждой ячейки на большом отчёте — медленная операция. На документе в 20 000 строк лучше считать длины по исходным данным (результату запроса), а не по готовому табличному документу.

Если ширина колонок зависит от области, которая выводится первой, задавайте размеры после вывода всех областей, как в примере. Иначе следующая выведенная область может принести свои ширины из макета.

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

Почему после нажатия «Сформировать» колонки снова узкие?
Отчёт строится заново из макета или схемы компоновки, а ручные правки результата не сохраняются. Чтобы ширина держалась, задайте её в условном оформлении варианта отчёта или в макете.
Можно ли расширить одну ячейку, не трогая всю колонку?
Нет, ширина принадлежит колонке. Чтобы одна ячейка стала шире, объедините её с соседними ячейками справа.
Как сохранить отчёт с моими размерами колонок?
Сохраните результат в формате .mxl или .xlsx через Файл → Сохранить как. При открытии файла ширина колонок будет той, что вы выставили.
Почему текст в ячейке с переносом всё равно обрезан снизу?
У строки зафиксирована высота. Включите автовысоту строки в её свойствах или растяните строку вручную за нижнюю границу номера.
Изменённый макет печатной формы пропадёт после обновления?
Если правили через «Макеты печатных форм», нет: пользовательский макет хранится отдельно от конфигурации. Если меняли типовой макет в Конфигураторе, при обновлении потребуется сравнение и объединение.