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

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