|
Ошибка во внешней печатной форме | ☑ | ||
|---|---|---|---|---|
|
0
Katerina30
12.08.24
✎
09:26
|
Во Внешней Печатной форме Дополнительное соглашения Кадрового перевода Списком ,дублируются дополнительные соглашения на сотрудниковю.Прошу помощи
какая-то портянка программного кодаСформироватьТабличныйДокумент_Макет = Новый Соответствие; Если Не ЗначениеЗаполнено(МассивОбъектов) Тогда Возврат СформироватьТабличныйДокумент_Макет; КонецЕсли; ТабличныйДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет("ПФ_MXL_ИзменениеДолжности"); //ПервыйПриказ = Истина; Для Каждого ТекДокумент Из МассивОбъектов Цикл Если ТабличныйДокумент.ВысотаТаблицы > 0 Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; //Если ТабличныйДокумент.ВысотаТаблицы > 0 Тогда // ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); //КонецЕсли; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | КадровыйПеревод.Дата КАК ДатаДокумента, | КадровыйПеревод.Организация КАК Организация, | КадровыйПеревод.Должность КАК Должность, | КадровыйПеревод.КоличествоСтавок КАК КоличествоСтавок, | КадровыйПеревод.ДатаНачала КАК ДатаНачала, | КадровыйПеревод.ДатаОкончания КАК ДатаОкончания, | КадровыйПеревод.Сотрудник КАК Сотрудник, | КадровыйПеревод.ИзменитьПодразделениеИДолжность КАК ИзменитьПодразделениеИДолжность, | КадровыйПеревод.Подразделение КАК Подразделение, | КадровыйПеревод.РазрядКатегория КАК РазрядКатегория, | КадровыйПеревод.ИзменитьНачисления КАК ИзменитьНачисления, | КадровыйПеревод.ИзменитьГрафикРаботы КАК ИзменитьГрафикРаботы, | ВЫБОР | КОГДА КадровыйПеревод.Организация.ЮридическоеФизическоеЛицо = ЗНАЧЕНИЕ(Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо) | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК Поле1, | NULL КАК Поле2 |ПОМЕСТИТЬ ВТДанныеДокумента |ИЗ | Документ.КадровыйПеревод КАК КадровыйПеревод |ГДЕ | КадровыйПеревод.Ссылка = &Ссылка | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | КадровыйПереводСпискомСотрудники.Ссылка.Дата, | КадровыйПереводСпискомСотрудники.Ссылка.Организация, | КадровыйПереводСпискомСотрудники.Должность, | КадровыйПереводСпискомСотрудники.КоличествоСтавок, | КадровыйПереводСпискомСотрудники.ДатаНачала, | КадровыйПереводСпискомСотрудники.ДатаОкончания, | КадровыйПереводСпискомСотрудники.Сотрудник, | КадровыйПереводСпискомСотрудники.ИзменитьПодразделениеИДолжность, | КадровыйПереводСпискомСотрудники.Подразделение, | КадровыйПереводСпискомСотрудники.РазрядКатегория, | КадровыйПереводСпискомСотрудники.ИзменитьНачисления, | КадровыйПереводСпискомСотрудники.ИзменитьГрафикРаботы, | NULL, | ВЫБОР | КОГДА КадровыйПереводСпискомСотрудники.Ссылка.Организация.ЮридическоеФизическоеЛицо = ЗНАЧЕНИЕ(Перечисление.ЮридическоеФизическоеЛицо.ФизическоеЛицо) | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ |ИЗ | Документ.КадровыйПереводСписком.Сотрудники КАК КадровыйПереводСпискомСотрудники |ГДЕ | КадровыйПереводСпискомСотрудники.Ссылка = &Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТДанныеДокумента.Сотрудник КАК Сотрудник, | ДОБАВИТЬКДАТЕ(ВТДанныеДокумента.ДатаНачала, СЕКУНДА, -1) КАК Период |ПОМЕСТИТЬ ВТСотрудникиПериоды |ИЗ | ВТДанныеДокумента КАК ВТДанныеДокумента |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СУММА(ВЫБОР | КОГДА КадровыйПереводПоказатели.Показатель В (&СписокПоказателейОклад) | ТОГДА КадровыйПереводПоказатели.Значение | ИНАЧЕ 0 | КОНЕЦ) КАК СуммаОклад, | СУММА(ВЫБОР | КОГДА КадровыйПереводПоказатели.Показатель В (&СписокПоказателейНадбавка) | ТОГДА КадровыйПереводПоказатели.Значение | ИНАЧЕ 0 | КОНЕЦ) КАК СуммаНадбавки |ПОМЕСТИТЬ ВТНачисленияПоказатели |ИЗ | Документ.КадровыйПеревод.Показатели КАК КадровыйПереводПоказатели |ГДЕ | КадровыйПереводПоказатели.Ссылка = &Ссылка | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВЫБОР | КОГДА КадровыйПереводСпискомПоказатели.Показатель В (&СписокПоказателейОклад) | ТОГДА КадровыйПереводСпискомПоказатели.Значение | ИНАЧЕ 0 | КОНЕЦ, | ВЫБОР | КОГДА КадровыйПереводСпискомПоказатели.Показатель В (&СписокПоказателейНадбавка) | ТОГДА КадровыйПереводСпискомПоказатели.Значение | ИНАЧЕ 0 | КОНЕЦ |ИЗ | Документ.КадровыйПереводСписком.Показатели КАК КадровыйПереводСпискомПоказатели |ГДЕ | КадровыйПереводСпискомПоказатели.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка",ТекДокумент); Запрос.УстановитьПараметр("ДатаДокумента",ТекДокумент.Дата); СписокПоказателейОклад = Новый СписокЗначений; Попытка СписокПоказателейОклад.Добавить(Справочники.ПоказателиРасчетаЗарплаты.Оклад); Исключение КонецПопытки; Попытка СписокПоказателейОклад.Добавить(Справочники.ПоказателиРасчетаЗарплаты.ОкладЗаКлассныйЧин); Исключение КонецПопытки; Попытка СписокПоказателейОклад.Добавить(Справочники.ПоказателиРасчетаЗарплаты.ОкладПоДолжности); Исключение КонецПопытки; Запрос.УстановитьПараметр("СписокПоказателейОклад",СписокПоказателейОклад); СписокПоказателейНадбавка = Новый СписокЗначений; Попытка СписокПоказателейНадбавка.Добавить(Справочники.ПоказателиРасчетаЗарплаты.ПроцентНадбавкиЗаВредность); Исключение КонецПопытки; Запрос.УстановитьПараметр("СписокПоказателейНадбавка",СписокПоказателейНадбавка); РезультатЗапроса = Запрос.Выполнить(); // Получение кадровых данных сотрудника. ОписательВременныхТаблиц = КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеСотрудников( Запрос.МенеджерВременныхТаблиц, "ВТСотрудникиПериоды"); КадровыеДанные = "ФИОПолные,ФамилияИО, |АдресПоПропискеПредставление,АдресМестаПроживанияПредставление,ТелефонМобильныйПредставление, |ДокументПредставление,Пол,Должность,ДатаРождения,Подразделение,ДатаРождения,ИНН,СтраховойНомерПФР"; КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(ОписательВременныхТаблиц, Истина, КадровыеДанные); Запрос.Текст = "ВЫБРАТЬ | ДанныеДокумента.ДатаДокумента КАК ДатаДокумента, | ДанныеДокумента.Организация КАК Организация, | ДанныеДокумента.Должность КАК СотрудникДолжность, | ДанныеДокумента.ИзменитьПодразделениеИДолжность КАК ИзменитьПодразделениеИДолжность, | ДанныеДокумента.Подразделение КАК СотрудникПодразделение, | ДанныеДокумента.РазрядКатегория КАК РазрядКатегория, | ДанныеДокумента.КоличествоСтавок КАК КоличествоСтавок, | ДанныеДокумента.ДатаНачала КАК ДатаНачала, | ДанныеДокумента.ДатаОкончания КАК ДатаОкончания, | КадровыеДанныеСотрудников.ФамилияИО КАК СотрудникФамилияИО, | КадровыеДанныеСотрудников.Пол КАК СотрудникПол, | КадровыеДанныеСотрудников.АдресПоПропискеПредставление КАК СотрудникАдресПоПропискеПредставление, | КадровыеДанныеСотрудников.АдресМестаПроживанияПредставление КАК СотрудникАдресМестаПроживанияПредставление, | КадровыеДанныеСотрудников.ТелефонМобильныйПредставление КАК ТелефонМобильный, | КадровыеДанныеСотрудников.ДокументПредставление КАК СотрудникДокументПредставление, | КадровыеДанныеСотрудников.ДатаРождения КАК СотрудникДатаРождения, | КадровыеДанныеСотрудников.ИНН КАК СотрудникИНН, | КадровыеДанныеСотрудников.Подразделение КАК СотрудникПодразделениеСтарое, | КадровыеДанныеСотрудников.Должность КАК СотрудникДолжностьСтарая, | КадровыеДанныеСотрудников.СтраховойНомерПФР КАК СотрудникСтраховойНомерПФР, | КадровыеДанныеСотрудников.ФИОПолные КАК СотрудникФИОПолные, | ЕСТЬNULL(ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.НомерДоговораКонтракта, ПриемНаРаботу.ТрудовойДоговорНомер) КАК НомерДоговораКонтракта, | ЕСТЬNULL(ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.ДатаДоговораКонтракта, ПриемНаРаботу.ТрудовойДоговорДата) КАК ДатаДоговораКонтракта, | ДанныеДокумента.ИзменитьНачисления КАК ИзменитьНачисления, | ДанныеДокумента.ИзменитьГрафикРаботы КАК ИзменитьГрафикРаботы, | ЕСТЬNULL(НачисленияПоказатели.СуммаОклад, 0) КАК СуммаОклад, | ЕСТЬNULL(НачисленияПоказатели.СуммаНадбавки, 0) КАК СуммаНадбавки, | ПодразделенияОрганизацийДополнительныеРеквизиты.Значение КАК ГородПодразделения, | ОрганизацииДополнительныеРеквизиты.Значение КАК ОснованиеДляРуководителя |ИЗ | ВТДанныеДокумента КАК ДанныеДокумента | ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников | ПО ДанныеДокумента.Сотрудник = КадровыеДанныеСотрудников.Сотрудник | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеДанныеКонтрактаДоговораСотрудника.СрезПоследних(&ДатаДокумента, ) КАК ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних | ПО ДанныеДокумента.Сотрудник = ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.Сотрудник | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботу КАК ПриемНаРаботу | ПО ДанныеДокумента.Сотрудник = ПриемНаРаботу.Сотрудник | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций.ДополнительныеРеквизиты КАК ПодразделенияОрганизацийДополнительныеРеквизиты | ПО ДанныеДокумента.Подразделение = ПодразделенияОрганизацийДополнительныеРеквизиты.Ссылка | И (ПодразделенияОрганизацийДополнительныеРеквизиты.Свойство = &СвойствоГород) | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.ДополнительныеРеквизиты КАК ОрганизацииДополнительныеРеквизиты | ПО ДанныеДокумента.Организация = ОрганизацииДополнительныеРеквизиты.Ссылка | И (ОрганизацииДополнительныеРеквизиты.Свойство = &СвойствоОснованиеДляРуководителя), | ВТНачисленияПоказатели КАК НачисленияПоказатели"; Запрос.УстановитьПараметр("СвойствоГород", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Город")); Запрос.УстановитьПараметр("СвойствоОснованиеДляРуководителя", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Основание для руководителя")); РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗапроса = РезультатЗапроса.Выбрать(); Пока ВыборкаЗапроса.Следующий()Цикл //Сведения об организации СписокПоказателей = Новый Массив; СписокПоказателей.Добавить("НаимЮЛПол"); СписокПоказателей.Добавить("ИННЮЛ"); СписокПоказателей.Добавить("КППЮЛ"); СписокПоказателей.Добавить("ФИОРук"); СписокПоказателей.Добавить("ДолжнРук"); СписокПоказателей.Добавить("ПолРук"); СписокПоказателей.Добавить("ТелОрганизации"); СтруктураСведенийОбОрганизации = ЗарплатаКадрыБазовый.ПолучитьСведенияОбОрганизации(ВыборкаЗапроса.Организация,ВыборкаЗапроса.ДатаДокумента,СписокПоказателей); АдресаОрганизаций = УправлениеКонтактнойИнформациейЗарплатаКадры.АдресаОрганизаций(ВыборкаЗапроса.Организация); ОписаниеЮридическогоАдреса = УправлениеКонтактнойИнформациейЗарплатаКадры.АдресОрганизации( АдресаОрганизаций, ВыборкаЗапроса.Организация, Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации); ОписаниеФактическогоАдреса = УправлениеКонтактнойИнформациейЗарплатаКадры.АдресОрганизации( АдресаОрганизаций, ВыборкаЗапроса.Организация, Справочники.ВидыКонтактнойИнформации.ФактАдресОрганизации); //Выводим шапку Область = Макет.ПолучитьОбласть("Шапка"); Область.Параметры.ДатаНачала = Формат(ВыборкаЗапроса.ДатаНачала,"ДФ='dd ММММ yyyy ''г.'''"); Область.Параметры.НомерДоговораКонтракта = ВыборкаЗапроса.НомерДоговораКонтракта; Область.Параметры.ДатаДоговораКонтракта = Формат(ВыборкаЗапроса.ДатаДоговораКонтракта,"ДФ='dd ММММ yyyy ''г.'''"); Область.Параметры.ОрганизацияНаименованиеПолное = СтруктураСведенийОбОрганизации.НаимЮЛПол; Область.Параметры.СотрудникФИОПолные = ВыборкаЗапроса.СотрудникФИОПолные; ТабличныйДокумент.Вывести(Область); // Руководитель РезультатСклонения = ""; Если ФизическиеЛицаЗарплатаКадры.Просклонять(Строка(СтруктураСведенийОбОрганизации.ФИОРук), 2, РезультатСклонения, СтруктураСведенийОбОрганизации.ПолРук) Тогда РуководительФИОПолныеВПадежеР = РезультатСклонения; КонецЕсли; РезультатСклонения = ""; Если ФизическиеЛицаЗарплатаКадры.Просклонять(Строка(СтруктураСведенийОбОрганизации.ФИОРук), 3, РезультатСклонения, СтруктураСведенийОбОрганизации.ПолРук) Тогда РуководительФИОПолныеВПадежеД = РезультатСклонения; КонецЕсли; РуководительДолжностьВПадежеР = СклонениеПредставленийОбъектов.ПросклонятьПредставление(Нрег(СтруктураСведенийОбОрганизации.ДолжнРук.Наименование), 2); РуководительДолжностьВПадежеД = СклонениеПредставленийОбъектов.ПросклонятьПредставление(Нрег(СтруктураСведенийОбОрганизации.ДолжнРук.Наименование), 3); РуководительДолжностьВПадежеД = ВРег(Лев(РуководительДолжностьВПадежеД,1)) + НРег(Сред(РуководительДолжностьВПадежеД,2)); НомерПункта = 0; //Изменение должности или подразделения Область = Макет.ПолучитьОбласть("СменаДолжности"); Область.Параметры.НомерПункта = НомерПункта + 1; Область.Параметры.НомерПункта1 = НомерПункта +2; Область.Параметры.СотрудникДолжность = ВыборкаЗапроса.СотрудникДолжность; Область.Параметры.СуммаОклад = ВыборкаЗапроса.СуммаОклад; Валюта = Справочники.Валюты.НайтиПоКоду("643"); Если Валюта = Неопределено ИЛИ Валюта = Справочники.Валюты.ПустаяСсылка() Тогда Сообщить("Не найдена валюта по коду: ""643"""); КонецЕсли; Область.Параметры.СуммаОкладПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(ВыборкаЗапроса.СуммаОклад, Валюта, Ложь); Если ВыборкаЗапроса.СуммаНадбавки > 0 Тогда Область.Параметры.СуммаНадбавки = ВыборкаЗапроса.СуммаНадбавки; Иначе Область.Параметры.СуммаНадбавки = 0; КонецЕсли; Область.Параметры.НомерДоговораКонтракта = ВыборкаЗапроса.НомерДоговораКонтракта; Область.Параметры.ДатаДоговораКонтракта = Формат(ВыборкаЗапроса.ДатаДоговораКонтракта,"ДФ='dd ММММ yyyy ''г.'''"); ТабличныйДокумент.Вывести(Область); //Выводим подвал //Если ВыборкаЗапроса.ИзменитьНачисления Тогда Область = Макет.ПолучитьОбласть("Подвал"); ЗаполнитьЗначенияСвойств(Область.Параметры,ВыборкаЗапроса); Область.Параметры.НомерПункта = НомерПункта + 3; Область.Параметры.НомерПункта1 = НомерПункта + 4; Область.Параметры.ДатаДоговораКонтракта = Формат(ВыборкаЗапроса.ДатаДоговораКонтракта,"ДФ='dd ММММ yyyy ''г.'''"); Область.Параметры.СотрудникДатаРождения = Формат(ВыборкаЗапроса.СотрудникДатаРождения,"ДФ='dd ММММ yyyy ''г.'''"); Область.Параметры.ДатаНачала = Формат(ВыборкаЗапроса.ДатаНачала,"ДФ='dd ММММ yyyy ''г.'''"); Область.Параметры.ОрганизацияНаименованиеПолное = СтруктураСведенийОбОрганизации.НаимЮЛПол; Область.Параметры.ИНН = СтруктураСведенийОбОрганизации.ИННЮЛ; Область.Параметры.КПП = СтруктураСведенийОбОрганизации.КППЮЛ; АдресаОрганизаций = УправлениеКонтактнойИнформациейЗарплатаКадры.АдресаОрганизаций(ВыборкаЗапроса.Организация); ОписаниеЮридическогоАдреса = УправлениеКонтактнойИнформациейЗарплатаКадры.АдресОрганизации( АдресаОрганизаций, ВыборкаЗапроса.Организация, Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации); Область.Параметры.ОрганизацияАдресЮридический = ОписаниеЮридическогоАдреса.Представление; ТабличныйДокумент.Вывести(Область); КонецЦикла; КонецЦикла; Возврат ТабличныйДокумент; |
|||
|
1
Волшебник
12.08.24
✎
09:26
|
(0) У Вас совесть есть?
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |