Каталог решений - Добавление сведений об организации в колонтитулы всех типовых отчетов. Бухгалтерия 2

Добавление сведений об организации в колонтитулы всех типовых отчетов. Бухгалтерия 2

Добавление сведений об организации в колонтитулы всех типовых отчетов. Бухгалтерия 2

В наличии

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

Категория:

Описание

Суть доработок в том, что в типовые механизмы добавляем передачу ссылки на объект отчета. В нем как правило есть реквизит организация, вот из него и получим все что нам нужно при выводе колонтитулов.

Общий модуль УправлениеОтчетами правим функцию:

Функция ЗаполнитьТекстКолонтитула(Текст, НазваниеОтчета, Пользователь,ОтчетОбъект)

    Результат = Текст;
    Результат = СтрЗаменить(Результат, "[&НазваниеОтчета]", НазваниеОтчета);
    Результат = СтрЗаменить(Результат, "[&Пользователь]", Пользователь);
    //***доработка
    Попытка
        Результат = СтрЗаменить(Результат, "[&Организация]", ОтчетОбъект.Организация);
    Исключение
        Результат = СтрЗаменить(Результат, "[&Организация]", "");
    КонецПопытки;
    Попытка
        Результат = СтрЗаменить(Результат, "[&ИНН]", ОтчетОбъект.Организация.ИНН);
    Исключение
        Результат = СтрЗаменить(Результат, "[&ИНН]", "");
    КонецПопытки;
    Попытка
        Результат = СтрЗаменить(Результат, "[&КПП]", ОтчетОбъект.Организация.КПП);
    Исключение
        Результат = СтрЗаменить(Результат, "[&КПП]", "");        
    КонецПопытки;
    //доработка***
    Возврат Результат;

КонецФункции // ЗаполнитьТекстКолонтитула()

В этом же модуле правим процедуру, добавляя новый необязательный параметр ОтчетОбъект:

Процедура УстановитьКолонтитулыПоУмолчанию(ТабличныйДокумент, НазваниеОтчета, Пользователь, ОтчетОбъект = "") Экспорт

	Настройка = ПолучитьНастройкиКолонтитулов();
	
	ТабличныйДокумент.ВерхнийКолонтитул.Выводить          = Настройка.ВерхнийКолонтитул.Выводить;
	ТабличныйДокумент.ВерхнийКолонтитул.НачальнаяСтраница = Настройка.ВерхнийКолонтитул.НачальнаяСтраница;
	ТабличныйДокумент.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
	ТабличныйДокумент.ВерхнийКолонтитул.ТекстСлева   = ЗаполнитьТекстКолонтитула(Настройка.ВерхнийКолонтитул.ТекстСлева, НазваниеОтчета, Пользователь, ОтчетОбъект);
	ТабличныйДокумент.ВерхнийКолонтитул.ТекстВЦентре = ЗаполнитьТекстКолонтитула(Настройка.ВерхнийКолонтитул.ТекстВЦентре, НазваниеОтчета, Пользователь, ОтчетОбъект);
	ТабличныйДокумент.ВерхнийКолонтитул.ТекстСправа  = ЗаполнитьТекстКолонтитула(Настройка.ВерхнийКолонтитул.ТекстСправа, НазваниеОтчета, Пользователь, ОтчетОбъект);
	
	ТабличныйДокумент.НижнийКолонтитул.Выводить          = Настройка.НижнийКолонтитул.Выводить;
	ТабличныйДокумент.НижнийКолонтитул.НачальнаяСтраница = Настройка.НижнийКолонтитул.НачальнаяСтраница;
	ТабличныйДокумент.НижнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Верх;
	ТабличныйДокумент.НижнийКолонтитул.ТекстСлева   = ЗаполнитьТекстКолонтитула(Настройка.НижнийКолонтитул.ТекстСлева, НазваниеОтчета, Пользователь, ОтчетОбъект);
	ТабличныйДокумент.НижнийКолонтитул.ТекстВЦентре = ЗаполнитьТекстКолонтитула(Настройка.НижнийКолонтитул.ТекстВЦентре, НазваниеОтчета, Пользователь, ОтчетОбъект);
	ТабличныйДокумент.НижнийКолонтитул.ТекстСправа  = ЗаполнитьТекстКолонтитула(Настройка.НижнийКолонтитул.ТекстСправа, НазваниеОтчета, Пользователь, ОтчетОбъект);
	
КонецПроцедуры // УстановитьКолонтитулы

Далее все стандартные отчеты выводятся при помощи процедуры из общего модуля СтандартныеОтчеты и в нем процедура в которую так же добавляем передачу ссылки на объект отчета:

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

И наконец для удобства настройки колонтитулов типовыми средствами в общую форму "ФормаНастройкиКолонтитулов" в раздел основной программы вставляем строки

ШаблонТекста.Вставить("Организация",    "[&Организация]");
ШаблонТекста.Вставить("ИНН", 			"[&ИНН]");
ШаблонТекста.Вставить("КПП", 			"[&КПП]");

Это позволит выбирать в колонтитулах новые параметры, так как показано на картинках к статье.

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

has been added to your cart:
Оформление заказа