Внешняя печатная форма ЗУП Кадровый перевод

1. user1898973 15.08.24 05:10 Сейчас в теме
Здравствуйте,есть внешняя печатная форма кадровый перевод списком,кадровый перевод.Нужно в нее из начислений вытащить оклад и надбавку за сложность и напряженность труда.В кадровом переводе списком все работает,а вот просто в кадровом переводе выходит только надбавка за сложность и напряженность труда а оклад ставит 0.В чем может быть причина?Прошу подсказки.


Функция ТабличныйДокументТрудовойДоговор(ИмяМакета, МассивОбъектов, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Макет = ПолучитьМакет(ИмяМакета);
    
    Первый = Истина;
    СсылкаНаОбъект = МассивОбъектов.Получить(0).Ссылка;      
    
    ТабДокумент = Новый ТабличныйДокумент;
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); 
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
    Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.Адрес);
    Запрос.УстановитьПараметр("Вид", Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации); 
    Запрос.УстановитьПараметр("Дата",СсылкаНаОбъект.Дата);    
    Запрос.УстановитьПараметр("Показатель", "%Вредность%");
    Запрос.УстановитьПараметр("Действие",Перечисления.ДействияСНачислениямиИУдержаниями.Отменить);
    
    Если ТипЗнч(СсылкаНаОбъект)=Тип("ДокументСсылка.КадровыйПереводСписком") Тогда //КадровыйПереводСпискомСотрудники
        
        Запрос.Текст =         
        "ВЫБРАТЬ
        |    КадровыйПеревод.Сотрудник КАК Сотрудник,
        |    КадровыйПеревод.ФизЛицо КАК ФизическоеЛицо,
        |    КадровыйПеревод.Ссылка.Организация.НаименованиеПолное КАК Организация,
        |    КадровыйПеревод.Ссылка.Организация.ИНН КАК ИНН,
        |    КадровыйПеревод.Ссылка.Организация КАК СсылкаОрганизация,
        |    КадровыйПеревод.ГрафикРаботы КАК ГрафикРаботыСотрудников,
        |    КадровыйПеревод.Должность КАК Должность,
        |    КадровыйПеревод.Ссылка.Организация.ОГРН КАК ОГРН,
        |    КадровыйПеревод.ДатаНачала КАК ДатаНачала,
        |    КадровыйПеревод.ТрудовойДоговорНомер КАК ТрудовойДоговорНомер,
        |    КадровыйПеревод.ТрудовойДоговорДата КАК ТрудовойДоговорДата,
        |    ДокументыФизическихЛиц.Серия КАК Серия,
        |    ДокументыФизическихЛиц.Номер КАК Номер,
        |    ДокументыФизическихЛиц.СрокДействия КАК СрокДействия,
        |    ДокументыФизическихЛиц.КемВыдан КАК КемВыдан,
        |    ДокументыФизическихЛиц.КодПодразделения КАК КодПодразделения,
        |    ДокументыФизическихЛиц.Представление КАК Представление,
        |    ДокументыФизическихЛиц.ВидДокумента КАК ВидДокумента,
        |    ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи,
        |    КадровыйПереводСпискомНачисления2.Начисление КАК Начисление,
        |    КадровыйПереводСпискомНачисления2.Размер КАК Размер,
        |    ОсновныеДанныеКонтрактаДоговораСотрудника.ДатаДоговораКонтракта КАК ДатаДоговораКонтракта,
        |    ОсновныеДанныеКонтрактаДоговораСотрудника.НомерДоговораКонтракта КАК НомерДоговораКонтракта,
        |    КонтактнаяИнформация.Представление КАК ЮрАдресОрганизации,
        |    ВЫБОР
        |        КОГДА ЕСТЬNULL(РК.Значение, 0) = 0
        |            ТОГДА 0
        |        ИНАЧЕ ЕСТЬNULL(РК.Значение, 0)
        |    КОНЕЦ КАК РКПроцент
        |ИЗ
        |    (ВЫБРАТЬ
        |        КадровыйПереводСпискомСотрудники.Сотрудник КАК Сотрудник,
        |        КадровыйПереводСпискомСотрудники.Сотрудник.ФизическоеЛицо КАК ФизЛицо,
        |        КадровыйПереводСпискомСотрудники.Ссылка КАК Ссылка,
        |        КадровыйПереводСпискомСотрудники.ИдентификаторСтрокиСотрудника КАК ИдентификаторСтрокиСотрудника,
        |        КадровыйПереводСпискомСотрудники.ГрафикРаботы КАК ГрафикРаботы,
        |        КадровыйПереводСпискомСотрудники.Должность КАК Должность,
        |        КадровыйПереводСпискомСотрудники.ДатаНачала КАК ДатаНачала,
        |        КадровыйПереводСпискомСотрудники.ТрудовойДоговорНомер КАК ТрудовойДоговорНомер,
        |        КадровыйПереводСпискомСотрудники.ТрудовойДоговорДата КАК ТрудовойДоговорДата
        |    ИЗ
        |        Документ.КадровыйПереводСписком.Сотрудники КАК КадровыйПереводСпискомСотрудники
        |    ГДЕ
        |        КадровыйПереводСпискомСотрудники.Ссылка = &Ссылка) КАК КадровыйПеревод
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            ДокументыФизическихЛицСрезПоследних.Серия КАК Серия,
        |            ДокументыФизическихЛицСрезПоследних.Номер КАК Номер,
        |            ДокументыФизическихЛицСрезПоследних.СрокДействия КАК СрокДействия,
        |            ДокументыФизическихЛицСрезПоследних.КемВыдан КАК КемВыдан,
        |            ДокументыФизическихЛицСрезПоследних.КодПодразделения КАК КодПодразделения,
        |            ДокументыФизическихЛицСрезПоследних.Физлицо КАК Физлицо,
        |            ДокументыФизическихЛицСрезПоследних.Представление КАК Представление,
        |            ДокументыФизическихЛицСрезПоследних.ВидДокумента КАК ВидДокумента,
        |            ДокументыФизическихЛицСрезПоследних.ДатаВыдачи КАК ДатаВыдачи
        |        ИЗ
        |            РегистрСведений.ДокументыФизическихЛиц.СрезПоследних КАК ДокументыФизическихЛицСрезПоследних) КАК ДокументыФизическихЛиц
        |        ПО КадровыйПеревод.ФизЛицо = ДокументыФизическихЛиц.Физлицо
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            КадровыйПереводСпискомНачисления.Ссылка КАК Ссылка,
        |            КадровыйПереводСпискомНачисления.ИдентификаторСтрокиСотрудника КАК ИдентификаторСтрокиСотрудника,
        |            КадровыйПереводСпискомНачисления.Начисление КАК Начисление,
        |            КадровыйПереводСпискомНачисления.Размер КАК Размер
        |        ИЗ
        |            Документ.КадровыйПереводСписком.Начисления КАК КадровыйПереводСпискомНачисления
        |        ГДЕ
        |            КадровыйПереводСпискомНачисления.Ссылка = &Ссылка) КАК КадровыйПереводСпискомНачисления2
        |        ПО КадровыйПеревод.ИдентификаторСтрокиСотрудника = КадровыйПереводСпискомНачисления2.ИдентификаторСтрокиСотрудника
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.ДатаДоговораКонтракта КАК ДатаДоговораКонтракта,
        |            ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.НомерДоговораКонтракта КАК НомерДоговораКонтракта,
        |            ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.ДатаНачала КАК ДатаНачала,
        |            ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.Сотрудник КАК Сотрудник
        |        ИЗ
        |            РегистрСведений.ОсновныеДанныеКонтрактаДоговораСотрудника.СрезПоследних КАК ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних) КАК ОсновныеДанныеКонтрактаДоговораСотрудника
        |        ПО КадровыйПеревод.Сотрудник = ОсновныеДанныеКонтрактаДоговораСотрудника.Сотрудник
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            ОрганизацииКонтактнаяИнформация.Ссылка КАК Ссылка,
        |            ОрганизацииКонтактнаяИнформация.Представление КАК Представление
        |        ИЗ
        |            Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
        |        ГДЕ
        |            ОрганизацииКонтактнаяИнформация.Тип = &Тип
        |            И ОрганизацииКонтактнаяИнформация.Вид = &Вид) КАК КонтактнаяИнформация
        |        ПО КадровыйПеревод.Ссылка.Организация = КонтактнаяИнформация.Ссылка
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних.Сотрудник КАК Сотрудник,
        |            ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних.Значение КАК Значение
        |        ИЗ
        |            РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&Дата, ) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних
        |        ГДЕ
        |            ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних.Показатель.Наименование ПОДОБНО ""%Вредность%"") КАК РК
        |        ПО КадровыйПеревод.Сотрудник = РК.Сотрудник
        |ИТОГИ ПО
        |    Сотрудник
        |АВТОУПОРЯДОЧИВАНИЕ";
        
    Иначе //Кадровый перевод
        
        Запрос.Текст =         
            "ВЫБРАТЬ
            |    КадровыйПеревод.Ссылка.Организация.НаименованиеПолное КАК Организация,
            |    КадровыйПеревод.Ссылка.Организация.ИНН КАК ИНН,
            |    КадровыйПеревод.Ссылка.Организация КАК СсылкаОрганизация,
            |    ДокументыФизическихЛиц.Серия КАК Серия,
            |    ДокументыФизическихЛиц.Номер КАК Номер,
            |    ДокументыФизическихЛиц.СрокДействия КАК СрокДействия,
            |    ДокументыФизическихЛиц.КемВыдан КАК КемВыдан,
            |    ДокументыФизическихЛиц.КодПодразделения КАК КодПодразделения,
            |    ДокументыФизическихЛиц.Представление КАК Представление,
            |    ДокументыФизическихЛиц.ВидДокумента КАК ВидДокумента,
            |    ОсновныеДанныеКонтрактаДоговораСотрудника.НомерДоговораКонтракта КАК НомерДоговораКонтракта,
            |    ОсновныеДанныеКонтрактаДоговораСотрудника.ДатаДоговораКонтракта КАК ДатаДоговораКонтракта,
            |    ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи,
            |    КадровыйПеревод.ФизическоеЛицо КАК ФизическоеЛицо,
            |    ВЫБОР
            |        КОГДА ЕСТЬNULL(КадровыйПеревод.Ссылка.ГрафикРаботы, 0) = 0
            |            ТОГДА ГрафикРаботыСотрудников.ГрафикРаботы
            |        ИНАЧЕ КадровыйПеревод.Ссылка.ГрафикРаботы
            |    КОНЕЦ КАК ГрафикРаботыСотрудников,
            |    ВЫБОР
            |        КОГДА ЕСТЬNULL(РК.Значение, 0) = 0
            |            ТОГДА 0
            |        ИНАЧЕ ЕСТЬNULL(РК.Значение, 0)
            |    КОНЕЦ КАК РКПроцент,
            |    КонтактнаяИнформация.Представление КАК ЮрАдресОрганизации,
            |    КадровыйПеревод.Ссылка.Организация.ОГРН КАК ОГРН,
            |    КадровыйПеревод.Сотрудник КАК Сотрудник,
            |    КадровыйПеревод.ДатаНачала КАК ДатаНачала,
            |    КадровыйПеревод.Начисление КАК Начисление,
            |    КадровыйПеревод.Размер КАК Размер,
            |    КадровыйПеревод.Ссылка.Должность КАК Должность
            |ИЗ
            |    (ВЫБРАТЬ ПЕРВЫЕ 1
            |        КадровыйПереводНачисления.Ссылка КАК Ссылка,
            |        КадровыйПереводНачисления.Начисление КАК Начисление,
            |        КадровыйПереводНачисления.Размер КАК Размер,
            |        КадровыйПереводНачисления.Ссылка.Сотрудник КАК Сотрудник,
            |        КадровыйПереводНачисления.Ссылка.ФизическоеЛицо КАК ФизическоеЛицо,
            |        КадровыйПереводНачисления.Ссылка.ДатаНачала КАК ДатаНачала,
            |        КадровыйПереводНачисления.НомерСтроки КАК НомерСтроки
            |    ИЗ
            |        Документ.КадровыйПеревод.Начисления КАК КадровыйПереводНачисления
            |    ГДЕ
            |        КадровыйПереводНачисления.Ссылка = &Ссылка
            |        И (КадровыйПереводНачисления.Начисление.Наименование ПОДОБНО ""%клад%""
            |                ИЛИ КадровыйПереводНачисления.Начисление.Наименование ПОДОБНО ""%плата по часовому тарифу%""
            |                ИЛИ КадровыйПереводНачисления.Начисление.Наименование ПОДОБНО ""%сложность%"")
            |    
            |    УПОРЯДОЧИТЬ ПО
            |        НомерСтроки УБЫВ) КАК КадровыйПеревод
            |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            |            ДокументыФизическихЛицСрезПоследних.Серия КАК Серия,
            |            ДокументыФизическихЛицСрезПоследних.Номер КАК Номер,
            |            ДокументыФизическихЛицСрезПоследних.СрокДействия КАК СрокДействия,
            |            ДокументыФизическихЛицСрезПоследних.КемВыдан КАК КемВыдан,
            |            ДокументыФизическихЛицСрезПоследних.КодПодразделения КАК КодПодразделения,
            |            ДокументыФизическихЛицСрезПоследних.Физлицо КАК Физлицо,
            |            ДокументыФизическихЛицСрезПоследних.Представление КАК Представление,
            |            ДокументыФизическихЛицСрезПоследних.ВидДокумента КАК ВидДокумента,
            |            ДокументыФизическихЛицСрезПоследних.ДатаВыдачи КАК ДатаВыдачи
            |        ИЗ
            |            РегистрСведений.ДокументыФизическихЛиц.СрезПоследних КАК ДокументыФизическихЛицСрезПоследних) КАК ДокументыФизическихЛиц
            |        ПО КадровыйПеревод.ФизическоеЛицо = ДокументыФизическихЛиц.Физлицо
            |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            |            ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.НомерДоговораКонтракта КАК НомерДоговораКонтракта,
            |            ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.ДатаДоговораКонтракта КАК ДатаДоговораКонтракта,
            |            ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.Сотрудник КАК Сотрудник
            |        ИЗ
            |            РегистрСведений.ОсновныеДанныеКонтрактаДоговораСотрудника.СрезПоследних КАК ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних) КАК ОсновныеДанныеКонтрактаДоговораСотрудника
            |        ПО КадровыйПеревод.Сотрудник = ОсновныеДанныеКонтрактаДоговораСотрудника.Сотрудник
            |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            |            ГрафикРаботыСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
            |            ГрафикРаботыСотрудниковСрезПоследних.ГрафикРаботы КАК ГрафикРаботы
            |        ИЗ
            |            РегистрСведений.ГрафикРаботыСотрудников.СрезПоследних(&Дата, ) КАК ГрафикРаботыСотрудниковСрезПоследних) КАК ГрафикРаботыСотрудников
            |        ПО КадровыйПеревод.Сотрудник = ГрафикРаботыСотрудников.Сотрудник
            |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            |            ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних.Сотрудник КАК Сотрудник,
            |            ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних.Значение КАК Значение
            |        ИЗ
            |            РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&Дата, ) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних
            |        ГДЕ
            |            ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних.Показатель.Наименование ПОДОБНО ""%Вредность%"") КАК РК
            |        ПО КадровыйПеревод.Сотрудник = РК.Сотрудник
            |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            |            ОрганизацииКонтактнаяИнформация.Ссылка КАК Ссылка,
            |            ОрганизацииКонтактнаяИнформация.Представление КАК Представление
            |        ИЗ
            |            Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
            |        ГДЕ
            |            ОрганизацииКонтактнаяИнформация.Тип = &Тип
            |            И ОрганизацииКонтактнаяИнформация.Вид = &Вид) КАК КонтактнаяИнформация
            |        ПО КадровыйПеревод.Ссылка.Организация = КонтактнаяИнформация.Ссылка
            |ИТОГИ ПО
            |    Сотрудник
            |АВТОУПОРЯДОЧИВАНИЕ";
        
    КонецЕсли;
    
    Валюта = Справочники.Валюты.НайтиПоКоду("643");
    
    ВыборкаСотрудники = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Сотрудник");
    
    Пока ВыборкаСотрудники.Следующий() Цикл
        
        Если Не Первый     Тогда 
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); 
        КонецЕсли;
        
        ВыборкаСотрудник = ВыборкаСотрудники.Выбрать(); 
        Оклад=0;
        Сложность = 0;
        Пока ВыборкаСотрудник.Следующий() Цикл             
                
            Если Найти(ВыборкаСотрудник.Начисление,"клад")  ИЛИ Найти(ВыборкаСотрудник.Начисление,"плата по часовому тарифу") Тогда 
                    Оклад = ВыборкаСотрудник.Размер;
                КонецЕсли;                    
                
        Если Найти(ВыборкаСотрудник.Начисление,"сложность") Тогда
             Сложность = ВыборкаСотрудник.Размер;
        КонецЕсли;
                
            ОбластьМакета.Параметры.Заполнить(ВыборкаСотрудник);
            ОбластьМакета.Параметры.ТрудовойДоговор = ""+ВыборкаСотрудник.НомерДоговораКонтракта+" от "+Формат(ВыборкаСотрудник.ДатаДоговораКонтракта,"ДЛФ=Д")+"г.";
                        
            //Город Организации
            АдресаОрганизаций  = УправлениеКонтактнойИнформациейЗарплатаКадры.АдресаОрганизаций(ВыборкаСотрудник.СсылкаОрганизация);
            ОписаниеЮридическогоАдреса = УправлениеКонтактнойИнформациейЗарплатаКадры.АдресОрганизации(АдресаОрганизаций, ВыборкаСотрудник.СсылкаОрганизация, Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);
            СтруктураАдресаОрганизации = ЗарплатаКадры.СтруктураАдресаИзXML(ОписаниеЮридическогоАдреса.ЗначенияПолей, Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);
            ОбластьМакета.Параметры.Должность = ВыборкаСотрудник.Должность;
            ОбластьМакета.Параметры.Оклад = Оклад;
            ОбластьМакета.Параметры.Сложность = Сложность; 
            ОбластьМакета.Параметры.ОкладПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(Оклад,Валюта);
            ОбластьМакета.Параметры.РКПроцент = ВыборкаСотрудник.РКПроцент;            
            ОбластьМакета.Параметры.ФИОРаботника = ВыборкаСотрудник.ФизическоеЛицо;     
            ПаспортФИО = Строка(ВыборкаСотрудник.ВидДокумента)
                +", серия "
                +Строка(ВыборкаСотрудник.Серия)
                +", № "+Строка(ВыборкаСотрудник.Номер)
                +", выдан: "
                +Строка(Формат(ВыборкаСотрудник.ДатаВыдачи,"ДЛФ=Д"))
                +" "+Строка(ВыборкаСотрудник.КемВыдан)
                +", "
                +Строка(ВыборкаСотрудник.КодПодразделения);
            ОбластьМакета.Параметры.ПаспортФИО = ПаспортФИО;     
        
        КонецЦикла;
                    
        ТабДокумент.Вывести(ОбластьМакета); 
        
        Первый = Ложь; 
        

    КонецЦикла;
    Возврат ТабДокумент;     
    
Конецфункции
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. puzo50 15.08.24 07:34 Сейчас в теме
может из-за того, что "первые 1" ?
user1898973; +1 Ответить 1
3. user1898973 15.08.24 14:51 Сейчас в теме
Большое спасибо,все сработало
4. Vinzor 112 15.08.24 21:30 Сейчас в теме
Весь метод не читал, но присмотритесь к этому ЗУП-методу

ТекНачисления = КадровыйУчетРасширенный.ТекущиеНачисленияСотрудника(Сотрудник, ДатаПолученияДанных,,ложь);

Какие параметры передавать - разберётесь.
Получите назад коллекцию в виде соответствия, где ключ = Вид начисления, значение - сложная структура со всевозможными данными.
Обходите в цикле и тяните всё, что надо

В чем плюс этого: с релизами способы хранения данных в конфигурации о действующих начислениях могут меняться, и ваш оригинальный запрос и обход "упадут".
Метод, что я показал, упадёт самым последним :)
user1898973; +1 Ответить 1
5. user1898973 17.08.24 12:31 Сейчас в теме
(4) Спасибо за информацию
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот