При формировании стандартных и универсальных отчетов в конфигурациях на обычных формах (например, «Управление производственным предприятием» или «Бухгалтерия предприятия 2.0») пользователи могут неожиданно столкнуться с ситуацией, когда на каждом листе при выводе на печать начинают отображаться нежелательные колонтитулы — дата, время, номер страницы или имя пользователя. При этом у остальных сотрудников отчеты формируются в штатном виде. Разберем детально, почему так происходит и как программно и интерактивно отключить колонтитулы.
Проанализируем механизм сохранения настроек печатных форм в платформе 1С:Предприятие. Поведение табличного документа при выводе на печать определяется следующими факторами:
ИмяПараметровПечати или КлючПараметровПечати присваивается идентификатор (например, имя отчета). Если пользователь хотя бы один раз вручную скорректировал параметры листа (через системное меню) или применил индивидуальную настройку, платформа записывает эти параметры в системное хранилище с привязкой к конкретной учетной записи.Пользователи, что также переопределяет стандартное поведение печатных форм.Рассмотрим наиболее точный способ сброса параметров печати для пользователя, не требующий создания новой учетной записи (что привело бы к разрыву ссылок на ответственного в документах базы данных). Платформа предоставляет объект ХранилищеСистемныхНастроек, с помощью которого можно точечно удалить сохраненную конфигурацию печати.
Разберем пример кода внешней обработки для очистки сохраненных параметров:
// Указываем имя пользователя информационной базы и ключ параметров печати отчета
ИмяПользователяБД = "Иванов Иван Иванович";
ИмяНастройкиПечати = "УниверсальныйОтчет"; // Имя параметров печати конкретного отчета
// Формируем ключ объекта настроек печати табличного документа
КлючОбъекта = "Общее/НастройкиПечатиТабличногоДокумента/" + ИмяНастройкиПечати;
КлючНастроек = "";
// Удаляем индивидуальную настройку из системного хранилища
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, КлючНастроек, ИмяПользователяБД);
Сообщить("Настройки печати отчета успешно сброшены для пользователя: " + ИмяПользователяБД);
Если требуется принудительно задать параметры табличного документа программно, отключив колонтитулы до момента сохранения, обратим внимание на свойства колонтитулов объекта ТабличныйДокумент:
ТабДок = Новый ТабличныйДокумент;
ТабДок.ИмяПараметровПечати = "Моя_Настройка_Печати";
// Отключаем вывод колонтитулов на печать
ТабДок.ВерхнийКолонтитул.Выводить = Ложь;
ТабДок.НижнийКолонтитул.Выводить = Ложь;
// Очищаем шаблоны текста колонтитулов
ТабДок.ВерхнийКолонтитул.ТекстСлева = "";
ТабДок.ВерхнийКолонтитул.ТекстВЦентре = "";
ТабДок.ВерхнийКолонтитул.ТекстСправа = "";
ТабДок.НижнийКолонтитул.ТекстСлева = "";
ТабДок.НижнийКолонтитул.ТекстВЦентре = "";
ТабДок.НижнийКолонтитул.ТекстСправа = "";
Важный нюанс: если в отчете используется ПостроительОтчета, его метод Вывести() может переопределять свойства колонтитулов макетом по умолчанию. Поэтому отключение колонтитулов в коде необходимо выполнять строго после вывода данных либо настраивать колонтитулы непосредственно в макете построителя перед генерацией отчета.
Если у пользователя есть доступ к интерфейсу программы, разберем по шагам самый быстрый способ исправления без программирования:
[&Дата], [&Время], [&НомерСтраницы], [&Пользователь]).После нажатия кнопки ОК платформа перезапишет настройки в хранилище под текущим именем параметров печати для данного пользователя, и при следующих формированиях отчета колонтитулы выводиться не будут.
Проанализируем типовые возможности конфигураций УПП и Бухгалтерия предприятия. В них предусмотрены специализированные формы для управления оформлением отчетов:
Если централизованная настройка не действует на одного конкретного пользователя, открываем регистр сведений Настройки пользователей под правами администратора, находим записи с отбором по нужному сотруднику и очищаем сохраненные строки, отвечающие за параметры стандартных отчетов.
В ситуациях, когда отчет ведет себя нестабильно (настройки то пропадают, то появляются вновь, особенно при работе на терминальном сервере), вероятной причиной является сбой локального кэша сеанса. Проверим каталоги временных файлов:
%AppData%\1C\1Cv8
%LocalAppData%\1C\1Cv8
Такой комплексный подход позволяет гарантированно устранить вывод колонтитулов, сохранив ссылочную целостность базы данных и индивидуальные права пользователя.