Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как распределить сумму между участниками работ!

Как распределить сумму между участниками работ!
Я
   VID1234
 
17.09.21 - 17:20
Здравствуйте. Подскажите пожалуйста. У нас есть документ, в этом документе хранятся работы, отдельной строкой, у каждой строки есть плановые суммы, допустим у первой работы 700000, у второй, 800000, у третьей 500000, у четвертой 100000. За каждой этой работой закреплены Основные исполнители и просто исполнители, допустим за первой работой 3 человека (Иванов (Основной исполнитель), Петров (просто исполнитель), Сидоров (основной исполнитель),), за второй (Пельмешкин (Основной исполнитель) и Галушкин (просто исполнитель),), за третьей (Галушкин(Основной исполнитель) и Иванов (просто исполнитель),), за четвертой (Сидоров (Основной исполнитель) и Петров (просто исполнитель),). Как видите, Иванов участвует в 2 работах, Петров тоже в двух, Сидоров аналогично ну и Галушкин тоже, Пельмешкин в одной. Запросом с регистра начисления я вывожу реальные ЗП по месяцам по всем сотрудникам (сотрудников разумеется больше). Что нужно сделать:
1) Отобрать всех сотрудников со статусом основной исполнитель (это отдельный реквизит РОЛЬ) по количеству, кто где работает, если сотрудник работает в одной работе, то вся зп его падает на эту работу (как у Пельмешкина), если в двух, тогда распределяется пропорционально сумме работ( допустим Сидоров работает в первой и четвертой работе, соответственно 100000 и 700000 - это как 10% к 90%, если его зп 100000 рублей, то 90000 тысяч распределится на первую работу, а 10000 на четвертую, если в трех, то соответственно на три суммы);
Таким образом, цикл должен повторятся до того момента, пока все суммы по основным исполнителям не будут распределены или не закончится предел по сумме работ (для четвертой работы = 100 000) .
2) Но если сумма распределилась по ЗП полностью (по основным исполнителям), т.е. зп сотрудников не хватает, чтобы сумма в 700000 тысяч полностью распределилась, то после этого все распределяется на всех простых исполнителей.
Мне нужен примерный код (отбор, цикл, а то я не могу никак сообразить), запрос данных я получу сам, до идеала доделаю сам, мне нужна только наводка, в качестве примерного кода!
   Garykom
 
1 - 17.09.21 - 17:24
уверен что с hh.ru не перепутали?
   VID1234
 
2 - 17.09.21 - 17:28
(1) Здравствуйте. Нет!
   acht
 
3 - 17.09.21 - 17:31
Ограничение взысканий по исполнительным листам какое-то.
   VID1234
 
4 - 17.09.21 - 17:32
(3) Здравствуйте. Типа того)))
   Kassern
 
5 - 17.09.21 - 17:33
(0) вы хотя бы свой алгоритм распишите. Попробуйте на бумажке для конкретного примера посчитать. Проследите за логикой и покажите, что у вас получилось и на чем у вас затык.
   VID1234
 
6 - 17.09.21 - 18:04
(5) Хорошо, тогда на следующей неделе начну делать и более подробно буду писать, если не сложно помогите плиз
   polosov
 
7 - 17.09.21 - 18:10
(6) Нихрена не понятно.
Почему ЗП распределяются на стоимость работ? Или цель в определении вклада каждого сотра в работы?
   Garykom
 
8 - 17.09.21 - 18:12
Себестоимость же считается
По фиксированным окладам исполнителей
   RomanYS
 
9 - 17.09.21 - 18:13
(7) судя по логике цель обратная: обосновать стоимость работ зарплатой назначенных исполнителей)
   HeKrendel
 
10 - 17.09.21 - 18:13
Много букв, осуждаю
   Garykom
 
11 - 17.09.21 - 18:13
(9) опоздал ))
   mistеr
 
12 - 17.09.21 - 18:17
(0) Наводка такая. Запросом/запросами получаешь все данные, распределяешь при обходе выборки. Читай СП про методы обхода выборки.

Для собственно распределения есть стандартный метод, ОбщегоНазначения.РаспределитьПропорционально() или как-то так.
   VID1234
 
13 - 17.09.21 - 18:22
(7) да
   VID1234
 
14 - 17.09.21 - 18:23
(9) в точку!
   HeKrendel
 
15 - 17.09.21 - 18:24
(9) Вот так сразу бы, главное чтобы затрат хватило, а не то могут ГОЗы и не понять ;-)
   VID1234
 
16 - 17.09.21 - 18:24
(12) хорошо, почитаю, но если будет где ни будь затык, то пожалуйста не отказывайте в помощи! Спасибо, хороших выходных, этим буду уже в понедельник заниматься!

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.