Описываю более подробно - План производства\План изготовления. Строку плана открываем на редактирование, переходим на вкладку Работники. Там написан макрос для разноса плановой трудоемкости по сотрудникам, однако, что макросом, что вручную отрабатывает правильно не всегда(ошибка плавающая). Т.е. например общая трудоемкость 16, добавляем двух работников, первому ставим нормочасы 10, второму 6. После сохранения у обоих стоит 6, т.е. обоим проставляется последнее значение.
Свой макрос на всякий случай привожу(но руками то же самое):
Sub FormMacro_RaznosPlanTrudoemk(TCSActiveModule)
Dim fullname1
Dim ProdBom1
Dim FinProd1
Dim ObchTrud1
Dim Trud
Dim proc
Dim procall
procall=100
ProdBom1=TCSActiveModule.Properties("PRODUCTIONBOM_ID").AsInteger
ProdPlan1=TCSActiveModule.Properties("PRODUCTIONPLAN_ID").AsInteger
Set ProductionPlan = TCSApp.Manufacturing.ProductionPlanFromID( ProdBom1, ProdPlan1 )
If Not ProductionPlan Is Nothing Then
ObchTrud1=ProductionPlan.Properties("LaborIntensity").AsFloat
TCSActiveModule.Refresh ' Cбросить выделение
' на первую строку и перебираем записи
TCSActiveModule.First
'поиск первой записи относ к данной ПСП
Do While Not TCSActiveModule.Eof
fullname1=""
fullname1=fullname1+TCSActiveModule.Properties("WORKMAN_NUMBER").AsString
fullname1=fullname1+"| "+TCSActiveModule.Properties("WORKMAN_FIRSTNAME").AsString
fullname1=fullname1+" "+TCSActiveModule.Properties("WORKMAN_LASTNAME").AsString
fullname1=fullname1+" "+TCSActiveModule.Properties("WORKMAN_MIDDLENAME").AsString
proc=procall
proc=int(TCSApp.InputBox("Запрос...","Введите процент участия для "+fullname1,proc))
If proc>procall Then
Call TCSApp.ShowMessageBox("Ошибка...", "В сумме долно быть не больше 100% !!!! Повторите ввод.")
Do While proc>procall
proc=procall
proc=int(TCSApp.InputBox("Запрос...","Введите процент участия для "+fullname1,proc))
Loop
End If
procall=procall-proc
Trud=ObchTrud1*proc/100
TCSActiveModule.Edit
TCSActiveModule.Properties("StandardHours").Value= Trud
On Error Resume Next
TCSActiveModule.SaveChanges
TCSActiveModule.CancelChanges
TCSActiveModule.Next
Loop
End If
End Sub