Имя: Пароль:
1C
1С v8
Проблема с запросом не выводит отдельные данные в отчет
0 ЮлияКорж
 
13.03.12
12:50
Хочу вывести в отчет если заполнено поле оклад Показатель1 или ТарифныйРазряд1 если заполнено поле разряд,прописую в запросе                
               |ВЫБОР
       | КОГДА Начисления.Показатель1 ЕСТЬ NULL
       | ТОГДА Начисления.ТарифныйРазряд1
       | ИНАЧЕ 0
       | КОНЕЦ КАК ОкладТарифнаяСтавка,
и оно мне формирует отчет,выводит другие данные,ОкладТарифнаяСтавка не выводит
1 asady
 
13.03.12
12:51
(0) значит там не нул
2 ЮлияКорж
 
13.03.12
12:52
Так он должен вывести оклад,а в противном случае разряд
3 Cube
 
13.03.12
12:59
(2) Весь запрос покажи...
4 hhhh
 
13.03.12
13:15
(2) вообще-то у вас написано не оклад тут, а

ИНАЧЕ 0
5 ЮлияКорж
 
13.03.12
17:47
Функция СформироватьЗапросДляПечати(Режим)

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

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

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

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

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

   Иначе
       Возврат Неопределено;    
       
   КонецЕсли;
   
   Возврат Запрос.Выполнить();
Закон Брукера: Даже маленькая практика стоит большой теории.