gifts2017

Универсальный механизм печати подписей согласующих лиц в отчетах конфигурации

Опубликовал Константин (briz) в раздел Программирование - Практика программирования

Данный алгоритм можно использовать в любой конфигурации.
Небольшие изменения конфигурации ЗУП с целью  создания инструмента, с помощью которого пользователь без труда сможет управлять отображением подписей согласующих лиц в печатных формах отчетов конфигурации. Плюсом предложенного алгоритма является то, что для реализации вышеописанного инструмента нет необходимости в изменении всего множества шаблонов отчетов конфигурации, для пользователя управление печатью подписей всех отчетов будет происходить из одной "точки входа" -  обработки. При этом, подписи можно добавлять, практически, в любое место отчета.

Для этого воспользуемся стандартным механизмом : "Настройка колонтитулов" (Сервис/Настройка колонтитулов). Придеться  добавить доп. функционал , не испортив старого.

 

Здесь мы добавили возможность выбора конкретного отчета , для которого будут применяться настройки, а так же дополниельные настрйки из созданного нами нового перечисления с макетом: "РазделыОтчётов"

 

Создадим и заполним новый регистр сведений для хранения имеющих право подписи: "ДопРазделыОтчётов"

 

Теперь нам осталось внести изменения только в процедуру "УстановитьКолонтитулыПоУмолчанию" общего модуля "УправлениеОтчетами".

В модули отчетов и в макеты никаких изменений вносить не требуется (для стандартного механизма печати колонтитулов вызов вышеуказанной процедуры уже во всех отчетах присутствует).

Организация берется из параметров текущего пользователя.

тзПечатьСтраниц в параметрах - это таблица для расширения данного алгоритма на печать подписей в документах, а так же, если потребуется, печать подписей на каждой странице  (в данный момент, печать подписей в документах не реализована).

 

 Код , примерно, такой:

// Установка колонтитулов для отчета
//
// Параметры
//  ТабличныйДокумент  – ТабличныйДокумент – Отчет, у которого необходимо установить колонтитулы
//  НазваниеОтчета     – Строка            – Название отчета для вывода в колонтитул
//  Пользователь       – Строка            – Имя пользователя для вывода в колонтитул
//
Процедура УстановитьКолонтитулыПоУмолчанию(ТабличныйДокумент, НазваниеОтчета, Пользователь, Дата = Неопределено,тзПечатьСтраниц=Неопределено) Экспорт
Перем
КолСтрокВсего,КолСтраниц;
 
КолСтрокВсего = 0;
 
КолСтраниц = 0;
 
Настройка = ПолучитьНастройкиКолонтитулов();
 Если НЕ
тзПечатьСтраниц = Неопределено Тогда
  Если
тзПечатьСтраниц.Количество() > 0 Тогда
  
тзПечатьСтраниц.Сортировать("Отчёт Возр,НомерСтраницы Возр");
  
СтруктураПоиска = Новый Структура("Отчёт", НазваниеОтчета);
  
МассивНайденныхСтрок = тзПечатьСтраниц.НайтиСтроки(СтруктураПоиска);
   Если
МассивНайденныхСтрок.Количество()> 0 Тогда
    
КолСтрокВсего = МассивНайденныхСтрок[МассивНайденныхСтрок.ВГраница()].ВсегоРазмер;
    
КолСтраниц МассивНайденныхСтрок[МассивНайденныхСтрок.ВГраница()].НомерСтраницы;
   КонецЕсли;
   Если
ТабличныйДокумент.ВысотаТаблицы <= КолСтрокВсего Тогда
    
//начали с начала
    
тзПечатьСтраниц.Очистить();
   КонецЕсли;
  КонецЕсли;
  Если
тзПечатьСтраниц.Количество() = 0 Тогда
     
НоваяСтрока  = тзПечатьСтраниц.Добавить();
   
НоваяСтрока.НомерСтраницы = 0;
   
НоваяСтрока.Отчёт = НазваниеОтчета;
   
НоваяСтрока.ВсегоРазмер = 0;
            
КолСтрокВсего = 0;
   
КолСтраниц = 0;
  КонецЕсли;
 
НоваяСтрока  = тзПечатьСтраниц.Добавить();
 
НоваяСтрока.НомерСтраницы = КолСтраниц+1;
 
НоваяСтрока.Отчёт = НазваниеОтчета;
 
НоваяСтрока.ВсегоРазмер = 0;
 КонецЕсли;
 
//ищим имя объекта по синониму
 
Синоним = СокрЛП(НазваниеОтчета);
 
Имя = "";
 
номСимв = Найти(Синоним,"[");
 Если
номСимв > 0 Тогда
  
Синоним = СокрЛП(Лев(Синоним,номСимв-1));
 КонецЕсли;
 Если НЕ
ПустаяСтрока(Синоним) Тогда
   Для Каждого
ДокументМет из Метаданные.Документы Цикл
    Если
СокрЛП(ДокументМет.Синоним) = Синоним Тогда
     
Имя = "Документ"+СокрЛП(ДокументМет.Имя);
      Прервать;
//->Для Каждого ДокументМет из Метаданные.Документы Цикл
   
КонецЕсли;
    Если
Найти(СокрЛП(ДокументМет.Синоним),Синоним) > 0 Тогда
     
Имя = "Документ"+СокрЛП(ДокументМет.Имя);
      Прервать;
//->Для Каждого ДокументМет из Метаданные.Документы Цикл
   
КонецЕсли;
   КонецЦикла;
   Если
ПустаяСтрока(Имя) Тогда
    Для Каждого
ОтчетМет из Метаданные.Отчеты Цикл
     Если
СокрЛП(ОтчетМет.Синоним) = Синоним Тогда
      
Имя = "Отчет"+СокрЛП(ОтчетМет.Имя);
       Прервать;
//Для Каждого ОтчетМет из Метаданные.Отчеты Цикл
    
КонецЕсли;
     Если
Найти(СокрЛП(ОтчетМет.Синоним),Синоним) > 0 Тогда
      
Имя = "Отчет"+СокрЛП(ОтчетМет.Имя);
       Прервать;
//Для Каждого ОтчетМет из Метаданные.Отчеты Цикл
    
КонецЕсли;
    КонецЦикла;
   КонецЕсли;
   Если НЕ
ПустаяСтрока(Имя) Тогда
    Если
Настройка.Свойство("ПодписиМакетов") Тогда
    
ПодписиМакетов = Настройка["ПодписиМакетов"];
     Если
ПодписиМакетов.Свойство(Имя) Тогда
      Если (
ПодписиМакетов[Имя].ВерхнийКолонтитул.Выводить) или (ПодписиМакетов[Имя].НижнийКолонтитул.Выводить) Тогда
        
Настройка = ПодписиМакетов[Имя];
      КонецЕсли;
     КонецЕсли;
    КонецЕсли;
   КонецЕсли;
  КонецЕсли;
 
ШиринаСимвола  = 1;
 
ШиринаДокумента = ТабличныйДокумент.ШиринаТаблицы;
 
ВысотаДокумента = ТабличныйДокумент.ВысотаТаблицы;

 
тзСрезПоследних = РегистрыСведений.ДопРазделыОтчётов.СрезПоследних(?((Дата = Неопределено) или (Дата = Дата(1, 1, 1)),РабочаяДата,Дата),);
 
Запрос = Новый Запрос;
 
Запрос.Текст = "ВЫБРАТЬ
                | НастройкиПользователей.Значение как Организация
                |ИЗ
                | РегистрСведений.НастройкиПользователей КАК НастройкиПользователей
                |  ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.НастройкиПользователей КАК НастройкиПользователей1
                |  ПО НастройкиПользователей.Настройка = НастройкиПользователей1.Ссылка
                |ГДЕ
                | НастройкиПользователей.Пользователь = &Пользователь
                | И НастройкиПользователей.Настройка = &Организация"
;

 
Запрос.УстановитьПараметр("Пользователь", ПараметрыСеанса.ТекущийПользователь);
 
Запрос.УстановитьПараметр("Организация",ПланыВидовХарактеристик.НастройкиПользователей.ОсновнаяОрганизация);
 
тзРезультат = Новый ТаблицаЗначений;
 
тзРезультат = Запрос.Выполнить().Выгрузить();
 
Организация = Справочники.Организации.ПустаяСсылка();
 Если
тзРезультат.Количество()>0 Тогда
  Если НЕ
тзРезультат[0]["Организация"] =  Неопределено  тогда
   Если НЕ
тзРезультат[0]["Организация"].Пустая()  тогда
    
Организация = тзРезультат[0]["Организация"].Ссылка;
   КонецЕсли;
  КонецЕсли;
 КонецЕсли;

 
//***МЕТКА1
 
ОтступСлева    = 0;
 
ОтступСправа   = 0;
 
ОтступСверху   = 0;
 
ВысотаПодписи   = 0;
 
ВысотаПодписиВсего = 0;
 
ВысотаПодписиТек  = 0;
 
ШиринаПодписиВсего  = 40;

 
//вверх - лево
 
ПерваяОрганизация = Справочники.Организации.ПустаяСсылка();
 Если
Настройка.ВерхнийКолонтитул.Свойство("ТекстСлева") //Если Настройка.ВерхнийКолонтитул.Свойство("ТекстСлева") Тогда
 
Для Сч = 0 По Перечисления.РазделыОтчётов.Количество()-1 //Для Сч = 0 По Перечисления.РазделыОтчётов.Количество()-1 Цикл
  
ВыбЭлемент = Перечисления.РазделыОтчётов.Получить(Сч).Метаданные().ЗначенияПеречисления[Сч].Имя;
   Если (
Найти(Настройка.ВерхнийКолонтитул.ТекстСлева,"[&"+СокрЛП(ВыбЭлемент)+"]")>0) и (Настройка.ВерхнийКолонтитул.Выводить) Тогда
   
Синоним    = Перечисления.РазделыОтчётов.Получить(Сч).Метаданные().ЗначенияПеречисления[Сч].Синоним;
   
Отбор = Новый Структура;
   
Отбор.Вставить("РазделОтчёта",Перечисления.РазделыОтчётов.Получить(Сч));
    Если НЕ
Организация.Пустая() Тогда
    
Отбор.Вставить("Организация",Организация);
    КонецЕсли;
   
МассивСтрок  = тзСрезПоследних.НайтиСтроки(Отбор);
   
ОтступСверху  = КолСтрокВсего;
   
ПерваяОрганизация = Справочники.Организации.ПустаяСсылка();
   
ИтоговыйДокумент   = Новый ТекстовыйДокумент;
   
ИтоговыйДокумент.Очистить();
   
Макет       = Перечисления.РазделыОтчётов.ПолучитьМакет("МакетТекст");
   
обМакет         = Макет.ПолучитьОбласть("Заголовок");
   
обМакет.Параметры.Заголовок = СокрЛП(Синоним);
   
ИтоговыйДокумент.Вывести(обМакет);
   
обМакет         = Макет.ПолучитьОбласть("Раздел");
   
ОтступСлева      = 0;
   
//ОтступСправа     = Макс(ШиринаДокумента - РазмерОбласти,0);
   
ОтступСправа     = Макс(ШиринаДокумента - 1,0);
   
//вывожу элементы
   
Для Каждого  строкаТЗ ИЗ МассивСтрок Цикл
     Если
ПерваяОрганизация.Пустая() Тогда
      
ПерваяОрганизация = строкаТЗ.Организация;
     КонецЕсли;
     Если
ПерваяОрганизация <> строкаТЗ.Организация Тогда
       Продолжить;
     КонецЕсли;
    
ФИО = "";
     Если НЕ
строкаТЗ.ФизЛицо.Пустая() Тогда
      
ФИО = СокрЛП(строкаТЗ.ФизЛицо.Наименование);
     КонецЕсли;
    
Инициалы ="";
    
МассивФИО = ОбщегоНазначения.ПолучитьМассивФИО(ФИО);
     Если (НЕ
ПустаяСтрока(МассивФИО[1])) И (НЕ ПустаяСтрока(МассивФИО[2])) Тогда
      
Инициалы =" "+Лев(МассивФИО[1],1) + "." + Лев(МассивФИО[2],1)+".";
     КонецЕсли;
    
ФИО        = СокрЛП(МассивФИО[0] + Инициалы);
    
обМакет.Параметры.Должность  = СокрЛП(строкаТЗ.Должность);
    
обМакет.Параметры.ФИО    = ФИО;
    
ИтоговыйДокумент.Вывести(обМакет);
    КонецЦикла;
   
обТД         = ТабличныйДокумент.Область(ОтступСверху+1,1,ОтступСверху+2,ШиринаДокумента);
   
ТабДок     = Новый ТабличныйДокумент;
   
обТДИсточник  = ТабДок.Область(ОтступСверху+1,1,ОтступСверху+2,ШиринаДокумента);
   
ТабличныйДокумент.ВставитьОбласть(обТДИсточник,обТД,ТипСмещенияТабличногоДокумента.ПоВертикали,Ложь);
   
обТД         = ТабличныйДокумент.Область(ОтступСверху+1,1,ОтступСверху+1,1);
   
обТД.Текст    = ИтоговыйДокумент.ПолучитьТекст();
   
обТД.Шрифт    = Новый Шрифт(обТДИсточник.Шрифт,"Courier",8,Ложь,Ложь,Ложь,Ложь);
   
обТД.ВертикальноеПоложение  = ВертикальноеПоложение.Верх;
   
обТД1         = ТабличныйДокумент.Область(,,,);
   
обТД1.ВысотаСтроки  = 0;
   
Настройка.ВерхнийКолонтитул.ТекстСлева = СтрЗаменить(Настройка.ВерхнийКолонтитул.ТекстСлева,"[&"+СокрЛП(ВыбЭлемент)+"]","");
   
ВысотаПодписиВсего  = ВысотаПодписиВсего + 1;
   КонецЕсли;
  КонецЦикла;
//Для Сч = 0 По Перечисления.РазделыОтчётов.Количество()-1 Цикл
 
КонецЕсли;//Если Настройка.ВерхнийКолонтитул.Свойство("ТекстСлева") Тогда
//***МЕТКА2
//вверх - центр
 
ВысотаПодписи = ?(ВысотаПодписиВсего>0,2*ВысотаПодписиВсего-2,0);
 Если
Настройка.ВерхнийКолонтитул.Свойство("ТекстВЦентре") Тогда
  Для
Сч = 0 По Перечисления.РазделыОтчётов.Количество()-1 Цикл
  
ВыбЭлемент = Перечисления.РазделыОтчётов.Получить(Сч).Метаданные().ЗначенияПеречисления[Сч].Имя;
   Если (
Найти(Настройка.ВерхнийКолонтитул.ТекстВЦентре,"[&"+СокрЛП(ВыбЭлемент)+"]")>0) и (Настройка.ВерхнийКолонтитул.Выводить) Тогда
   
Синоним     = Перечисления.РазделыОтчётов.Получить(Сч).Метаданные().ЗначенияПеречисления[Сч].Синоним;
   
Отбор   = Новый Структура;
   
Отбор.Вставить("РазделОтчёта",Перечисления.РазделыОтчётов.Получить(Сч));
    Если НЕ
Организация.Пустая() Тогда
    
Отбор.Вставить("Организация",Организация);
    КонецЕсли;
   
МассивСтрок = тзСрезПоследних.НайтиСтроки(Отбор);
   
ОтступСверху = КолСтрокВсего;
   
ОтступСлева  = 0;
   
ОтступСправа = 0;
   
//найдем ширину документа в средних символах:
   
ШиринаДокументаВСимволах = 0;
    Для
СчЯчейка = 1 По ШиринаДокумента Цикл
    
обТД        = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху+1,СчЯчейка,ВысотаПодписи + ОтступСверху+1,СчЯчейка);
    
ШиринаДокументаВСимволах= ШиринаДокументаВСимволах + окр(обТД.ШиринаКолонки,0,1);
    КонецЦикла;
   
ЛеваяГраница = 1;
   
ПраваяГраница = ШиринаДокумента;
   
ШагВперёд = Истина;
   
ТекШирина = ШиринаДокументаВСимволах;
    Пока (
ПраваяГраница > ЛеваяГраница) и (ТекШирина > ШиринаПодписиВсего*ШиринаСимвола) Цикл
    
//слева шагаем
    
Если ШагВперёд Тогда
     
обШаг    = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху + 1,ЛеваяГраница,ВысотаПодписи + ОтступСверху+1,ЛеваяГраница);
     
ШагШирина   = окр(обШаг.ШиринаКолонки,0,1);
     
ЛеваяГраница  = ЛеваяГраница+1;
     
ТекШирина  = ТекШирина - ШагШирина;
     КонецЕсли;
    
//справа шагаем
    
Если НЕ ШагВперёд Тогда
     
обШаг    = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху + 1,ПраваяГраница,ВысотаПодписи + ОтступСверху+1,ПраваяГраница);
     
ШагШирина   = окр(обШаг.ШиринаКолонки,0,1);
     
ПраваяГраница  = ПраваяГраница - 1;
     
ТекШирина  = ТекШирина - ШагШирина;
     КонецЕсли;
    
ШагВперёд = НЕ ШагВперёд;
    КонецЦикла;
   
ОтступСлева    = ЛеваяГраница - 1;
   
ОтступСправа   = ШиринаДокумента - ПраваяГраница;
   
ПерваяОрганизация  = Справочники.Организации.ПустаяСсылка();
   
ИтоговыйДокумент   = Новый ТекстовыйДокумент;
   
ИтоговыйДокумент.Очистить();
   
Макет       = Перечисления.РазделыОтчётов.ПолучитьМакет("МакетТекст");
   
обМакет         = Макет.ПолучитьОбласть("Заголовок");
   
обМакет.Параметры.Заголовок = СокрЛП(Синоним);
   
ИтоговыйДокумент.Вывести(обМакет);
   
обМакет         = Макет.ПолучитьОбласть("Раздел");
    Для Каждого 
строкаТЗ ИЗ МассивСтрок Цикл
     Если
ПерваяОрганизация.Пустая() Тогда
      
ПерваяОрганизация = строкаТЗ.Организация;
     КонецЕсли;
     Если
ПерваяОрганизация <> строкаТЗ.Организация Тогда
      Продолжить;
     КонецЕсли;
    
ФИО = "";
     Если НЕ
строкаТЗ.ФизЛицо.Пустая() Тогда
      
ФИО = СокрЛП(строкаТЗ.ФизЛицо.Наименование);
     КонецЕсли;
    
Инициалы ="";
    
МассивФИО = ОбщегоНазначения.ПолучитьМассивФИО(ФИО);
     Если (НЕ
ПустаяСтрока(МассивФИО[1])) И (НЕ ПустаяСтрока(МассивФИО[2])) Тогда
      
Инициалы =" "+Лев(МассивФИО[1],1) + "." + Лев(МассивФИО[2],1)+".";
     КонецЕсли;
    
ФИО        = СокрЛП(МассивФИО[0] + Инициалы);
    
обМакет.Параметры.Должность  = СокрЛП(строкаТЗ.Должность);
    
обМакет.Параметры.ФИО    = ФИО;
    
ИтоговыйДокумент.Вывести(обМакет);
    КонецЦикла;
   
ТабДок     = Новый ТабличныйДокумент;
    Если (
ВысотаПодписиТек  < ВысотаПодписиВсего) и (ВысотаПодписиВсего <> 0) Тогда
    
обТД         = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху + 1,ОтступСлева + 1,ВысотаПодписи + ОтступСверху + 2,ШиринаДокумента);
                   
обТДИсточник  = ТабДок.Область(ОтступСверху+1,ОтступСлева + 1,ОтступСверху+2,ШиринаДокумента);
    
ТабличныйДокумент.ВставитьОбласть(обТДИсточник,обТД,ТипСмещенияТабличногоДокумента.БезСмещения,Ложь);
    Иначе
    
обТД         = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху + 1,1,ВысотаПодписи + ОтступСверху + 2,ШиринаДокумента);
                   
обТДИсточник  = ТабДок.Область(ОтступСверху+1,1,ОтступСверху+2,ШиринаДокумента);
    
ТабличныйДокумент.ВставитьОбласть(обТДИсточник,обТД,ТипСмещенияТабличногоДокумента.ПоВертикали,Ложь);
    КонецЕсли;
   
обТД         = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху+1,ОтступСлева + 1,ВысотаПодписи + ОтступСверху+1,ОтступСлева + 1);
   
обТД.Текст    = ИтоговыйДокумент.ПолучитьТекст();
   
обТД.Шрифт    = Новый Шрифт(обТДИсточник.Шрифт,"Courier",8,Ложь,Ложь,Ложь,Ложь);
   
обТД.ВертикальноеПоложение  = ВертикальноеПоложение.Верх;
   
обТД1         = ТабличныйДокумент.Область(,,,);
   
обТД1.ВысотаСтроки  = 0;
   
Настройка.ВерхнийКолонтитул.ТекстВЦентре = СтрЗаменить(Настройка.ВерхнийКолонтитул.ТекстСлева,"[&"+СокрЛП(ВыбЭлемент)+"]","");
   
ВысотаПодписиТек   = ВысотаПодписиТек  1;
    Если
ВысотаПодписиТек >= ВысотаПодписиВсего Тогда
    
ВысотаПодписи = 0;
    Иначе
    
ВысотаПодписи = 2*(ВысотаПодписиВсего-ВысотаПодписиТек)-2;
    КонецЕсли;
   КонецЕсли;
  КонецЦикла;
 КонецЕсли;
   
ВысотаПодписиВсего  = Макс(ВысотаПодписиТек,ВысотаПодписиВсего);
 
ВысотаПодписиТек  = 0;
 
ВысотаПодписи = ?(ВысотаПодписиВсего>0,2*ВысотаПодписиВсего-2,0);
//***МЕТКА3
//вверх - право
 
Если Настройка.ВерхнийКолонтитул.Свойство("ТекстСправа") Тогда
  Для
Сч = 0 По Перечисления.РазделыОтчётов.Количество()-1 Цикл
  
ВыбЭлемент = Перечисления.РазделыОтчётов.Получить(Сч).Метаданные().ЗначенияПеречисления[Сч].Имя;
   Если (
Найти(Настройка.ВерхнийКолонтитул.ТекстСправа,"[&"+СокрЛП(ВыбЭлемент)+"]")>0) и (Настройка.ВерхнийКолонтитул.Выводить)  Тогда
   
Синоним     = Перечисления.РазделыОтчётов.Получить(Сч).Метаданные().ЗначенияПеречисления[Сч].Синоним;
   
Отбор   = Новый Структура;
   
Отбор.Вставить("РазделОтчёта",Перечисления.РазделыОтчётов.Получить(Сч));
    Если НЕ
Организация.Пустая() Тогда
    
Отбор.Вставить("Организация",Организация);
    КонецЕсли;
   
МассивСтрок = тзСрезПоследних.НайтиСтроки(Отбор);
   
ОтступСлева = 0;
   
ОтступСправа = 0;
   
ОтступСверху = КолСтрокВсего;
   
ШиринаВсего = 0;
   
НомЯчейки = ШиринаДокумента + 1;
    Для
СчЯчейки  = - ШиринаДокумента По -1 Цикл
    
НомЯчейки  = - СчЯчейки;
    
обПодпись  = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху+1,НомЯчейки,ВысотаПодписи + ОтступСверху+1,НомЯчейки);
    
ШиринаВсего = ШиринаВсего+окр(обПодпись.ШиринаКолонки,0,1);
     Если
ШиринаВсего >= ШиринаПодписиВсего*ШиринаСимвола  Тогда
       Прервать;
     КонецЕсли;
    КонецЦикла;
   
ПерваяОрганизация = Справочники.Организации.ПустаяСсылка();
   
ОтступСлева = НомЯчейки  - 1;
   
ИтоговыйДокумент   = Новый ТекстовыйДокумент;
   
ИтоговыйДокумент.Очистить();
   
Макет       = Перечисления.РазделыОтчётов.ПолучитьМакет("МакетТекст");
   
обМакет         = Макет.ПолучитьОбласть("Заголовок");
   
обМакет.Параметры.Заголовок = СокрЛП(Синоним);
   
ИтоговыйДокумент.Вывести(обМакет);
   
обМакет         = Макет.ПолучитьОбласть("Раздел");
    Для Каждого 
строкаТЗ ИЗ МассивСтрок Цикл
     Если
ПерваяОрганизация.Пустая() Тогда
      
ПерваяОрганизация = строкаТЗ.Организация;
     КонецЕсли;
     Если
ПерваяОрганизация <> строкаТЗ.Организация Тогда
      Продолжить;
     КонецЕсли;
    
ФИО = "";
     Если НЕ
строкаТЗ.ФизЛицо.Пустая() Тогда
      
ФИО = СокрЛП(строкаТЗ.ФизЛицо.Наименование);
     КонецЕсли;
    
Инициалы ="";
    
МассивФИО = ОбщегоНазначения.ПолучитьМассивФИО(ФИО);
     Если (НЕ
ПустаяСтрока(МассивФИО[1])) И (НЕ ПустаяСтрока(МассивФИО[2])) Тогда
      
Инициалы =" "+Лев(МассивФИО[1],1) + "." + Лев(МассивФИО[2],1)+".";
     КонецЕсли;
    
ФИО        = СокрЛП(МассивФИО[0] + Инициалы);
    
обМакет.Параметры.Должность  = СокрЛП(строкаТЗ.Должность);
    
обМакет.Параметры.ФИО    = ФИО;
    
ИтоговыйДокумент.Вывести(обМакет);
    КонецЦикла;
   
ТабДок      = Новый ТабличныйДокумент;
    Если (
ВысотаПодписиТек  < ВысотаПодписиВсего) и (ВысотаПодписиВсего <> 0) Тогда
    
обТД         = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху + 1,ОтступСлева + 1,ВысотаПодписи + ОтступСверху + 2,ШиринаДокумента);
    
обТДИсточник  = ТабДок.Область(ОтступСверху+1,ОтступСлева + 1,ОтступСверху+2,ШиринаДокумента);
    
ТабличныйДокумент.ВставитьОбласть(обТДИсточник,обТД,ТипСмещенияТабличногоДокумента.БезСмещения,Ложь);
    Иначе
    
обТД         = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху + 1,1,ВысотаПодписи + ОтступСверху + 2,ШиринаДокумента);
    
обТДИсточник  = ТабДок.Область(ОтступСверху+1,1,ОтступСверху+2,ШиринаДокумента);
    
ТабличныйДокумент.ВставитьОбласть(обТДИсточник,обТД,ТипСмещенияТабличногоДокумента.ПоВертикали,Ложь);
    КонецЕсли;
   
обТД         = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху+1,ОтступСлева + 1,ВысотаПодписи + ОтступСверху+1,ОтступСлева + 1);
   
обТД.Текст    = ИтоговыйДокумент.ПолучитьТекст();
   
обТД.Шрифт    = Новый Шрифт(обТДИсточник.Шрифт,"Courier",8,Ложь,Ложь,Ложь,Ложь);
   
обТД.ВертикальноеПоложение  = ВертикальноеПоложение.Верх;
   
обТД1         = ТабличныйДокумент.Область(,,,);
   
обТД1.ВысотаСтроки  = 0;
   
ВысотаПодписиТек   = ВысотаПодписиТек  1;
    Если
ВысотаПодписиТек >= ВысотаПодписиВсего Тогда
    
ВысотаПодписи = 0;
    Иначе
    
ВысотаПодписи = 2*(ВысотаПодписиВсего-ВысотаПодписиТек)-2;
    КонецЕсли;
   
Настройка.ВерхнийКолонтитул.ТекстСправа = СтрЗаменить(Настройка.ВерхнийКолонтитул.ТекстСправа,"[&"+СокрЛП(ВыбЭлемент)+"]","");
   КонецЕсли;
  КонецЦикла;
 КонецЕсли;
 
ВысотаПодписиВсего  = 0;
 
ВысотаПодписиТек  = 0;
 
ВысотаПодписи   = 0;
 
ВысотаДокумента  = ТабличныйДокумент.ВысотаТаблицы;
//МЕТКА4
//низ-лево
 
Если Настройка.НижнийКолонтитул.Свойство("ТекстСлева") Тогда
  Для
Сч = 0 По Перечисления.РазделыОтчётов.Количество()-1 Цикл
  
ВыбЭлемент = Перечисления.РазделыОтчётов.Получить(Сч).Метаданные().ЗначенияПеречисления[Сч].Имя;
   Если (
Найти(Настройка.НижнийКолонтитул.ТекстСлева,"[&"+СокрЛП(ВыбЭлемент)+"]")>0) и (Настройка.НижнийКолонтитул.Выводить) Тогда
   
ОтступСлева  = 0;
   
ОтступСправа = Макс(ШиринаДокумента - 1,0);
   
ОтступСверху = ТабличныйДокумент.ВысотаТаблицы;
   
Синоним    = Перечисления.РазделыОтчётов.Получить(Сч).Метаданные().ЗначенияПеречисления[Сч].Синоним;
   
Отбор = Новый Структура;
   
Отбор.Вставить("РазделОтчёта",Перечисления.РазделыОтчётов.Получить(Сч));
    Если НЕ
Организация.Пустая() Тогда
    
Отбор.Вставить("Организация",Организация);
    КонецЕсли;
   
МассивСтрок  = тзСрезПоследних.НайтиСтроки(Отбор);
   
ПерваяОрганизация = Справочники.Организации.ПустаяСсылка();
   
ИтоговыйДокумент   = Новый ТекстовыйДокумент;
   
ИтоговыйДокумент.Очистить();
   
Макет       = Перечисления.РазделыОтчётов.ПолучитьМакет("МакетТекст");
   
обМакет         = Макет.ПолучитьОбласть("Заголовок");
   
обМакет.Параметры.Заголовок = СокрЛП(Синоним);
   
ИтоговыйДокумент.Вывести(обМакет);
   
обМакет         = Макет.ПолучитьОбласть("Раздел");
   
Настройка.НижнийКолонтитул.ТекстСлева = СтрЗаменить(Настройка.НижнийКолонтитул.ТекстСлева,"[&"+СокрЛП(ВыбЭлемент)+"]","");
    Для Каждого 
строкаТЗ ИЗ МассивСтрок Цикл
     Если
ПерваяОрганизация.Пустая() Тогда
      
ПерваяОрганизация = строкаТЗ.Организация;
     КонецЕсли;
     Если
ПерваяОрганизация <> строкаТЗ.Организация Тогда
      Продолжить;
     КонецЕсли;
    
ФИО = "";
     Если НЕ
строкаТЗ.ФизЛицо.Пустая() Тогда
      
ФИО = СокрЛП(строкаТЗ.ФизЛицо.Наименование);
     КонецЕсли;
    
Инициалы ="";
    
МассивФИО = ОбщегоНазначения.ПолучитьМассивФИО(ФИО);
     Если (НЕ
ПустаяСтрока(МассивФИО[1])) И (НЕ ПустаяСтрока(МассивФИО[2])) Тогда
      
Инициалы =" "+Лев(МассивФИО[1],1) + "." + Лев(МассивФИО[2],1)+".";
     КонецЕсли;
    
ФИО        = СокрЛП(МассивФИО[0] + Инициалы);
    
обМакет.Параметры.Должность  = СокрЛП(строкаТЗ.Должность);
    
обМакет.Параметры.ФИО    = ФИО;
    
ИтоговыйДокумент.Вывести(обМакет);
    КонецЦикла;
   
обТД         = ТабличныйДокумент.Область(ОтступСверху+1,1,ОтступСверху+2,ШиринаДокумента);
   
ТабДок     = Новый ТабличныйДокумент;
   
обТДИсточник  = ТабДок.Область(ОтступСверху+1,1,ОтступСверху+2,ШиринаДокумента);
   
ТабличныйДокумент.ВставитьОбласть(обТДИсточник,обТД,ТипСмещенияТабличногоДокумента.ПоВертикали,Ложь);
   
обТД         = ТабличныйДокумент.Область(ОтступСверху+2,1,ОтступСверху+2,1);
   
обТД.Текст    = ИтоговыйДокумент.ПолучитьТекст();
   
обТД.Шрифт    = Новый Шрифт(обТДИсточник.Шрифт,"Courier",8,Ложь,Ложь,Ложь,Ложь);
   
обТД.ВертикальноеПоложение  = ВертикальноеПоложение.Верх;
   
обТД1         = ТабличныйДокумент.Область(,,,);
   
обТД1.ВысотаСтроки  = 0;
   
ВысотаПодписиВсего  = ВысотаПодписиВсего + 1;
   КонецЕсли;
  КонецЦикла;
 КонецЕсли;
//МЕТКА5
//низ - центр
 
ВысотаПодписиВсего  = Макс(ВысотаПодписиТек,ВысотаПодписиВсего);
 
ВысотаПодписиТек  = 0;
 
ВысотаПодписи = 0;
 Если
Настройка.НижнийКолонтитул.Свойство("ТекстВЦентре") Тогда
  Для
Сч = 0 По Перечисления.РазделыОтчётов.Количество()-1 Цикл
  
ВыбЭлемент = Перечисления.РазделыОтчётов.Получить(Сч).Метаданные().ЗначенияПеречисления[Сч].Имя;
   Если (
Найти(Настройка.НижнийКолонтитул.ТекстВЦентре,"[&"+СокрЛП(ВыбЭлемент)+"]")>0) и (Настройка.НижнийКолонтитул.Выводить) Тогда
   
ОтступСлева  = 0;
   
ОтступСправа = 0;
   
ОтступСверху = ВысотаДокумента;
   
Синоним      = Перечисления.РазделыОтчётов.Получить(Сч).Метаданные().ЗначенияПеречисления[Сч].Синоним;
   
Отбор    = Новый Структура;
   
Отбор.Вставить("РазделОтчёта",Перечисления.РазделыОтчётов.Получить(Сч));
    Если НЕ
Организация.Пустая() Тогда
    
Отбор.Вставить("Организация",Организация);
    КонецЕсли;
   
МассивСтрок = тзСрезПоследних.НайтиСтроки(Отбор);
   
ШиринаДокументаВСимволах = 0;
    Для
СчЯчейка = 1 По ШиринаДокумента Цикл
    
обТД    = ТабличныйДокумент.Область(ОтступСверху+1,СчЯчейка,ОтступСверху+1,СчЯчейка);
    
ШиринаДокументаВСимволах=ШиринаДокументаВСимволах + окр(обТД.ШиринаКолонки,0,1);
    КонецЦикла;
   
ЛеваяГраница = 1;
   
ПраваяГраница = ШиринаДокумента;
   
ШагВперёд = Истина;
   
ТекШирина = ШиринаДокументаВСимволах;
    Пока (
ПраваяГраница > ЛеваяГраница) и (ТекШирина > ШиринаПодписиВсего*ШиринаСимвола) Цикл
    
//слева шагаем
    
Если ШагВперёд Тогда
     
обШаг    = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху + 1,ЛеваяГраница,ВысотаПодписи + ОтступСверху+1,ЛеваяГраница);
     
ШагШирина   = окр(обШаг.ШиринаКолонки,0,1);
     
ЛеваяГраница  = ЛеваяГраница+1;
     
ТекШирина  = ТекШирина - ШагШирина;
     КонецЕсли;
    
//справа шагаем
    
Если НЕ ШагВперёд Тогда
     
обШаг    = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху + 1,ПраваяГраница,ВысотаПодписи + ОтступСверху+1,ПраваяГраница);
     
ШагШирина   = окр(обШаг.ШиринаКолонки,0,1);
     
ПраваяГраница  = ПраваяГраница - 1;
     
ТекШирина  = ТекШирина - ШагШирина;
     КонецЕсли;
    
ШагВперёд = НЕ ШагВперёд;
    КонецЦикла;
   
ОтступСлева    = ЛеваяГраница - 1;
   
ОтступСправа   = ШиринаДокумента - ПраваяГраница;
   
ПерваяОрганизация  = Справочники.Организации.ПустаяСсылка();
   
ИтоговыйДокумент   = Новый ТекстовыйДокумент;
   
ИтоговыйДокумент.Очистить();
   
Макет          = Перечисления.РазделыОтчётов.ПолучитьМакет("МакетТекст");
   
обМакет            = Макет.ПолучитьОбласть("Заголовок");
   
обМакет.Параметры.Заголовок    = СокрЛП(Синоним);
   
ИтоговыйДокумент.Вывести(обМакет);
   
обМакет            = Макет.ПолучитьОбласть("Раздел");
   
Настройка.НижнийКолонтитул.ТекстВЦентре = СтрЗаменить(Настройка.НижнийКолонтитул.ТекстВЦентре,"[&"+СокрЛП(ВыбЭлемент)+"]","");
   
//вывожу элементы
   
Для Каждого  строкаТЗ ИЗ МассивСтрок Цикл
     Если
ПерваяОрганизация.Пустая() Тогда
      
ПерваяОрганизация = строкаТЗ.Организация;
     КонецЕсли;
     Если
ПерваяОрганизация <> строкаТЗ.Организация Тогда
      Продолжить;
     КонецЕсли;
    
ФИО = "";
     Если НЕ
строкаТЗ.ФизЛицо.Пустая() Тогда
      
ФИО = СокрЛП(строкаТЗ.ФизЛицо.Наименование);
     КонецЕсли;
    
Инициалы ="";
    
МассивФИО = ОбщегоНазначения.ПолучитьМассивФИО(ФИО);
     Если (НЕ
ПустаяСтрока(МассивФИО[1])) И (НЕ ПустаяСтрока(МассивФИО[2])) Тогда
      
Инициалы =" "+Лев(МассивФИО[1],1) + "." + Лев(МассивФИО[2],1)+".";
     КонецЕсли;
    
ФИО        = СокрЛП(МассивФИО[0] + Инициалы);
    
обМакет.Параметры.Должность  = СокрЛП(строкаТЗ.Должность);
    
обМакет.Параметры.ФИО    = ФИО;
    
ИтоговыйДокумент.Вывести(обМакет);
    КонецЦикла;
   
ТабДок     = Новый ТабличныйДокумент;
    Если (
ВысотаПодписиТек  < ВысотаПодписиВсего) и (ВысотаПодписиВсего <> 0) Тогда
    
обТД         = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху + 1,ОтступСлева + 1,ВысотаПодписи + ОтступСверху + 2,ШиринаДокумента);
    
обТДИсточник  = ТабДок.Область(ОтступСверху+1,ОтступСлева + 1,ОтступСверху+2,ШиринаДокумента);
    
ТабличныйДокумент.ВставитьОбласть(обТДИсточник,обТД,ТипСмещенияТабличногоДокумента.БезСмещения,Ложь);
    Иначе
    
обТД         = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху + 1,1,ВысотаПодписи + ОтступСверху + 2,ШиринаДокумента);
    
обТДИсточник  = ТабДок.Область(ОтступСверху+1,1,ОтступСверху+2,ШиринаДокумента);
    
ТабличныйДокумент.ВставитьОбласть(обТДИсточник,обТД,ТипСмещенияТабличногоДокумента.ПоВертикали,Ложь);
    КонецЕсли;
   
обТД           = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху+2,ОтступСлева + 1,ВысотаПодписи + ОтступСверху+2,ОтступСлева + 1);
   
обТД.Текст      = ИтоговыйДокумент.ПолучитьТекст();
   
обТД.Шрифт      = Новый Шрифт(обТДИсточник.Шрифт,"Courier",8,Ложь,Ложь,Ложь,Ложь);
   
обТД.ВертикальноеПоложение  = ВертикальноеПоложение.Верх;
   
обТД1           = ТабличныйДокумент.Область(,,,);
   
обТД1.ВысотаСтроки    = 0;
   
ВысотаПодписиТек     = ВысотаПодписиТек  1;
   
ВысотаПодписи   = ВысотаПодписи + 2;
   КонецЕсли;
  КонецЦикла;
 КонецЕсли;
 
ВысотаПодписиВсего  = Макс(ВысотаПодписиТек,ВысотаПодписиВсего);
 
ВысотаПодписиТек  = 0;
 
ВысотаПодписи = 0;
//МЕТКА6
//низ - право
 
Если Настройка.НижнийКолонтитул.Свойство("ТекстСправа") Тогда
   Для
Сч = 0 По Перечисления.РазделыОтчётов.Количество()-1 Цикл
  
ВыбЭлемент = Перечисления.РазделыОтчётов.Получить(Сч).Метаданные().ЗначенияПеречисления[Сч].Имя;
   Если (
Найти(Настройка.НижнийКолонтитул.ТекстСправа,"[&"+СокрЛП(ВыбЭлемент)+"]")>0) и (Настройка.НижнийКолонтитул.Выводить) Тогда
   
ОтступСлева   = 0;
   
ОтступСправа  = 0;
   
ОтступСверху  = ВысотаДокумента;
   
Синоним      = Перечисления.РазделыОтчётов.Получить(Сч).Метаданные().ЗначенияПеречисления[Сч].Синоним;
   
Отбор    = Новый Структура;
   
Отбор.Вставить("РазделОтчёта",Перечисления.РазделыОтчётов.Получить(Сч));
    Если НЕ
Организация.Пустая() Тогда
    
Отбор.Вставить("Организация",Организация);
    КонецЕсли;
   
МассивСтрок = тзСрезПоследних.НайтиСтроки(Отбор);
   
ШиринаВсего = 0;
   
НомЯчейки = ШиринаДокумента + 1;
    Для
СчЯчейки  = - ШиринаДокумента По -1 Цикл
    
НомЯчейки  = - СчЯчейки;
    
обПодпись  = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху+1,НомЯчейки,ВысотаПодписи + ОтступСверху+1,НомЯчейки);
    
ШиринаВсего = ШиринаВсего+окр(обПодпись.ШиринаКолонки,0,1);
     Если
ШиринаВсего >= ШиринаПодписиВсего*ШиринаСимвола  Тогда
       Прервать;
     КонецЕсли;
    КонецЦикла;
   
ПерваяОрганизация = Справочники.Организации.ПустаяСсылка();
   
ОтступСлева = НомЯчейки  - 1;
   
ИтоговыйДокумент   = Новый ТекстовыйДокумент;
   
ИтоговыйДокумент.Очистить();
   
Макет       = Перечисления.РазделыОтчётов.ПолучитьМакет("МакетТекст");
   
обМакет         = Макет.ПолучитьОбласть("Заголовок");
   
обМакет.Параметры.Заголовок = СокрЛП(Синоним);
   
ИтоговыйДокумент.Вывести(обМакет);
   
обМакет         = Макет.ПолучитьОбласть("Раздел");
   
Настройка.НижнийКолонтитул.ТекстСправа = СтрЗаменить(Настройка.НижнийКолонтитул.ТекстСправа,"[&"+СокрЛП(ВыбЭлемент)+"]","");
    Для Каждого 
строкаТЗ ИЗ МассивСтрок Цикл
     Если
ПерваяОрганизация.Пустая() Тогда
      
ПерваяОрганизация = строкаТЗ.Организация;
     КонецЕсли;
     Если
ПерваяОрганизация <> строкаТЗ.Организация Тогда
      Продолжить;
     КонецЕсли;
    
ФИО = "";
     Если НЕ
строкаТЗ.ФизЛицо.Пустая() Тогда
      
ФИО = СокрЛП(строкаТЗ.ФизЛицо.Наименование);
     КонецЕсли;
    
Инициалы ="";
    
МассивФИО = ОбщегоНазначения.ПолучитьМассивФИО(ФИО);
     Если (НЕ
ПустаяСтрока(МассивФИО[1])) И (НЕ ПустаяСтрока(МассивФИО[2])) Тогда
      
Инициалы =" "+Лев(МассивФИО[1],1) + "." + Лев(МассивФИО[2],1)+".";
     КонецЕсли;
    
ФИО        = СокрЛП(МассивФИО[0] + Инициалы);
    
обМакет.Параметры.Должность  = СокрЛП(строкаТЗ.Должность);
    
обМакет.Параметры.ФИО    = ФИО;
    
ИтоговыйДокумент.Вывести(обМакет);
    КонецЦикла;
   
ТабДок      = Новый ТабличныйДокумент;
    Если (
ВысотаПодписиТек  < ВысотаПодписиВсего) и (ВысотаПодписиВсего <> 0) Тогда
    
обТД         = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху + 1,ОтступСлева + 1,ВысотаПодписи + ОтступСверху + 2,ШиринаДокумента);
    
обТДИсточник  = ТабДок.Область(ОтступСверху+1,ОтступСлева + 1,ОтступСверху+2,ШиринаДокумента);
    
ТабличныйДокумент.ВставитьОбласть(обТДИсточник,обТД,ТипСмещенияТабличногоДокумента.БезСмещения,Ложь);
    Иначе
    
обТД         = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху + 1,1,ВысотаПодписи + ОтступСверху + 2,ШиринаДокумента);
    
обТДИсточник  = ТабДок.Область(ОтступСверху+1,1,ОтступСверху+2,ШиринаДокумента);
    
ТабличныйДокумент.ВставитьОбласть(обТДИсточник,обТД,ТипСмещенияТабличногоДокумента.ПоВертикали,Ложь);
    КонецЕсли;
   
обТД         = ТабличныйДокумент.Область(ВысотаПодписи + ОтступСверху+2,ОтступСлева + 1,ВысотаПодписи + ОтступСверху+2,ОтступСлева + 1);
   
обТД.Текст    = ИтоговыйДокумент.ПолучитьТекст();
   
обТД.Шрифт    = Новый Шрифт(обТДИсточник.Шрифт,"Courier",8,Ложь,Ложь,Ложь,Ложь);
   
обТД.ВертикальноеПоложение  = ВертикальноеПоложение.Верх;
   
обТД1         = ТабличныйДокумент.Область(,,,);
   
обТД1.ВысотаСтроки  = 0;
   
ВысотаПодписиТек   = ВысотаПодписиТек  1;
   
ВысотаПодписи   = ВысотаПодписи + 2;
   КонецЕсли;
  КонецЦикла;
 КонецЕсли;


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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Печать подписей
.rar 1,17Mb
15.06.10
158
.rar 1,17Mb 158 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. dio con (diocon) 19.02.15 08:53
Картинки обновите, нет возможности оценить результат!
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа