Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Дек 2017, 00:49
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите написать запрос к задаче 1,39  (Прочитано 1497 раз)

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

Оффлайн holy90

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-01
  • Сайт: 
  • Профессия: Ученик 1С
Второй день бьюсь с запросом к задаче 1,39

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

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

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

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

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


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
170 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 220
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal