Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 фев 2025, 14:50

Запрос к ДополнительныеНачисления.БазаОсновныеНачисления возвращает пустую выборку

Автор IvanAndrewson, 08 янв 2025, 11:41

0 Пользователей и 1 гость просматривают эту тему.

IvanAndrewson

Добрый день!  :btbzdb:

Задача:
При проведении документа НачислениеЗарплаты реализовать возможность начисления Премии (указанный в документе % от месячного оклада).

Поскольку доп. начисление Премия имеет базу по Окладу, делаю запрос к ДопНачисления.БазаОсновныеНачисления и беру оттуда РезультатБаза (Оклад)

Запрос возвращает "Неопределено" для всех типов элементов в ВыборкаДетальныеЗаписи, в то время как данные в регистр записываются (если закомментировать строку "СтрДвижениеДоп.Результат = ...").
Подскажите, как правильно сформировать запрос?


///////////  регистр Д О П О Л Н И Т Е Л Ь Н Ы Е   Н А Ч И С Л Е Н И Я  \\\\\\\\\\\\\\\

Если ЗначениеЗаполнено(ДополнительныеНачисления) Тогда


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

Движения.ДополнительныеНачисления.Записать();


//// П Р Е М И Я !!!

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

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

МассивИзмерений = Новый Массив;
МассивИзмерений.Добавить("Сотрудник");

Запрос.УстановитьПараметр("МассивИзмерений", МассивИзмерений);
Запрос.УстановитьПараметр("Премия", ПланыВидовРасчета.ДополнительныеНачисления.Премия);
Запрос.УстановитьПараметр("Ссылка", Ссылка);

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

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

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

СтрДвижениеДоп.Результат = СтрДвижениеДоп.Размер / 100 * ВыборкаДетальныеЗаписи.РезультатБаза;
КонецЦикла;

P.s: Крайне схожий вопрос поднимался здесь в 2021 году Дмитрием, но ответа так и не нашлось  :dfbsdfbsdf:

Теги: Запрос Премия 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск