Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

БП 3.0 ошибка при выводе внешней печатной формы

БП 3.0 ошибка при выводе внешней печатной формы
Я
   skupidom
 
21.10.19 - 12:10
Добавил внешнюю печатную форму в доп. отчеты обработки, печать из карточки сотрудника,
ошибка: {ОбщийМодуль.УправлениеПечатью.Модуль(2113)}: При формировании печатной формы "МакетWORD" возникла ошибка.
Обратитесь к администратору. ВызватьИсключение ТекстСообщенияОбОшибке;

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

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

//&НаСервере
//Функция ПолучитьМакетWordНаСервере()
//    
//    ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
//    
//    Возврат ОбработкаОбъект.ПолучитьМакет("МакетWORD");
//    
//КонецФункции

&НаСервере
Функция ПолучитьДанныеМакета()
    
    ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
    
    АдресХранилища = Новый УникальныйИдентификатор();
    Макет          = ОбработкаОбъект.ПолучитьМакет("МакетWORD");
    
    ВременныйФайл = ПолучитьИмяВременногоФайла("doc");
    Макет.Записать(ВременныйФайл);
    
    Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ВременныйФайл),АдресХранилища);
    УдалитьФайлы(ВременныйФайл);
    
    Возврат Адрес;
    
КонецФункции

&НаКлиенте
Процедура Распечатать(Команда)
    
    РаспечататьНаСервере();
    
    Пользователь = ПользователиКлиентСервер.ТекущийПользователь();
    Каталог = КаталогВременныхФайлов();
    Каталог = ?(Прав(Каталог,1) = "\", Каталог, Каталог+"\");
    ПолноеИмяФайла = Каталог+"Договор" + ".doc";
    
    Попытка
        Индификатор = ПолучитьДанныеМакета();
        МакетДоговора = ПолучитьИзВременногоХранилища(Индификатор);
        МакетДоговора.Записать(ПолноеИмяФайла);      
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
    Попытка
        MSWord = Новый COMОбъект("Word.Application");
    Исключение
        Сообщить("Ошибка при попытке создать объект ""MS Word""!" + Символы.ПС +
        "Возможно приложение ""MS Word"" не установлено или установлено неправильно.", СтатусСообщения.Внимание);
    КонецПопытки;
    
    MSWord.Documents.Open(ПолноеИмяФайла);
    
    Попытка
        
        Если ЗначениеЗаполнено(Объект.ТЧДанныеТрудовогоДоговора) Тогда
            
            Документ = MSWord.Application.Documents(1);
            Документ.Activate();
            
            НомерДоговора = "";
            ДатаДоговора  = "";
            ПолноеНаименованиеОрганизации = "";
            Сотрудник     = "";
            ДолжностьСотрудника = "";
            МестоРаботы = "";
            ДатаУвольнения = "";
            ДатаНачалаРабота = "";
            Оклад = "";
            Руководитель = "";
            ДолжностьРуководителя = "";
            ОрганизацияНаименованиеСокращенное = "";
            ИННСотрудника = "";
            АдресОрг      = "";
            ИННЮЛ         = "";
            КППЮЛ         = "";
            СНИЛССотрудника = "";
            АдресРегистрацииСотрудника = "";
            ПаспортСотрудника = "";
            КодПодразделения = "";
            Для Каждого Стр Из Объект.ТЧДанныеТрудовогоДоговора Цикл
                НомерДоговора = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СокрЛП(Стр.НомерДоговора),Истина,Истина);
                ДатаДоговора  = СокрЛП(Стр.ДатаДоговора);
                ПолноеНаименованиеОрганизации = СокрЛП(Стр.ПолноеНаименованиеОрганизации);
                Сотрудник = СокрЛП(Стр.Сотрудник);
                СНИЛССотрудника = СокрЛП(Стр.СНИЛССотрудника);
                Должность = СокрЛП(Стр.Должность);
                МестоРаботы = СокрЛП(Стр.МестоРаботы);
                ДатаУвольнения = СокрЛП(Стр.ДатаУвольнения);
                ДатаНачалаРабота = СокрЛП(Стр.ДатаНачалаРабота);
                Оклад = Стр.Оклад;
                Руководитель = СокрЛП(Стр.Руководитель);
                ДолжностьРуководителя = СокрЛП(Стр.ДолжностьРуководителя);
                ОрганизацияНаименованиеСокращенное = СокрЛП(Стр.ОрганизацияНаименованиеСокращенное);
                ИННСотрудника = СокрЛП(Стр.ИННСотрудника);
                АдресОрг      = СокрЛП(Стр.АдресОрг);
                ИННЮЛ            = СокрЛП(Стр.ИННЮЛ);
                КППЮЛ            = СокрЛП(Стр.КППЮЛ);
                СНИЛССотрудника = СокрЛП(Стр.СНИЛССотрудника);
                АдресРегистрацииСотрудника = СокрЛП(Стр.АдресРегистрацииСотрудника);
                ПаспортСотрудника = СокрЛП(Стр.ПаспортСотрудника);
                КодПодразделения  = СокрЛП(Стр.КодПодразделения);
            КонецЦикла;
            
            // Поиск и замена маркеров
            Замена = Документ.Content.Find;             
            Замена.Execute("<НомерДоговора>",Ложь,Истина,Ложь,,,Истина,,Ложь,НомерДоговора);
            
            Замена = Документ.Content.Find;             
            Замена.Execute("<ДатаДоговора>",Ложь,Истина,Ложь,,,Истина,,Ложь,ДатаДоговора);
            
            Замена = Документ.Content.Find;             
            Замена.Execute("<ПолноеНаименованиеОрганизации>",Ложь,Истина,Ложь,,,Истина,,Ложь,ПолноеНаименованиеОрганизации);
            
            Замена = Документ.Content.Find;             
            Замена.Execute("<Сотрудник>",Ложь,Истина,Ложь,,,Истина,,Ложь,Сотрудник);
            
            Замена = Документ.Content.Find;
            Замена.Execute("<СотрудникПодвал>",Ложь,Истина,Ложь,,,Истина,,Ложь,Сотрудник);
            
            Замена = Документ.Content.Find;  
            Замена.Execute("<ДолжностьСотрудника>",Ложь,Истина,Ложь,,,Истина,,Ложь,Должность);
            
            Замена = Документ.Content.Find;             
            Замена.Execute("<МестоРаботы>",Ложь,Истина,Ложь,,,Истина,,Ложь,МестоРаботы);
            
            Замена = Документ.Content.Find;    
            ПериодРаботы = ?(НЕ ЗначениеЗаполнено(ДатаУвольнения),"на определенный срок", "на неопределенный срок");
            Замена.Execute("<ПериодРаботы>",Ложь,Истина,Ложь,,,Истина,,Ложь,Новый ФорматированнаяСтрока(ПериодРаботы,Новый Шрифт(,,Истина,Истина)));
            
            Замена = Документ.Content.Find;  
            Замена.Execute("<ДатаНачалаРабота>",Ложь,Истина,Ложь,,,Истина,,Ложь,ДатаНачалаРабота);
            
            Замена = Документ.Content.Find;  
            ДатаУвольнения  = ?(ЗначениеЗаполнено(ДатаУвольнения),ДатаУвольнения,"не определен");
            Замена.Execute("<ДатаУвольнения>",Ложь,Истина,Ложь,,,Истина,,Ложь,ДатаУвольнения);
            
            Замена = Документ.Content.Find;
            Замена.Execute("<Оклад>",Ложь,Истина,Ложь,,,Истина,,Ложь,Оклад);
            
            Замена = Документ.Content.Find;
            ОкладПрописью = СокрЛП(ЧислоПрописью(Оклад, "Л = ru_RU; ДП = Ложь",", , ,, , , , , 0"));
            Замена.Execute("<ОкладПрописью>",Ложь,Истина,Ложь,,,Истина,,Ложь,ОкладПрописью);
            
            Замена = Документ.Content.Find;             
            Замена.Execute("<Руководитель>",Ложь,Истина,Ложь,,,Истина,,Ложь,СокрЛП(Руководитель));
            
            Замена = Документ.Content.Find;
            Замена.Execute("<ДоверенностьУстав>",Ложь,Истина,Ложь,,,Истина,,Ложь,"Устава");
            
            Замена = Документ.Content.Find;             
            Замена.Execute("<ДолжностьРуководителя>",Ложь,Истина,Ложь,,,Истина,,Ложь,СокрЛП(ДолжностьРуководителя));      
            
            Замена = Документ.Content.Find;             
            Замена.Execute("<КраткоеНаименованиеОрганизации>",Ложь,Истина,Ложь,,,Истина,,Ложь,ОрганизацияНаименованиеСокращенное);
            
            Замена = Документ.Content.Find;
            Замена.Execute("<КраткоеНаименованиеОрганизациидва>",Ложь,Истина,Ложь,,,Истина,,Ложь,ОрганизацияНаименованиеСокращенное);
            
            Замена = Документ.Content.Find;
            Замена.Execute("<КраткоеНаименованиеОрганизациитри>",Ложь,Истина,Ложь,,,Истина,,Ложь,ОрганизацияНаименованиеСокращенное);
            
            Замена = Документ.Content.Find; // ?             
            Замена.Execute("<АдресОрганизации>",Ложь,Истина,Ложь,,,Истина,,Ложь,АдресОрг);
            
            Замена = Документ.Content.Find;             
            Замена.Execute("<ОГРН>",Ложь,Истина,Ложь,,,Истина,,Ложь,"");
            
            Замена = Документ.Content.Find;             
            Замена.Execute("<ИНН>",Ложь,Истина,Ложь,,,Истина,,Ложь,ИННЮЛ);
            
            Замена = Документ.Content.Find;             
            Замена.Execute("<КПП>",Ложь,Истина,Ложь,,,Истина,,Ложь,КППЮЛ);
            
            Замена = Документ.Content.Find;             
            Замена.Execute("<ИННСотрудника>",Ложь,Истина,Ложь,,,Истина,,Ложь,ИННСотрудника);
            
            Замена = Документ.Content.Find;
            Замена.Execute("<Паспорт>",Ложь,Истина,Ложь,,,Истина,,Ложь,ПаспортСотрудника);
            
            Замена = Документ.Content.Find;  
            Замена.Execute("<КодПодразделения>",Ложь,Истина,Ложь,,,Истина,,Ложь,КодПодразделения);
            
            Замена = Документ.Content.Find;
            Замена.Execute("<АдресСотрудника>",Ложь,Истина,Ложь,,,Истина,,Ложь,АдресРегистрацииСотрудника);
            
            Замена = Документ.Content.Find;             
            Замена.Execute("<ПФРСотрудника>",Ложь,Истина,Ложь,,,Истина,,Ложь,СНИЛССотрудника);
            
            Объект.ТЧДанныеТрудовогоДоговора.Очистить();
            
        КонецЕсли;
        
    Исключение
        
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = ОписаниеОшибки();
        Сообщение.Сообщить();
        
        MSWord.Application.Quit();
        
        Возврат;
        
    КонецПопытки;
    
    MSWord.Application.Visible = Истина;
    MSWord.Activate();
      
КонецПроцедуры

В модуле обработки:
#Область СведенияОбОбработке

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

Возврат Команды;

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

Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Справочник.Сотрудники");
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");    
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Трудовой договор с сотрудником ВНЕШНИЙ");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ИСТИНА);
    ПараметрыРегистрации.Вставить("Версия", "1.0");    
    ПараметрыРегистрации.Вставить("Информация", "Трудовой договор с сотрудником ВНЕШНИЙ");  
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Трудовой договор с сотрудником (внешний)","ТрудовойДоговорССотрудником","ВызовСерверногоМетода",Истина,"МакетWORD");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры

Процедура Печать() Экспорт
            
КонецПроцедуры // Печать()

#КонецОбласти

&НаСервере
Функция ПолучитьДанныеДляПечати() Экспорт
           
    ЗапросШапка = Новый Запрос;
    ЗапросШапка.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    |    ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
    |    ОтветственныеЛицаОрганизацийСрезПоследних.Должность КАК Должность,
    |    ОтветственныеЛицаОрганизацийСрезПоследних.СтруктурнаяЕдиница КАК Организация,
    |    ФИОФизическихЛицСрезПоследних.Фамилия КАК Фамилия,
    |    ФИОФизическихЛицСрезПоследних.Имя КАК Имя,
    |    ФИОФизическихЛицСрезПоследних.Отчество КАК Отчество
    |ПОМЕСТИТЬ ВТ_ОтветственноеЛицо
    |ИЗ
    |    РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних(
    |            ,
    |            СтруктурнаяЕдиница = &Организация
    |                И ОтветственноеЛицо = ЗНАЧЕНИЕ(Перечисление.ОтветственныеЛицаОрганизаций.Руководитель)) КАК ОтветственныеЛицаОрганизацийСрезПоследних
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизическихЛиц.СрезПоследних КАК ФИОФизическихЛицСрезПоследних
    |        ПО ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо = ФИОФизическихЛицСрезПоследних.ФизическоеЛицо
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    |    ВТ_ОтветственноеЛицо.ФизическоеЛицо КАК Руководитель,
    |    ВТ_ОтветственноеЛицо.Фамилия КАК Фамилия,
    |    ВТ_ОтветственноеЛицо.Имя КАК Имя,
    |    ВТ_ОтветственноеЛицо.Отчество КАК Отчество,
    |    Сотрудники.ГоловнаяОрганизация КАК Организация,
    |    Сотрудники.ГоловнаяОрганизация.Наименование КАК НаименованиеОрганизации,
    |    Сотрудники.ГоловнаяОрганизация.НаименованиеПолное КАК ПолноеНаименованиеОрганизации,
    |    Сотрудники.Наименование КАК Сотрудник,
    |    ВЫБОР
    |        КОГДА ТекущиеКадровыеДанныеСотрудников.ТекущийВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
    |            ТОГДА ""по основной работе.""
    |        ИНАЧЕ ""по совместительству.""
    |    КОНЕЦ КАК МестоРаботы,
    |    ТекущиеКадровыеДанныеСотрудников.ТекущаяДолжность КАК Должность,
    |    ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение КАК Подразделение,
    |    ТекущаяТарифнаяСтавкаСотрудников.ТекущаяТарифнаяСтавка КАК Оклад,
    |    Сотрудники.ФизическоеЛицо.ИНН КАК ИННСотрудника,
    |    ТекущиеКадровыеДанныеСотрудников.ДатаПриема КАК ДатаНачалаРабота,
    |    ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения КАК ДатаУвольнения,
    |    Сотрудники.Ссылка КАК СотрудникСсылка,
    |    ВТ_ОтветственноеЛицо.Должность КАК ДолжностьРуководителя,
    |    ТекущиеКадровыеДанныеСотрудников.ТекущаяОрганизация.НаименованиеСокращенное КАК ОрганизацияНаименованиеСокращенное,
    |    ВТ_ОтветственноеЛицо.Организация КАК ОрганизацияПовтор,
    |    КадроваяИсторияСотрудниковСрезПоследних.Регистратор.Номер КАК НомерДоговора,
    |    КадроваяИсторияСотрудниковСрезПоследних.Регистратор.Дата КАК ДатаДоговора
    |ИЗ
    |    Справочник.Сотрудники КАК Сотрудники
    |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОтветственноеЛицо КАК ВТ_ОтветственноеЛицо
    |        ПО Сотрудники.ГоловнаяОрганизация = ВТ_ОтветственноеЛицо.Организация
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
    |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущаяТарифнаяСтавкаСотрудников КАК ТекущаяТарифнаяСтавкаСотрудников
    |            ПО ТекущиеКадровыеДанныеСотрудников.Сотрудник = ТекущаяТарифнаяСтавкаСотрудников.Сотрудник
    |                И ТекущиеКадровыеДанныеСотрудников.ГоловнаяОрганизация = ТекущаяТарифнаяСтавкаСотрудников.ГоловнаяОрганизация
    |                И ТекущиеКадровыеДанныеСотрудников.ТекущаяОрганизация = ТекущаяТарифнаяСтавкаСотрудников.ТекущаяОрганизация
    |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&Период, ВидСобытия В (&СписокВидовСобытий)) КАК КадроваяИсторияСотрудниковСрезПоследних
    |            ПО ТекущиеКадровыеДанныеСотрудников.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник
    |                И ТекущиеКадровыеДанныеСотрудников.ТекущаяОрганизация = КадроваяИсторияСотрудниковСрезПоследних.Организация
    |                И ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение = КадроваяИсторияСотрудниковСрезПоследних.Подразделение
    |                И ТекущиеКадровыеДанныеСотрудников.ТекущаяДолжность = КадроваяИсторияСотрудниковСрезПоследних.Должность
    |        ПО Сотрудники.Ссылка = ТекущиеКадровыеДанныеСотрудников.Сотрудник
    |            И Сотрудники.ГоловнаяОрганизация = ТекущиеКадровыеДанныеСотрудников.ГоловнаяОрганизация
    |ГДЕ
    |    Сотрудники.Ссылка = &Ссылка";
    
    ПСписокВидовСобытий = Новый СписокЗначений;
    ПСписокВидовСобытий.Добавить(Перечисления.ВидыКадровыхСобытий.Прием);
    ПСписокВидовСобытий.Добавить(Перечисления.ВидыКадровыхСобытий.Перемещение);
    
    ЗапросШапка.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
    ЗапросШапка.УстановитьПараметр("Организация", СсылкаНаОбъект.ГоловнаяОрганизация);
    ЗапросШапка.УстановитьПараметр("Период", НачалоДня(ТекущаяДата()));
    ЗапросШапка.УстановитьПараметр("СписокВидовСобытий",ПСписокВидовСобытий);
    
    ТЗТД = ЗапросШапка.Выполнить().Выгрузить();
    
    Возврат ТЗТД;
    
КонецФункции
 
 
   skupidom
 
1 - 21.10.19 - 12:10
возможно не хватает процедуры Печать, но как ее правильно прописать для этой обработки ?

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.