Добрый день! Задача по программированию, для 1с-разработчиков. Задача заключается в том, чтобы посчитать премию, которая равна произведению процента, задаваемым пользователем, и суммы оклада (основное начисление) и подарка (допначисление, задается пользователем вручную в документе начисление зарплаты). Не считает правильно поскольку в запросе при проверке точкой останова результатбаза по допначсилениям (т.е. по подарку) равен нулю.

```1c
    Движения.ДополнительныеНачисления.Записывать=Истина;
    Для Каждого ТекСтрокаНачисленияДоп Из НачисленияДоп Цикл
    Движение2=Движения.ДополнительныеНачисления.Добавить();
    Движение2.Сторно=Ложь;
    ЗаполнитьЗначенияСвойств(Движение2, ТекСтрокаНачисленияДоп);
    Движение2.ВидРасчета=ТекСтрокаНачисленияДоп.ВидНачисления;
    Движение2.ПериодРегистрации=Дата;
    Если Движение2.ВидРасчета=ПланыВидовРасчета.ДополнительныеНачисления.Премия ИЛИ Движение2.ВидРасчета=ПланыВидовРасчета.ДополнительныеНачисления.Подарок Тогда
    ПрошлыйМесяц=ДобавитьМесяц(Дата, -1);
    Движение2.БазовыйПериодНачало=НачалоМесяца(ПрошлыйМесяц);
    Движение2.БазовыйПериодКонец=КонецМесяца(ПрошлыйМесяц);
    Иначе
    Движение2.БазовыйПериодНачало=НачалоМесяца(Дата);
    Движение2.БазовыйПериодКонец=КонецМесяца(Дата);
    КонецЕсли;
    Если Движение2.ВидРасчета=ПланыВидовРасчета.ДополнительныеНачисления.Подарок Тогда
    Движение2.Результат=ТекСтрокаНачисленияДоп.Размер;
    КонецЕсли;
    КонецЦикла;
    Движения.ДополнительныеНачисления.Записать();

    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

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

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

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

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

    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

    Движения.ДополнительныеНачисления.Записать();
```
---
В этом случае могу предложить видео - https://www.youtube.com/watch?v=nblYmPp1_Tc там как раз разбирают похожий вопрос
---
Здравствуйте! Данное начисление можно рассчитать без доработки, указав в формуле ПроцентПремии/100 * РасчетнаяБаза. Где процент премии вводится с помощью документа "Данные для расчета зарплаты" или указывается в кадровых документах при назначении. На закладке "Расчетная база" в настройках премии нужно указать Оклад и Подарок.
---
Это программирование на 1с. Это обработка из конфигуратора. Это подготовка к 1с:специалисту по платформе. Это не работа с точки зрения пользователя
---
В этом случае могу предложить видео - https://www.youtube.com/watch?v=nblYmPp1_Tc там как раз разбирают похожий вопрос
---
К сожалению не похожий вопрос. У меня подарок задается пользователем и почему то по нему нет базы, хотя я беру РезультатБаза из соответствующей виртуальной таблицы