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

Неверные параметры в запросе

Неверные параметры в запросе
Я
   Тринадцать
 
10.04.20 - 11:42
Доброго времени суток Всем читающим! Коллеги, подскажите как в СКД в параметре указать Название перечисления, через ЗНАЧЕНИЕ выдает ошибку, вот сама часть из запроса, где нужен этот параметр:
ВЫБРАТЬ
               |    НачисленияУдержанияПоСотрудникам.Период КАК Период,
               |    НачисленияУдержанияПоСотрудникам.Организация КАК Организация,
               |    НачисленияУдержанияПоСотрудникам.ФизическоеЛицо КАК ФизическоеЛицо,
               |    НачисленияУдержанияПоСотрудникам.Сотрудник КАК Сотрудник,
               |    НачисленияУдержанияПоСотрудникам.Подразделение КАК Подразделение,
               |    НачисленияУдержанияПоСотрудникам.НачислениеУдержание КАК НачислениеУдержание,
               |    НачисленияУдержанияПоСотрудникам.Сумма КАК Сумма,
               |    НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты КАК ГруппаНачисленияУдержанияВыплаты,
               |    НачисленияУдержанияПоСотрудникам.ДокументОснование КАК ДокументОснование,
               |    Сотрудники.Код КАК Код,
               |    КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
               |    КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Код КАК СотрудникКод
               |ИЗ
               |    РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК НачисленияУдержанияПоСотрудникам
               |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
               |        ПО НачисленияУдержанияПоСотрудникам.Сотрудник = Сотрудники.Ссылка
               |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
               |        ПО НачисленияУдержанияПоСотрудникам.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник
               |ГДЕ
               |    НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты = Значение (Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено)
               |    И НачисленияУдержанияПоСотрудникам.Период <= &НачалоПериод
               |    И НачисленияУдержанияПоСотрудникам.Период >= &КонецПериод
               |    И НачисленияУдержанияПоСотрудникам.Регистратор ССЫЛКА Документ.Премия
               |    И НЕ НачисленияУдержанияПоСотрудникам.НачислениеУдержание В (&Премия_Квартальная)
               |
               |УПОРЯДОЧИТЬ ПО
               |    Сотрудник
               |ИТОГИ
               |    СУММА(Сумма)
               |ПО
               |    Сотрудник";

Пробовала задать параметр //&ГруппаНачисленияУдержанияВыплаты  // и прописать через Запрос.Установить параметр - ругается
Неверные параметры "Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено"
НачисленияУдержанияПоСотрудникам.ГруппаНачисленияУдержанияВыплаты.Порядок = ЗНАЧЕНИЕ (<<?>>Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено)
   Тринадцать
 
1 - 10.04.20 - 11:43
* не в СКД, в запросе
   GGDots
 
2 - 10.04.20 - 11:45
Если я правильно понял суть проблемы:

Значение(ПеречислениЕ

НЕ Я = Е
   Тринадцать
 
3 - 10.04.20 - 11:53
о боги!.. точно!
меня смутило то что если ставлю Е не срабатывает помощник (через .)
   Тринадцать
 
4 - 10.04.20 - 11:56
Попутно еще вопрос, 
запрос выводит сумму начисленных премий по сотруднику
как правильно вывести это в печатную форму?
ОбластьСтрока.Параметры.ДанныеПоощренияРезультат =
   GGDots
 
5 - 10.04.20 - 12:02
(3) Это просто надо знать)

Ну если в общих чертах (не зная контекста всего алгоритма):

Выборка.Следующий()

....


ОбластьСтрока.Параметры.ДанныеПоощренияРезультат = Выборка.ГруппаНачисленияУдержанияВыплаты;

Если в макете конечно параметр задан для в нужной области
   Тринадцать
 
6 - 10.04.20 - 12:13
параметр задан.
А почему выводить ГруппаНачисленияУдержанияВыплаты,  я думала Сумма?
   Тринадцать
 
7 - 10.04.20 - 12:19
теперь ошибок не выдает.. но и в печатную форму не заполняет
   Тринадцать
 
8 - 10.04.20 - 12:22
&НаСервере 
Функция СформироватьНаСервере(НачалоПериода,КонецПериода, Начисление )   экспорт  //ОтборНачислений

ТабличныйДокумент = Новый ТабличныйДокумент;
     ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РФ";
     ПечатнаяФормаОбъект = РеквизитФормыВЗначение("Объект");
     Макет = ПечатнаяФормаОбъект.ПолучитьМакет("ПФ_MXL_Т11а_внешний");
     ОбластьШапка     = Макет.ПолучитьОбласть("Шапка");
     ОбластьШапкаПовторятьПриПечати     = Макет.ПолучитьОбласть("ШапкаПовторятьПриПечати");
     ОбластьСтрока     = Макет.ПолучитьОбласть("Строка");
     ОбластьПодвал     = Макет.ПолучитьОбласть("Подвал");

     
    // ОтборПремий = новый Массив;

    // 

    // Для Каждого Строка из ОтборНачислений Цикл

    //ОтборПремий.Добавить(Строка.Начисление);     

    //КонецЦикла;

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

               |    И НачисленияУдержанияПоСотрудникам.Период <= &НачалоПериода
               |    И НачисленияУдержанияПоСотрудникам.Период >= &КонецПериода
               |    И НачисленияУдержанияПоСотрудникам.Регистратор ССЫЛКА Документ.Премия
               |    И НЕ НачисленияУдержанияПоСотрудникам.НачислениеУдержание В (&Премия_Квартальная)
               |
               |УПОРЯДОЧИТЬ ПО
               |    Сотрудник
               |ИТОГИ
               |    СУММА(Сумма)
               |ПО
               |    Сотрудник";

Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода );
Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода));
    Запрос.УстановитьПараметр("Премия_Квартальная", Начисление); 
    //Запрос.УстановитьПараметр("ГруппаНачисленияУдержанияВыплаты", Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено );

    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

     ОбластьШапка.Параметры.ДатаПриказа = КонецПериода;
     ОбластьШапка.Параметры.ОрганизацияНаименованиеСокращенное = ВыборкаДетальныеЗаписи.Организация;
         
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьШапка.Параметры.ОрганизацияНаименованиеСокращенное = ВыборкаДетальныеЗаписи.Организация;
        ОбластьШапка.Параметры.ОрганизацияКодПоОКПО = ВыборкаДетальныеЗаписи.Организация.КодПоОКПО;         
        //ОбластьЗаголовок.Параметры.РеквизитыОрганизации

    ОбластьСтрока.Параметры.ЛичныеДанныеФИОФамилияИмяОтчествоВВинительномПадеже = ВыборкаДетальныеЗаписи.ФизическоеЛицо;
    ОбластьСтрока.Параметры.РаботаСотрудникТабельныйНомерНаПечать = ВыборкаДетальныеЗаписи.Код;
    ОбластьСтрока.Параметры.РаботаПодразделениеНаПечать = ВыборкаДетальныеЗаписи.Подразделение;
    ОбластьСтрока.Параметры.ДанныеПоощренияРезультат = ВыборкаДетальныеЗаписи.ГруппаНачисленияУдержанияВыплаты;
    КонецЦикла;
    
    
    //ТабличныйДокумент.Вывести(ОбластьРаботник);     

    //     

    //      //ОбластьПодвал.Параметры.СсылкаНаОбъектДатаОзнакомленияРаботника = Формат(СсылкаНаДокумент.Дата,"ДФ='dd.MM.yyyy'" );

        
    ТабличныйДокумент.Вывести(ОбластьШапка);
    ТабличныйДокумент.Вывести(ОбластьСтрока);
    ТабличныйДокумент.Вывести(ОбластьПодвал);
    Возврат ТабличныйДокумент;

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


&НаКлиенте
Процедура Сформировать(Команда)
НачалоПериода = Объект.НачалоПериода;
КонецПериода = Объект.КонецПериода;
Начисление = Объект.Начисление;

    ТабДокумент = СформироватьНаСервере(НачалоПериода,КонецПериода, Начисление);
    ТабДокумент.Показать();

КонецПроцедуры
   GGDots
 
9 - 10.04.20 - 12:39
смотри, какое поле из запроса ты хочешь отображать? Сумма?
   Тринадцать
 
10 - 10.04.20 - 12:45
да, нужно вывести по сотруднику сумму начисленных ему за месяц премий
   GGDots
 
11 - 10.04.20 - 12:52
Насколько я понял кусок кода, то есть несколько вопросов:

1. ТабличныйДокумент.Вывести(ОбластьСтрока); - это код должен выводится в цикле же, а не в самом конце процедуры.

2. Не вижу что бы в области где то заполнялся параметр "Сумма" из запроса: ОбластьСтрока.Параметры.Сумма = ВыборкаДетальныеЗаписи.Сумма;


3. У тебя запрос с итогами, может быть стоит использоваться выборку с типом обхода ‘ОбходРезультатаЗапроса.ПоГруппировкам’?

Не видя всей задачи: макета, полного кода печати и т.д. - будет тяжело помочь.
   Тринадцать
 
12 - 10.04.20 - 13:47
Код модуля формы. добавила обход по группировкам, но опять не выводи ничего..
конфигурация ЗУП 3.1.12.144
макет скопировала типовой ПФ_MXL_Т11а

&НаКлиенте
Процедура ОпределениеПеременных()       Экспорт
НачалоПериода = Объект.НачалоПериода;
КонецПериода = Объект.КонецПериода;
Начисление = Объект.Начисление;
//ОтборНачислений = Объект.ОтборНачислений.Начисление;

Параметры =  СформироватьНаСервере(НачалоПериода,КонецПериода, Начисление);
КонецПроцедуры


&НаСервере 
Функция СформироватьНаСервере(НачалоПериода,КонецПериода, Начисление )   экспорт  //ОтборНачислений

ТабличныйДокумент = Новый ТабличныйДокумент;
     ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РФ";
     ПечатнаяФормаОбъект = РеквизитФормыВЗначение("Объект");
     Макет = ПечатнаяФормаОбъект.ПолучитьМакет("ПФ_MXL_Т11а_внешний");
     ОбластьШапка     = Макет.ПолучитьОбласть("Шапка");
     ОбластьШапкаПовторятьПриПечати     = Макет.ПолучитьОбласть("ШапкаПовторятьПриПечати");
     ОбластьСтрока     = Макет.ПолучитьОбласть("Строка");
     ОбластьПодвал     = Макет.ПолучитьОбласть("Подвал");

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

Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода );
Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода));
    Запрос.УстановитьПараметр("Премия_Квартальная", Начисление); 
    
    РезультатЗапроса = Запрос.Выполнить();
        
        //    ОбластьШапка.Параметры.ДатаПриказа = КонецПериода;

        //  ОбластьШапка.Параметры.ОрганизацияНаименованиеСокращенное = ВыборкаДетальныеЗаписи.Организация;

          //ОбластьШапка.Параметры.ОрганизацияКодПоОКПО = ВыборкаДетальныеЗаписи.Организация.КодПоОКПО;    

        

    
    ВыборкаПоГруппировкам = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Сотрудник");
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаПоГруппировкам.Следующий() Цикл
        ОбластьСтрока.Параметры.ДанныеПоощренияРезультат = ВыборкаПоГруппировкам.Сумма;
        
                        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                ОбластьСтрока.Параметры.ЛичныеДанныеФИОФамилияИмяОтчествоВВинительномПадеже = ВыборкаДетальныеЗаписи.ФизическоеЛицо;
                ОбластьСтрока.Параметры.РаботаСотрудникТабельныйНомерНаПечать = ВыборкаДетальныеЗаписи.СотрудникКод;
                ОбластьСтрока.Параметры.РаботаПодразделениеНаПечать = ВыборкаДетальныеЗаписи.Подразделение;
                ОбластьСтрока.Параметры.ДанныеПоощренияРезультат = ВыборкаДетальныеЗаписи.ГруппаНачисленияУдержанияВыплаты;
                ОбластьСтрока.Параметры.РаботаДолжность = ВыборкаДетальныеЗаписи.Должность;
                ОбластьСтрока.Параметры.ДанныеПоощренияРезультат = ВыборкаДетальныеЗаписи.Сумма;
                ТабличныйДокумент.Вывести(ОбластьСтрока);

                КонецЦикла;
    КонецЦикла;
        ТабличныйДокумент.Вывести(ОбластьШапка);
        ТабличныйДокумент.Вывести(ОбластьПодвал);
    Возврат ТабличныйДокумент;

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


&НаКлиенте
Процедура Сформировать(Команда)
НачалоПериода = Объект.НачалоПериода;
КонецПериода = Объект.КонецПериода;
Начисление = Объект.Начисление;

    ТабДокумент = СформироватьНаСервере(НачалоПериода,КонецПериода, Начисление);
    ТабДокумент.Показать();

КонецПроцедуры
   GGDots
 
13 - 10.04.20 - 13:53
есть тимвивер или какое еще подключение? могу глянуть... результат запроса не пустой? Не так вывод делаешь:


    ВыборкаПоГруппировкам = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Сотрудник");
    //ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); //НЕ ТАК!!!!!!


    Пока ВыборкаПоГруппировкам.Следующий() Цикл
        ОбластьСтрока.Параметры.ДанныеПоощренияРезультат = ВыборкаПоГруппировкам.Сумма;
        
ВыборкаДетальныеЗаписи = ВыборкаПоГруппировкам.Выбрать();// ВОТ ТАК


                 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
                ОбластьСтрока.Параметры.ЛичныеДанныеФИОФамилияИмяОтчествоВВинительномПадеже = ВыборкаДетальныеЗаписи.ФизическоеЛицо;
                ОбластьСтрока.Параметры.РаботаСотрудникТабельныйНомерНаПечать = ВыборкаДетальныеЗаписи.СотрудникКод;
                ОбластьСтрока.Параметры.РаботаПодразделениеНаПечать = ВыборкаДетальныеЗаписи.Подразделение;
                ОбластьСтрока.Параметры.ДанныеПоощренияРезультат = ВыборкаДетальныеЗаписи.ГруппаНачисленияУдержанияВыплаты;
                ОбластьСтрока.Параметры.РаботаДолжность = ВыборкаДетальныеЗаписи.Должность;
                ОбластьСтрока.Параметры.ДанныеПоощренияРезультат = ВыборкаДетальныеЗаписи.Сумма;
                ТабличныйДокумент.Вывести(ОбластьСтрока);

                КонецЦикла;
    КонецЦикла;
        ТабличныйДокумент.Вывести(ОбластьШапка);
        ТабличныйДокумент.Вывести(ОбластьПодвал);
    Возврат ТабличныйДокумент;

КонецФункции
   GGDots
 
14 - 10.04.20 - 13:54
структуру макета не знаю - но что-то похожее.
   Тринадцать
 
15 - 10.04.20 - 14:05
(13) однозначно - не так делаю вывод
перенесла строчку, тоже не работает

подключение можно организовать. безвозмездно?)
   GGDots
 
16 - 10.04.20 - 14:09
(15) само собой - просто гляну че может быть не так, говорю же скучно)
   GGDots
 
17 - 10.04.20 - 14:10
найди почту у меня на сайте в контакте и напиши туда, как подключиться, гляну.
   Тринадцать
 
18 - 10.04.20 - 14:10
карантин?))
   Тринадцать
 
19 - 10.04.20 - 14:10
что удобнее тим или амми?
   GGDots
 
20 - 10.04.20 - 14:11
в меню "Контакты"
   GGDots
 
21 - 10.04.20 - 14:11
давай просто тимак последний с официального сайта, что бы версии не различались
   GGDots
 
22 - 10.04.20 - 14:11
(18) оно самое


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