![]() |
|
Неверные параметры в запросе | ☑ | ||
---|---|---|---|---|
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) оно самое
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |