Запрос в регистр сведений ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних
Помогите разобраться в чем ошибка. Пишу запрос для вывода в печатную форму данных по Окладу сотрудника
В запросе в функции ДанныеДляПечатиДопникОсновныеНачисления делаю условия что бы выбирал только значение с Окладом, но при выполнении выводится дополнительно 2 пустых строчки.
И второй вопрос Из функции ДанныеДляПечатиДопникОсновныеНачисления вставляю данные РезультатНачисления = ДанныеДляПечатиДопникОсновныеНачисления(МассивДанныхЗаполнения);
Передается текст "ТаблицаЗначений".
В запросе в функции ДанныеДляПечатиДопникОсновныеНачисления делаю условия что бы выбирал только значение с Окладом, но при выполнении выводится дополнительно 2 пустых строчки.
И второй вопрос Из функции ДанныеДляПечатиДопникОсновныеНачисления вставляю данные РезультатНачисления = ДанныеДляПечатиДопникОсновныеНачисления(МассивДанныхЗаполнения);
Передается текст "ТаблицаЗначений".
Функция ДанныеДляПечатиДопникОсновныеНачисления(МассивОбъектов)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ВЫБОР
| КОГДА ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Показатель = &Оклад
| ТОГДА ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Значение
| КОНЕЦ КАК СуммаОклада
|ИЗ
| РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&Период, ) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних
|ГДЕ
| ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Сотрудник В(&Сотрудник)";
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
ДатаДопник = Дата("20201002");
СправочникОклад = Справочники.ПоказателиРасчетаЗарплаты.НайтиПоНаименованию("Оклад");
Запрос.УстановитьПараметр("Период", ДатаДопник);
Запрос.УстановитьПараметр("Сотрудник", МассивОбъектов);
Запрос.УстановитьПараметр("Оклад", СправочникОклад);
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
Процедура ВывестиДанныеДопник(Макет, ТабличныйДокумент, МассивДанныхЗаполнения, ОбъектыПечати) Экспорт
//Если Макет <> Неопределено Тогда
ПерваяСправка = Истина;
Для каждого ПараметрыМакета Из МассивДанныхЗаполнения Цикл
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
Если Не ПерваяСправка Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
Иначе
ПерваяСправка = Ложь;
КонецЕсли;
Макет.Параметры.Заполнить(ПараметрыМакета);
РезультатСклонения = "";
Если ФизическиеЛицаЗарплатаКадры.Просклонять(Строка(ПараметрыМакета.ФИОПолные), 1, РезультатСклонения, ПараметрыМакета.Пол, ПараметрыМакета.ФизическоеЛицо) Тогда
Макет.Параметры.ФИОПолные = РезультатСклонения;
КонецЕсли;
КоличествоСтавок = "";
Макет.Параметры.ЗанимаемыхСтавок = ПараметрыМакета.КоличествоСтавок;
//Оклад
РезультатНачисления = ДанныеДляПечатиДопникОсновныеНачисления(МассивДанныхЗаполнения);
Макет.Параметры.СуммаОклада = РезультатНачисления;
ТабличныйДокумент.Вывести(Макет);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ПараметрыМакета.Ссылка);
КонецЦикла;
//КонецЕсли;
КонецПроцедуры
ПоказатьПо теме из базы знаний
Найденные решения
(3) нет. вот так:
ВЫБРАТЬ
ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Значение КАК СуммаОклада
ИЗ
РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&Период, Сотрудник В (&Сотрудник) И Показатель = &Оклад) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних
ВЫБРАТЬ
ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр
ИЗ
РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&Период, Сотрудник В (&Сотрудник) И Показатель = &Оклад) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Проблемный запрос.
вот это "ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковС резПоследних.Сотрудник В(&Сотрудник)" и это " ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Показатель = &Оклад" перенесите в параметры виртуальной таблицы
вот это "ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковС
Так?
Запрос.Текст = "ВЫБРАТЬ
| ВложенныйЗапрос.СуммаОклада КАК СуммаОклада
|ИЗ
| (ВЫБРАТЬ
| ВЫБОР
| КОГДА ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Показатель = &Оклад
| ТОГДА ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Значение
| КОНЕЦ КАК СуммаОклада
| ИЗ
| РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&Период, ) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних
| ГДЕ
| ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Сотрудник В(&Сотрудник)) КАК ВложенныйЗапрос";
Показать
(3) нет. вот так:
ВЫБРАТЬ
ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних.Значение КАК СуммаОклада
ИЗ
РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&Период, Сотрудник В (&Сотрудник) И Показатель = &Оклад) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр езПоследних
ВЫБРАТЬ
ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр
ИЗ
РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&Период, Сотрудник В (&Сотрудник) И Показатель = &Оклад) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр
по второму вопросу:
у вас в РезультатНачисления возвращается таблица значений и вы пытаетесь вывести её в ячейку.
РезультатНачисления = ДанныеДляПечатиДопникОсновныеНачисления(МассивДанныхЗаполнения);
Макет.Параметры.СуммаОклада = РезультатНачисления;
у вас в РезультатНачисления возвращается таблица значений и вы пытаетесь вывести её в ячейку.
(6) не выгружайте результат функции ДанныеДляПечатиДопникОсновныеНачисления в таблицу значений.
Возвращайте сразу цифру.
вместо:
например, вот так:
Возвращайте сразу цифру.
вместо:
Возврат Запрос.Выполнить().Выгрузить();
например, вот так:
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Возврат Выборка.СуммаОклада;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот