Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Помогите разобраться с разрезами.

Помогите разобраться с разрезами.
Я
   breezee
 
01.10.16 - 22:14
Добрый день! У меня есть код, взятый из решения задачи по спецу(код ниже), как я понял, разрез в коде служит чтобы отобрать все записи в запросе, кроме текущей. Мне не понятно, почему стоит условие на то что "ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ДополнительныеНачисления.Премия", хотя получается оклад. Объясните, пожалуйста. Так же попробовал на прямую указать что сотрудник - не сотрудник из табличной части. Получилась другая сумма при тетсировании(мой запрос еще ниже). Подскажите, почему не сработало?  
// ++КОД РЕШЕНИЯ

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


// ++Мой запрос

ВЫБРАТЬ
    ДНБазаОН.НомерСтроки КАК НомерСтроки,
    ДНБазаОН.РезультатБаза КАК РезультатБаза,
    ДНБазаОН.Размер КАК Размер,
    ДНБазаОН.Сотрудник,
    ДНБазаОН.Подразделение
ИЗ
    РегистрРасчета.ДН.БазаОН(
            &Измерения,
            &Измерения,
            &Разрез,
            Регистратор = &Ссылка
                И ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ДополнительныеНачисления.Премия)
                И НЕ Сотрудник В
                        (ВЫБРАТЬ
                            НачислениеЗарплатыДополнительныеНачисления.Ссылка
                        ИЗ
                            Документ.НачислениеЗарплаты.ДополнительныеНачисления КАК НачислениеЗарплатыДополнительныеНачисления
                        ГДЕ
                            НачислениеЗарплатыДополнительныеНачисления.Ссылка = &Ссылка)) КАК ДНБазаОН
ИТОГИ
    СУММА(РезультатБаза),
    СРЕДНЕЕ(Размер)
ПО
    НомерСтроки
// --Мой запрос
 
 
   Boleev
 
1 - 01.10.16 - 22:29
Ничего не понятно, но спроси тут
http://forum.chistov.pro/index.php?board=16.0
   breezee
 
2 - 01.10.16 - 22:32
(1) Хорошо, спасибо

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует