Суть доработок в том, что в типовые механизмы добавляем передачу ссылки на объект отчета. В нем как правило есть реквизит организация, вот из него и получим все что нам нужно при выводе колонтитулов.
Общий модуль УправлениеОтчетами правим функцию:
Функция ЗаполнитьТекстКолонтитула(Текст, НазваниеОтчета, Пользователь,ОтчетОбъект)
Результат = Текст;
Результат = СтрЗаменить(Результат, "[&НазваниеОтчета]", НазваниеОтчета);
Результат = СтрЗаменить(Результат, "[&Пользователь]", Пользователь);
//***доработка
Попытка
Результат = СтрЗаменить(Результат, "[&Организация]", ОтчетОбъект.Организация);
Исключение
Результат = СтрЗаменить(Результат, "[&Организация]", "");
КонецПопытки;
Попытка
Результат = СтрЗаменить(Результат, "[&ИНН]", ОтчетОбъект.Организация.ИНН);
Исключение
Результат = СтрЗаменить(Результат, "[&ИНН]", "");
КонецПопытки;
Попытка
Результат = СтрЗаменить(Результат, "[&КПП]", ОтчетОбъект.Организация.КПП);
Исключение
Результат = СтрЗаменить(Результат, "[&КПП]", "");
КонецПопытки;
//доработка***
Возврат Результат;
КонецФункции // ЗаполнитьТекстКолонтитула()
В этом же модуле правим процедуру, добавляя новый необязательный параметр ОтчетОбъект:
Процедура УстановитьКолонтитулыПоУмолчанию(ТабличныйДокумент, НазваниеОтчета, Пользователь, ОтчетОбъект = "") Экспорт
Настройка = ПолучитьНастройкиКолонтитулов();
ТабличныйДокумент.ВерхнийКолонтитул.Выводить = Настройка.ВерхнийКолонтитул.Выводить;
ТабличныйДокумент.ВерхнийКолонтитул.НачальнаяСтраница = Настройка.ВерхнийКолонтитул.НачальнаяСтраница;
ТабличныйДокумент.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
ТабличныйДокумент.ВерхнийКолонтитул.ТекстСлева = ЗаполнитьТекстКолонтитула(Настройка.ВерхнийКолонтитул.ТекстСлева, НазваниеОтчета, Пользователь, ОтчетОбъект);
ТабличныйДокумент.ВерхнийКолонтитул.ТекстВЦентре = ЗаполнитьТекстКолонтитула(Настройка.ВерхнийКолонтитул.ТекстВЦентре, НазваниеОтчета, Пользователь, ОтчетОбъект);
ТабличныйДокумент.ВерхнийКолонтитул.ТекстСправа = ЗаполнитьТекстКолонтитула(Настройка.ВерхнийКолонтитул.ТекстСправа, НазваниеОтчета, Пользователь, ОтчетОбъект);
ТабличныйДокумент.НижнийКолонтитул.Выводить = Настройка.НижнийКолонтитул.Выводить;
ТабличныйДокумент.НижнийКолонтитул.НачальнаяСтраница = Настройка.НижнийКолонтитул.НачальнаяСтраница;
ТабличныйДокумент.НижнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Верх;
ТабличныйДокумент.НижнийКолонтитул.ТекстСлева = ЗаполнитьТекстКолонтитула(Настройка.НижнийКолонтитул.ТекстСлева, НазваниеОтчета, Пользователь, ОтчетОбъект);
ТабличныйДокумент.НижнийКолонтитул.ТекстВЦентре = ЗаполнитьТекстКолонтитула(Настройка.НижнийКолонтитул.ТекстВЦентре, НазваниеОтчета, Пользователь, ОтчетОбъект);
ТабличныйДокумент.НижнийКолонтитул.ТекстСправа = ЗаполнитьТекстКолонтитула(Настройка.НижнийКолонтитул.ТекстСправа, НазваниеОтчета, Пользователь, ОтчетОбъект);
КонецПроцедуры // УстановитьКолонтитулы
Далее все стандартные отчеты выводятся при помощи процедуры из общего модуля СтандартныеОтчеты и в нем процедура в которую так же добавляем передачу ссылки на объект отчета:
Процедура ОбработкаРезультатаОтчета(ОтчетОбъект, Результат) Экспорт
// Выводим надписи вертикально, если количество точек диаграмм больше 9
Для Каждого Рисунок Из Результат.Рисунки Цикл
Попытка
Если ТипЗнч(Рисунок.Объект) = Тип("Диаграмма") Тогда
Рисунок.Объект.ОбластьПостроения.ВертикальныеМетки = (Рисунок.Объект.Точки.Количество() > 9);
Рисунок.Объект.ОбластьПостроения.ФорматШкалыЗначений = "ЧГ=3,0";
Рисунок.Объект.ОбластьЛегенды.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная, 1);
Рисунок.Объект.ПоложениеПодписейШкалыЗначенийИзмерительнойДиаграммы = ПоложениеПодписейШкалыЗначенийИзмерительнойДиаграммы.НаШкале;
Рисунок.Объект.ПодписиШкалыЗначенийИзмерительнойДиаграммыВдольШкалы = Истина;
Рисунок.Объект.ТолщинаШкалыИзмерительнойДиаграммы = 3;
Рисунок.Объект.ФорматЗначенийВПодписях = "ЧДЦ=2; ЧГ=3,0";
КонецЕсли;
Исключение
КонецПопытки;
КонецЦикла;
Результат.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_" + ОтчетОбъект.Метаданные().Имя;
//УправлениеОтчетами.УстановитьКолонтитулыПоУмолчанию(Результат, ОтчетОбъект.ПолучитьТекстЗаголовка(Ложь), Строка(глЗначениеПеременной("глТекущийПользователь")));
УправлениеОтчетами.УстановитьКолонтитулыПоУмолчанию(Результат, ОтчетОбъект.ПолучитьТекстЗаголовка(Ложь), Строка(глЗначениеПеременной("глТекущийПользователь")),ОтчетОбъект);
КонецПроцедуры
И наконец для удобства настройки колонтитулов типовыми средствами в общую форму "ФормаНастройкиКолонтитулов" в раздел основной программы вставляем строки
ШаблонТекста.Вставить("Организация", "[&Организация]");
ШаблонТекста.Вставить("ИНН", "[&ИНН]");
ШаблонТекста.Вставить("КПП", "[&КПП]");
Это позволит выбирать в колонтитулах новые параметры, так как показано на картинках к статье.
Для ленивых и тех, кто хочет поблагодарить за статью, весь код можно скачать в файле.