Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Неверно выводится заголовок отчета
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Genda
Здравствуйте! Суть проблемы в следующем. Сделала внешний отчет, все работает,но не получается по-человечески вывести заголовок отчета из макета. Выводится не по центру над таблицей,а где-то сбоку.
Вывожу стандартным способом:
ОбластьМакетаШапка=Макет.ПолучитьОбласть("Шапка");
ОбластьМакетаШапка.Параметры.Заголовок="Свод ФОТ за "+ТекстПериода+" по "+ПодрНаим;
ТабДокумент.Вывести(ОбластьМакетаШапка);


Вывод остальных областей осуществляется далее по коду.
Помогите,подскажите пожалуйста, начинающему программисту blush.gif
Картинки макета и сформированного отчета:



logist
Цитата(Genda @ 18.08.12, 15:20) необходимо зарегистрироваться для просмотра ссылки
Вывод остальных областей осуществляется далее по коду.

т.е. код который идет далее надо домыслить и допустить что он верный?
Genda
Ок, вот весь код.
Процедура КнопкаСформироватьНажатие(Кнопка)             
              Подр=СокрЛП(Подразделение.Наименование);
    Сотр=СокрЛП(Сотрудник.Код);
    ПодрНаим=СокрЛП(Подразделение.Наименование);
    СотрНаим=СокрЛП(Сотрудник.Наименование);
    Если Подр="" Тогда
        ПодрНаим="всем подразделениям";
    КонецЕсли;
    Если Сотр="" Тогда
        СотрНаим="всем сотрудникам";
    КонецЕсли;

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

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

                        ОбластьМакетаКоды.Параметры.Руководители=ИтКодРук;
                        ОбластьМакетаКоды.Параметры.Специалисты=ИтКодСпец;
                        ОбластьМакетаКоды.Параметры.ДругиеСлужащие=ИтКодДр;
                        ОбластьМакетаКоды.Параметры.Рабочие=ИтКодРаб;
                        ОбластьМакетаКоды.Параметры.БезКатегории=ИтКодБК;
                           ОбластьМакетаКоды.Параметры.ИтКод=ИтКод;
                        Если ИтКодРук=0 Тогда
                            ОбластьМакетаКоды.Параметры.Руководители="0.00";
                        КонецЕсли;
                        Если ИтКодСпец=0 Тогда
                            ОбластьМакетаКоды.Параметры.Специалисты="0.00";
                        КонецЕсли;
                        Если ИтКодДр=0 Тогда
                            ОбластьМакетаКоды.Параметры.ДругиеСлужащие="0.00";
                        КонецЕсли;
                        Если ИтКодРаб=0 Тогда
                            ОбластьМакетаКоды.Параметры.Рабочие="0.00";
                        КонецЕсли;
                        Если ИтКодБК=0 Тогда
                            ОбластьМакетаКоды.Параметры.БезКатегории="0.00";
                        КонецЕсли;
                        Если ИтКод=0 Тогда
                                ОбластьМакетаКоды.Параметры.ИтКод="0.00";
                        КонецЕсли;
                КонецЕсли; ////завершение условия на совпадение кодов
                        
                        ОбластьМакетаКоды.Параметры.Руководители=ИтКодРук;
                        ОбластьМакетаКоды.Параметры.Специалисты=ИтКодСпец;
                        ОбластьМакетаКоды.Параметры.ДругиеСлужащие=ИтКодДр;
                        ОбластьМакетаКоды.Параметры.Рабочие=ИтКодРаб;
                        ОбластьМакетаКоды.Параметры.БезКатегории=ИтКодБК;
                        ИтКод=ИтКодРук+ИтКодСпец+ИтКодРаб+ИтКодДр+ИтКодБК;
                        ОбластьМакетаКоды.Параметры.ИтКод=ИтКод;
                        Если ИтКодРук=0 Тогда
                            ОбластьМакетаКоды.Параметры.Руководители="0.00";
                        КонецЕсли;
                        Если ИтКодСпец=0 Тогда
                            ОбластьМакетаКоды.Параметры.Специалисты="0.00";
                        КонецЕсли;
                        Если ИтКодДр=0 Тогда
                            ОбластьМакетаКоды.Параметры.ДругиеСлужащие="0.00";
                        КонецЕсли;
                        Если ИтКодРаб=0 Тогда
                            ОбластьМакетаКоды.Параметры.Рабочие="0.00";
                        КонецЕсли;
                        Если ИтКодБК=0 Тогда
                                ОбластьМакетаКоды.Параметры.БезКатегории="0.00";
                        КонецЕсли;
                        Если ИтКод=0 Тогда
                            ОбластьМакетаКоды.Параметры.ИтКод="0.00";
                        КонецЕсли;
                    
                КонецЕсли;    ////завершение условия для НЕ 1ой(0ой) строки ТЗ
                        
        КонецЦикла;
    
        ТабДокумент.Вывести(ОбластьМакетаКоды);    
            
        ИтРук= 0;
        ИтСпец=0;
        ИтДр=0;
        ИтРаб=0;
        ИтБК=0;
        ////получение итогов по категориям
        Для НомерСтроки=0 По ТаблицаФОТ1.Количество()-1 Цикл
            ////проверка на вид занятост
            Если СокрЛП(ТаблицаФОТ1[НомерСтроки].ВидЗанятости)="Внутреннее совместительство" Тогда
                Продолжить;
            КонецЕсли;
            ////проверка на увольнение
            Увольнение=ТаблицаФОТ1[НомерСтроки].ДатаУвольнения;
            
            Если Увольнение<НачПериода И Увольнение<>Дата(1,1,1,0,0,0)              Тогда                            
                    Продолжить;
            КонецЕсли;
                ////проверка на доход в натур форме
            Если ТаблицаФОТ1[НомерСтроки].ДоходВНатурФорме=Истина Тогда
                Продолжить;
            КонецЕсли;
            
            ////проверка категории по периоду завершения
            ПериодЗавершения=ТаблицаФОТ1[НомерСтроки].ПериодЗавершения;
            Если ПериодЗавершения=NULL Тогда
                ПериодЗавершения=Дата(1,1,1,0,0,0);
            КонецЕсли;
            Если ПериодЗавершения<=КонПериода И ПериодЗавершения<>Дата(1,1,1,0,0,0) Тогда
                Категория=ТаблицаФОТ1[НомерСтроки].КатегорииЗавершения;
                КатСтр=СокрЛП(Строка(Категория));
            Иначе
                Категория=ТаблицаФОТ1[НомерСтроки].Категории;
                КатСтр=СокрЛП(Строка(Категория));
            КонецЕсли;
            ////рук
            Если КатСтр="Руководители" Тогда
                ИтРук=ИтРук+ТаблицаФОТ1[НомерСтроки].Результат;
                Итоги.Параметры.ИтРук=ИтРук;
            ////спец
            ИначеЕсли КатСтр="Специалисты" Тогда
                ИтСпец=ИтСпец+ТаблицаФОТ1[НомерСтроки].Результат;
                Итоги.Параметры.ИтСпец=ИтСпец;
            ////дрсл    
            ИначеЕсли КатСтр="Другие служащие" Тогда
                ИтДр=ИтДр+ТаблицаФОТ1[НомерСтроки].Результат;
                Итоги.Параметры.ИтДр=ИтДр;
            ////раб
            ИначеЕсли КатСтр="Рабочие" Тогда
                ИтРаб=ИтРаб+ТаблицаФОТ1[НомерСтроки].Результат;
                Итоги.Параметры.ИтРаб=ИтРаб;
            ////бк
            ИначеЕсли КатСтр="" Тогда
                ИтБК=ИтБК+ТаблицаФОТ1[НомерСтроки].Результат;
                Итоги.Параметры.ИтБК=ИтБК;
            КонецЕсли;    
        КонецЦикла;
            Если ИтБК=0 Тогда
                Итоги.Параметры.ИтБК="0.00";
            КонецЕсли;
            Если ИтРук=0 Тогда
                Итоги.Параметры.ИтРук="0.00";
            КонецЕсли;
            Если ИтСпец=0 Тогда
                Итоги.Параметры.ИтСпец="0.00";
            КонецЕсли;
            Если ИтДр=0 Тогда
                Итоги.Параметры.ИтДр="0.00";
            КонецЕсли;
            Если ИтРаб=0 Тогда
                Итоги.Параметры.ИтРаб="0.00";
            КонецЕсли;
            
           ИтКат=ИтРук+ИтСпец+ИтДр+ИтРаб+ИтБК;
            Если ИтКат=0 Тогда
                                       Итоги.Параметры.ИтКат="0.00";
            КонецЕсли;
        Итоги.Параметры.ИтКат=ИтКат;
        
        ТабДокумент.Вывести(Итоги);
        ТабДокумент.Вывести(ОбластьМакетаОкончание);
        ТабДокумент.Защита=Истина;    
        ТабДокумент.ОтображатьСетку=Ложь;
        ТабДокумент.АвтоМасштаб=Истина;
        ТабДокумент.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
        ТабДокумент.Показать();
        
КонецПроцедуры
alex040269
Сделайте все области такими же как Шапка, то есть, что бы они прописывались слева (будет области принадлежать вся строка) - и будет счастье.
Genda
Вряд ли так получится. При формировании отчета многократно повторяется один столбец КодыНачислений, т.е. нужно чтоб была колонка, а не строка
logist
alex040269 +1


Genda, у ТабДока есть метод Присоединить()
Genda
А для моего варианта макета вообще никак нельзя сделать?
Genda
Цитата(logist @ 18.08.12, 20:33) необходимо зарегистрироваться для просмотра ссылки
alex040269 +1


Genda, у ТабДока есть метод Присоединить()



Большое спасибо за помощь! Присоединить() сработало.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.