При работе с макетами табличных документов (формат .mxl) в среде «1С:Предприятие» разработчики часто сталкиваются с неприятной ситуацией: после многочисленных правок, объединения ячеек и изменения их ширины, структура макета «плывет». Попытка добавить новую строку или изменить размер одной колонки приводит к непредсказуемым смещениям в других частях документа. В итоге при печати получается изображение, далекое от желаемого. Рассмотрим подробно, как вернуть макет к исходному упорядоченному состоянию и правильно управлять форматами строк.
Прежде чем приступать к исправлению, проанализируем ситуацию с технической точки зрения. В 1С структура колонок (их количество и ширина) жестко привязана к так называемым форматам строк. Если во всем макете колонки имеют одинаковую ширину, используется один формат. Как только вы изменяете ширину колонки в конкретной строке, система создает для этой строки (или группы строк) новый уникальный индекс формата.
Когда таких индексов становится слишком много, макет превращается в «лоскутное одеяло». Добавление новой строки в таком случае может наследовать формат предыдущей или создавать новый, что визуально проявляется как хаотичное смещение границ ячеек. Выясним, как это исправить.
Это самый быстрый способ вернуть выделенные строки к «стандартному» виду, который задан для всего документа. Проделаем следующие шаги:
После этого действия выделенные строки примут стандартную ширину колонок, установленную для макета по умолчанию. Это позволит заново объединить ячейки и настроить их так, как нужно, без оглядки на старые ошибки позиционирования.
Если мы работаем с типовой конфигурацией и правили макет, который входит в состав поставки, система хранит наши изменения отдельно. Если правки зашли в тупик, мы можем полностью откатиться к версии макета от разработчика. Рассмотрим путь в интерфейсе:
Перейдем в раздел Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм. Найдем в списке нужный макет (он будет отмечен особым значком как измененный) и нажмем кнопку «Удалить измененный макет». Система удалит вашу версию из базы данных, и при следующей печати будет использован оригинальный макет из конфигурации.
Проанализируем ситуацию, когда нам нужно быстро превратить весь макет в ровную «шахматку» с одинаковыми ячейками. Для этого воспользуемся палитрой свойств:
Ctrl + A.F4).10) и нажмем Enter.Важный нюанс: это действие принудительно установит одинаковую ширину для всех колонок во всех строках, сбрасывая индивидуальные форматы. Это отличная «стартовая площадка» для создания сложного макета с нуля.
Представим, что у нас есть одна «эталонная» строка с правильной сеткой колонок, и мы хотим применить её структуру к другим частям макета. Посмотрим на алгоритм действий:
Ctrl + C).Этот метод позволяет мгновенно выровнять сетку по образцу, не затрагивая при этом содержимое ячеек (текст и параметры).
Иногда визуальный редактор не позволяет вычистить «невидимые» ошибки форматирования. Вспомним, что файл .mxl по своей сути является XML-документом. Если сохранить макет на диск, его можно открыть текстовым редактором. Проанализируем структуру:
<columns>
<formatIndex>1</formatIndex>
<size>48</size>
</columns>
<rowsItem>
<index>5</index>
<row>
<formatIndex>12</formatIndex>
<c> ... </c>
</row>
</rowsItem>
В секции <columns> описаны наборы ширин, а в <rowsItem> строки ссылаются на эти наборы через formatIndex. Опытные разработчики могут вручную удалить лишние блоки <format>, чтобы принудительно вернуть макету чистоту, сохранив при этом программный код и параметры.
Чтобы в будущем макет не «разваливался», рекомендуем придерживаться следующих правил при разработке:
Таким образом, мы рассмотрели все основные инструменты для реанимации макета. Использование команды «Удалить формат строк» в сочетании с пониманием того, как 1С управляет индексами форматов, позволит вам быстро восстановить даже самый сложный документ и избежать «хаоса» при печати.