В процессе работы с программой 1С:Бухгалтерия государственного учреждения 2.0 пользователи часто сталкиваются с ситуацией, когда печатная форма документа (например, реестра или акта) ведет себя непредсказуемо. Основная проблема заключается в том, что при выводе на печать одна страница внезапно делится на две, а в месте разрыва автоматически дублируется шапка документа. При этом ручное удаление пунктирных линий через настройки таблицы помогает лишь на один раз. Давайте разберем природу этого явления и выясним, как решить проблему окончательно.
Прежде всего, важно понять, как 1С формирует табличный документ. Перед тем как вывести данные на экран или принтер, платформа выполняет математический расчет: она суммирует высоту всех строк, которые должны быть выведены, и сравнивает ее с доступной высотой области печати. Эта область определяется настройками принтера, установленного в Windows «по умолчанию», а также параметрами страницы (поля, масштаб, ориентация).
Если система видит, что следующая строка данных вместе с ее отступами не помещается на текущий лист хотя бы на один миллиметр, она автоматически выполняет следующие действия:
Рассмотрим подробнее, почему ручное удаление разрыва в сформированной форме не дает долгосрочного результата. Когда мы нажимаем «Удалить разрывы», мы правим уже готовый результат. Но как только мы закрываем форму и формируем ее заново, алгоритм 1С снова выполняет расчет по тем же старым параметрам и снова вставляет разрыв. Поэтому решение должно заключаться в изменении самих условий расчета.
Это самый эффективный метод, который помогает в 90% случаев. Проанализируем ситуацию: если разрыв появляется из-за нехватки места, нам нужно заставить систему «ужать» данные. Выполним следующие шаги:
Важный нюанс: После изменения настроек крайне важно закрыть форму предварительного просмотра и саму печатную форму, а затем сформировать ее заново. Только при повторном формировании система применит новые параметры масштабирования к алгоритму расчета строк и «поймет», что данные теперь помещаются на один лист, а значит, разрыв и вторая шапка больше не нужны.
В 1С:БГУ 2.0 настройки печатных форм для каждого пользователя сохраняются в информационной базе. Иногда там накапливаются некорректные параметры (например, от старого принтера), которые конфликтуют с текущим устройством печати. Выясним, как их сбросить:
Посмотрим на ситуацию со стороны операционной системы. 1С ориентируется на параметры принтера по умолчанию. Если у вас в Windows основным устройством выбран старый матричный принтер или сетевое устройство с нестандартными полями, 1С будет «думать», что область печати очень узкая.
Попробуйте временно назначить принтером по умолчанию Microsoft Print to PDF. Если после этого разрывы в 1С исчезли — значит, проблема в драйвере вашего физического принтера. В этом случае проверьте настройки формата бумаги в свойствах принтера (должен быть A4, а не Letter).
Если вы столкнулись с этой проблемой в самописной или модифицированной форме, причина может крыться в программном коде модуля менеджера (где может потребоваться постобработка печатных форм) или в свойствах самого макета. Рассмотрим основные моменты, которые нужно проверить в Конфигураторе.
В коде формирования табличного документа часто используется проверка на наличие места на странице. Выглядит это примерно так:
МассивВыводимыхОбластей = Новый Массив;
МассивВыводимыхОбластей.Добавить(ОбластьШапка);
МассивВыводимыхОбластей.Добавить(ОбластьСтрока);
Если Не ТабДок.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
Если логика метода ПроверитьВывод() настроена слишком жестко, система будет переносить строки даже при наличии свободного места. Попробуйте проанализировать, какие именно области передаются в массив для проверки.
Проанализируем свойства ячеек в макете. Если для первой строки данных установлено свойство Вместе с предыдущим (KeepWithPrevious), то 1С будет пытаться всегда печатать эту строку на том же листе, что и шапку. Если строка данных не влезает, она «утягивает» за собой и шапку на новую страницу, создавая огромную пустоту на первом листе. Убедитесь, что эта галочка снята для блоков данных.
Дублирование шапки часто вызвано тем, что в макете через меню «Таблица — Настройки печати — Повторять строки» задан диапазон. Если при этом программист в коде еще раз принудительно выводит область шапки при достижении конца страницы, вы получите две шапки подряд. Проверьте настройки макета в разделе Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм. Выберите нужный макет и нажмите «Использовать стандартный», чтобы исключить влияние пользовательских правок макета.
Вместо автоматического режима «По ширине страницы» иногда стабильнее работает установка фиксированного масштаба. Попробуйте установить значение 98% или 95%. Этого минимального уменьшения часто достаточно, чтобы расчет высоты строк перестал провоцировать разрыв, при этом визуально документ останется практически неизменным.
Таким образом, решение проблемы разрывов в 1С:БГУ 2.0 — это всегда комплекс мер: от настройки параметров страницы в предварительном просмотре до проверки системных драйверов и свойств макета. Помните, что ключевым действием является переформирование документа после любого изменения настроек.