Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
kuza_87
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 5
1

Вывод заголовка в печатной форме

25.05.2012, 09:24. Просмотров 2625. Ответов 2
Метки нет (Все метки)

Привет, товарищи! Делал внешнюю печатную форму к документу "Зарплата к выплате". Там всё простенько выводиться список сотрудников с сортировкой по подразделениям. Мне нужно сделать так, чтобы выводлся заголовок с подразделением человека, если подразделение не равно предыдущему. Вот сам запрос:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Запрос=Новый Запрос;
 
          Запрос.Текст = "ВЫБРАТЬ
        |   ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо КАК Физлицо,
        |   ЗарплатаКВыплатеОрганизацийЗарплата.Сумма КАК Сумма,
        |   ЕСТЬNULL(РаботникиОрганизацийСрезПоследних.Сотрудник.ПодразделениеОрганизации, ДоговорНаВыполнениеРаботСФизЛицом.ПодразделениеОрганизации) КАК СотрудникПодразделениеОрганизации,
        |   РаботникиОрганизацийСрезПоследних.Период КАК Период,
        |   ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Номер КАК Номер,
        |   ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка.Дата КАК Дата
        |ИЗ
        |   Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата
        |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, ) КАК РаботникиОрганизацийСрезПоследних
        |       ПО ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо = РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо
        |       ЛЕВОЕ СОЕДИНЕНИЕ Документ.ДоговорНаВыполнениеРаботСФизЛицом КАК ДоговорНаВыполнениеРаботСФизЛицом
        |       ПО ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо = ДоговорНаВыполнениеРаботСФизЛицом.ФизЛицо
        |ГДЕ
        |   ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка = &Ссылка
        |
        |УПОРЯДОЧИТЬ ПО
        |ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо.Наименование,
        |Период УБЫВ
        |ИТОГИ ПО
        |   Физлицо";
                
    Запрос.Параметры.Вставить("Период",СсылкаНаОбъект.Дата);
    Запрос.Параметры.Вставить("Ссылка",СсылкаНаОбъект.Ссылка);  //ЗНАЧЕНИЕ(Документ.ЗарплатаКВыплатеОрганизаций.ПустаяСсылка)
    РезультатЗапроса=Запрос.Выполнить();
    Выборка=РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);//ПоГруппировкам/Прямой
    ТЗ=РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);//ПоГруппировкам/Прямой
    //Заполняем в таблицу значений только 1-ю строку чтобы люди не двоились
    Для Каждого Стр1 из ТЗ.Строки Цикл
                     ЗаполнитьЗначенияСвойств(Стр1, Стр1.Строки [0])
                 КонецЦикла;
    ТЗ.Строки.Сортировать("СотрудникПодразделениеОрганизации");
    ТЗ.ВыбратьСтроку();
А вот сам код который заполняет строки:
1C
1
2
3
4
5
6
7
8
9
10
//заполняем строки   
ТекущееПодразделение = Неопределено;
            Для Каждого Сотрудник из ТЗ.Строки Цикл
            ЗаполнитьЗначенияСвойств(Стр1, Стр1.Строки [0]);
         ОбластьМакетаСтрока.Параметры.Заполнить(Сотрудник);
         ОбластьМакетаПодразделение.Параметры.Заполнить(Сотрудник);
         ТекущееПодразделение = ОбластьМакетаПодразделение.Параметры.Подразделение;
         Если Сотрудник.Подразделение<>ТекущееПодразделение тогда
         ТабДокумент.Вывести(ОбластьМакетаПодразделение);
         КонецЕсли;
Помогите разобраться что я написал не так, буду очень признателен.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2012, 09:24
Ответы с готовыми решениями:

Изменение заголовка печатной формы в зависимости от условий
Платформа 8.1 Задача такова, что бы в печатной форме в зависимости от склада отправителя изменялся...

По печатной форме
Добрый день! Есть вот такой код: ЗапросПоТоварам1 = Новый Запрос();...

Ошибка в печатной форме счета
Сделал ВПФ счет на оплату. Выскакивает ошибка:...

Не выводится область в печатной форме
Сделал внешнюю печатную форму АктОбОказанииУслуг (переделал с типовой). Добавил туда область...

Дополнительные реквизиты документа в печатной форме 8.2 УТ 11
К документу ЗаказПоставщику сделана внешняя печатная форма. В документе имеется дополнительный...

2
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
25.05.2012, 18:17 2
Строчку инициализации ТекПодра перебросить после сравнения
1C
1
2
3
4
5
6
7
8
9
ТекущееПодразделение = Неопределено;
Для Каждого Сотрудник из ТЗ.Строки Цикл
ЗаполнитьЗначенияСвойств(Стр1, Стр1.Строки [0]);
ОбластьМакетаСтрока.Параметры.Заполнить(Сотрудник);
ОбластьМакетаПодразделение.Параметры.Заполнить(Сотрудник);
Если Сотрудник.Подразделение<>ТекущееПодразделение тогда
ТабДокумент.Вывести(ОбластьМакетаПодразделение);
КонецЕсли;
ТекущееПодразделение = Сотрудник.Подразделение;
А что не добавить подразделение в ИТОГИ? Это второе.
Третье. Предположим, что сотры нужны строго по алфавиту. Но тогда нет смысла выводить заголовок подразделения, логичнее рисовать их колонкой справа, пропуская повторы.
Четвёртое. Угрохать повторы в таблице до вывода.
1
kuza_87
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 5
27.05.2012, 19:39  [ТС] 3
Спасибо огромное, сделал как сказал, последовал всем твоим советам - и все стали счастливы.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2012, 19:39

Как упорядочить строки в печатной форме
Здравствуйте, подскажите как сделать печатную форму накладной. Строки в печатной форме по выбору...

1с 8.2: Разбивает Строки В Печатной Форме Накладной
Добрый день! Нужна помощь профессионалов по такому вопросу: Платформа 1С:Предприятие 8.2...

Время на печатной форме документа в ТиС 7.7
Доброго всем дня! Помогите пожалуйста вывести время проведения документа (Чек ККМ) на печатную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.