Имя: Пароль:
1C
1С v8
Размножается область макета на печатной форме
0 SoulEater
 
03.03.15
13:59
Вообщем необходимо, чтобы для каждого сотрудника в документе расписывалась надбавка из табличной части "Основные начисления", но в итоге он просто выводит в каждом сотруднике весь результат запроса.
Подскажите что я делаю не так?

Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    Запрос.Текст =
        "ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    КадровоеПеремещениеОрганизацийОсновныеНачисления.Ссылка,
        |    КадровоеПеремещениеОрганизацийОсновныеНачисления.ВидРасчета,
        |    КадровоеПеремещениеОрганизацийОсновныеНачисления.Сотрудник,
        |    КадровоеПеремещениеОрганизацийОсновныеНачисления.Показатель1 КАК Надбавка,
        |    КадровоеПеремещениеОрганизацийОсновныеНачисления.ВидРасчета.СпособРасчета КАК СпособРасчета
        |ИЗ
        |    Документ.КадровоеПеремещениеОрганизаций.ОсновныеНачисления КАК КадровоеПеремещениеОрганизацийОсновныеНачисления
        |ГДЕ
        |    КадровоеПеремещениеОрганизацийОсновныеНачисления.Ссылка = &Ссылка
        |    И КадровоеПеремещениеОрганизацийОсновныеНачисления.ВидРасчета <> &ВидРасчета
        |    И КадровоеПеремещениеОрганизацийОсновныеНачисления.Показатель1 <> 0";
    
    Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоДням);
    Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоЧасам);
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект.Ссылка);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    ФизЛицо = СсылкаНаОбъект.ОсновныеНачисления.ВыгрузитьКолонку("Сотрудник");
    Пока Выборка.Следующий() Цикл
        Для каждого ЗначениеЭлемента из ФизЛицо Цикл
            Если Выборка.Сотрудник = ЗначениеЭлемента  Тогда
                Если Выборка.СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ФиксированнойСуммой Тогда
                    ЦелЧасть = Окр(Выборка.Надбавка, 0);
                    ОбластьНадбавка.Параметры.Назв = Выборка.ВидРасчета;
                    ОбластьНадбавка.Параметры.Надбавка = ЦелЧасть;          
                    ОбластьНадбавка.Параметры.Валюта = "руб.";
                    ДЧасть = Выборка.Надбавка - ЦелЧасть;
                    Если ДЧасть = 0 Тогда
                        ОбластьНадбавка.Параметры.ДЧасть = "00";
                    Иначе
                        ОбластьНадбавка.Параметры.ДЧасть = ДЧасть;
                    КонецЕсли;
                    ТабДокумент.Вывести(ОбластьНадбавка);
                КонецЕсли;
                Если Выборка.СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.Процентом Тогда
                    ОбластьНадбавка1.Параметры.Назв1 = Выборка.ВидРасчета;
                    ОбластьНадбавка1.Параметры.Надбавка1 = Выборка.Надбавка;
                    ОбластьНадбавка1.Параметры.Валюта1 = "%";
                    ТабДокумент.Вывести(ОбластьНадбавка1);
                    
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
1 salvator
 
03.03.15
14:08
А в запросе разве нельзя рассчитать надбавку через ВЫБОР КОГДА?
2 SoulEater
 
03.03.15
14:15
(1) Тут проблема в другом, надбавку я получаю правильную, но на печатную форму для каждого сотрудника( в случае если в документе "КадровоеПеремещениеОрганизации" несколько сотрудников) выводятся ОбластьНадбавка и ОбластьНадбавка1 с данными для каждого сотрудника.
3 чувак
 
03.03.15
14:16
Все можно делать в запросе
4 SoulEater
 
03.03.15
14:19
(3) подробнее?
5 salvator
 
03.03.15
14:20
(2) Сгруппируй по сотруднику и выводи.
6 чувак
 
03.03.15
14:26
(4) почему у тебя в установить параметр два раза?
тогда у тебя отбор будет криво работат
7 SoulEater
 
03.03.15
14:28
(6) на данный момент отбор работает так как и надо)
8 SoulEater
 
03.03.15
14:55
Кто нибудь может прямо сказать, что надо сделать чтобы на печать выводились области для 1-го сотрудника и области для другого, а не все вместе?
9 SoulEater
 
04.03.15
10:01
/close