Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 18:54

Помогите написать запрос к задаче 1,39

Автор holy90, 01 апр 2013, 19:33

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

holy90

Второй день бьюсь с запросом к задаче 1,39

необходимо создать документ расчета премий сотрудников с учетом оборота продаж, оборот и процент премии указывается в регистре сведений(0-5%,100000-10%,500000-15%)
Проценты и обороты сопоставил, т.е процент из  учета объема продаж вычисляется нормально
но если отменить проведение документа (например март), то в апреле сумма начисленных премий не изменится, а должна прибавиться 

очень прошу помочь, так как языку запросов и 1с только учусь.
заранее всем спасибо!

ниже обработка команды заполнить:
также прикрепляю выгрузку базы

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

&НаКлиенте
Процедура Заполнить(Команда)
   РассчитатьПремиюСотрудников();
КонецПроцедуры

Теги:

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

Рейтинг@Mail.ru

Поиск