Имя: Пароль:
1C
1С v8
Как мне правильно написать, чтобы вывести в отчет даннные по вду занятости
0 ЮлияКорж
 
06.03.12
12:54
Как правильно дописать запрос, чтобы выдать в отчете вид занятости
 Функция СформироватьЗапросДляПечати(Режим)

   Запрос = Новый Запрос;

   // Установим параметры запроса
   Запрос.УстановитьПараметр("ДокументСсылка",    Ссылка);
   Запрос.УстановитьПараметр("Руководитель",    Перечисления.ОтветственныеЛицаОрганизаций.Руководитель);
   Запрос.УстановитьПараметр("ДатаДокумента",    Дата);

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

   ИначеЕсли Режим = "ПоТабличнойЧастиДокумента" Тогда

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

   Иначе
       Возврат Неопределено;    
       
   КонецЕсли;
   
   Возврат Запрос.Выполнить();
1 Apokalipsec
 
06.03.12
13:09
Сотрудник в этом документ в табличной части, соответственно в первом запросе левое соединение к тч и связь по ссылке.
Во втором просто Док.Сотрудник.ВидЗанятости