Имя: Пароль:
1C
1С v8
1С 8.2 ЗиУП редакция 2.5
0 upseven
 
26.11.12
15:20
По просьбе бухгалтеров, в печатной форме НачисленияЗП заменил вывод ВидаРасчета на вывод Должность. Все вроде работает. Сделал это так (строка под звездочками**):

Процедура ПечатьТабеляРегл(ВидПечати) Экспорт
   ТабДок = Новый ТабличныйДокумент;
   Макет = Документы.НачислениеЗарплатыРаботникамОрганизаций.ПолучитьМакет("Печать");
   // Заголовок
   Область = Макет.ПолучитьОбласть("Заголовок");
   ТабДок.Вывести(Область);
   // Шапка
   Область = Макет.ПолучитьОбласть("Шапка");
   Область.Параметры.Номер = Номер;
   Область.Параметры.Дата = Дата;
   Область.Параметры.ПодразделениеОрганизации = ПодразделениеОрганизации;
   Область.Параметры.ВидОтчета = ВидПечати;
   //Область.Параметры.КТУ = КТУ;
   ТабДок.Вывести(Область);
   
   Если ВидПечати="Начисления" Тогда
   
   // Начисления
   ИтогРезультат=0;
   Область = Макет.ПолучитьОбласть("НачисленияШапка");
   ТабДок.Вывести(Область);
   Для Каждого ТекСтрокаНачисления Из Начисления Цикл
       Область = Макет.ПолучитьОбласть("Начисления");
       Область.Параметры.Физлицо = ТекСтрокаНачисления.Физлицо;
   //*************************************************************************    
       
        Область.Параметры.Должность = ТекСтрокаНачисления.Сотрудник.Должность;
       
       
       //Область.Параметры.ВидРасчета = ТекСтрокаНачисления.ВидРасчета;
       //|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||    
       
       
       Область.Параметры.ДатаНачала = ТекСтрокаНачисления.ДатаНачала;
       Область.Параметры.ДатаОкончания = ТекСтрокаНачисления.ДатаОкончания;
       Область.Параметры.ОтработаноДней = ТекСтрокаНачисления.ОтработаноДней;
       Область.Параметры.ОтработаноЧасов = ТекСтрокаНачисления.ОтработаноЧасов;
       Область.Параметры.Размер = ТекСтрокаНачисления.Показатель1;
       Область.Параметры.КТУ1 = ТекСтрокаНачисления.КТУ;
       Область.Параметры.Результат = ТекСтрокаНачисления.Результат;
       ТабДок.Вывести(Область);
       ИтогРезультат=ИтогРезультат+ТекСтрокаНачисления.Результат;
   КонецЦикла;
       Область = Макет.ПолучитьОбласть("НачисленияИтог");
       Область.Параметры.Результат = ИтогРезультат;
       ТабДок.Вывести(Область);
   
   ИначеЕсли ВидПечати="ДопНачисления" Тогда
   
   // ДополнительныеНачисления...

Спросил опытного программиста, все ли я правильно сделал? Он ответил что нет, и что должность надо было получить из регистра сведений.
1 Amra
 
26.11.12
15:22
Правильно он все сказал
2 upseven
 
26.11.12
15:22
Повлечет ли какие то последствия то что должность не из регистра?
3 Amra
 
26.11.12
15:23
(2) Некорректно всего лишь
4 shuhard
 
26.11.12
15:23
(2) угу
после первого кадрового перемещения тебе что-нибудь оторвут
5 upseven
 
26.11.12
15:31
(4) а что будет не так?
6 Amra
 
26.11.12
15:32
(5) То что при кадровом перемещении должность в справочнике не обновляется, только в регистре
7 upseven
 
26.11.12
15:34
(6) вот же фак!
ок, понял, спасибо.
Буду пробовать получить из регистра
8 dmpl
 
26.11.12
15:40
(6) Обновляется, но не этот реквизит. Впрочем, и он тоже не всегда правильный.
9 upseven
 
26.11.12
15:41
(6) Последний вопрос.
В практически аналогичном документе печатная форма получает параметр Должность из функции:

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

    ТабНач=Запрос.Выполнить().Выгрузить();

   Запрос= Новый Запрос();
   Запрос.УстановитьПараметр("ДатаДок", ДокОбъект.Дата);
   Запрос.УстановитьПараметр("ДатаНач",  НачалоМесяца(ДокОбъект.Дата));
   Запрос.УстановитьПараметр("ДатаКон",  КонецМесяца(ДокОбъект.Дата));
   Запрос.УстановитьПараметр("ТекущийДокумент",        ДокОбъект.Ссылка);
   Запрос.УстановитьПараметр("СписокФЛ",        СписокФЛ);
   Запрос.УстановитьПараметр("парамБух",        Планывидоврасчета.УправленческиеНачисления.НачисленоПоБухгалтерии);

   Запрос.Текст=
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|    УправленческиеНачисления.ФизЛицо КАК ФизЛицо,
|    0 КАК Тариф,
|    0 КАК ОтработаноДней,
|    0 КАК ОтработаноЧасов,
|    0 КАК КТУ,
|    0 КАК Сумма,
|    СУММА(-УправленческиеНачисления.Результат) КАК СуммаТаб
|ИЗ
|    РегистрРасчета.УправленческиеНачисления КАК УправленческиеНачисления
|ГДЕ
|    УправленческиеНачисления.ВидРасчета = &парамБух
|    И УправленческиеНачисления.ФизЛицо В(&СписокФЛ)
|    И УправленческиеНачисления.ПериодДействияНачало >= &ДатаНач
|    И УправленческиеНачисления.ПериодДействияКонец <= &ДатаКон
|
|СГРУППИРОВАТЬ ПО
|    УправленческиеНачисления.ФизЛицо";    

    ТабНачБух=Запрос.Выполнить().Выгрузить();

    Для Каждого ТекСтр Из ТабНачБух Цикл
        ТекФЛ=ТекСтр.ФизЛицо;
         //Сообщить(ТекФЛ);
         ОтборФл = Новый Структура ;
         ОтборФл.Вставить("ФизЛицо",ТекФл);
        СтрокиФл= ТабНач.НайтиСтроки(ОтборФл);
       
       Если СтрокиФл.Количество() = 0 Тогда
           Продолжить;
       КонецЕсли;
       СуммаБух = ТекСтр.СуммаТаб ;
       Для Каждого НовСтр Из СтрокиФл Цикл
        НовСтр.СуммаТаб=НовСтр.СуммаТаб+СуммаБух;
        НовСтр.ПЗ=Истина;
           СуммаБух=0 ;
           //Сообщить(Строка(ТекФЛ)+ " нач Бух=  "+Строка(ТекСтр.СуммаТаб));
        КонецЦикла;
КонецЦикла;
   
    //ТабНач.Свернуть("ФизЛицо,ТабельныйНомер,Должность","Тариф,ОтработаноДней,ОтработаноЧасов,КТУ,Сумма,СуммаТаб");
   
         Возврат ТабНач;

   
КонецФункции


это мне что то похожее сделать надо?
10 dmpl
 
26.11.12
15:54
(9) Лучше подумай, что будешь делать, когда должность будет меняться в середине месяца. А иначе зачем выводить должность? Она итак есть в правом верхнем углу расчетного листка.
11 upseven
 
27.11.12
09:22
(10) вывод должности для удобства работы экономиста. при начислении зп она сверяется с штатным расписанием. это со слов бухгалтера.
12 dmpl
 
27.11.12
10:03
(11) В штатном расчетном листке должность выводится в правом верхнем углу листка.