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

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

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

НЕ Я = Е
3 Тринадцать
 
10.04.20
11:53
о боги!.. точно!
меня смутило то что если ставлю Е не срабатывает помощник (через .)
4 Тринадцать
 
10.04.20
11:56
Попутно еще вопрос,
запрос выводит сумму начисленных премий по сотруднику
как правильно вывести это в печатную форму?
ОбластьСтрока.Параметры.ДанныеПоощренияРезультат =
5 GGDots
 
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'" );
        
    ТабличныйДокумент.Вывести(ОбластьШапка);
    ТабличныйДокумент.Вывести(ОбластьСтрока);
    ТабличныйДокумент.Вывести(ОбластьПодвал);
    Возврат ТабличныйДокумент;

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


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

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

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

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

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


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

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

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


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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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