Заказ звонка

Закрыть

*
*
*

Способы обработки документа

Страницы: 1
RSS
Способы обработки документа
Здравствуйте.
Я пишу скрипт, который должен добавлять в список переходов конкретного документа переходы из справочника "Способы обработки". Переходы добавляются успешно, однако, подписи необходимые для выполнения перехода не добавляются, потому что данные поля только для чтения. Как мне в автоматическом режиме добавить эти подписи?
Set Items = TCSActiveModule.Properties("WORKFLOW_ITEMS").AsIDispatch
Items.CreateNew
Items.Properties("NAME").Value = Items_Name & " _new"
Items.Properties("VERSTATE_BEFORE").Value = ver_stste_before
Items.Properties("VERSTATE_AFTER").Value = ver_state_after
Items.Properties("OFFICER_ID").Value = officer_id
Items.SaveChanges
Set Sig = Items.Properties("SIGNS").AsIDispatch
Sig.CreateNew
Sig.Properties("WORKFLOWITEM_ID").Value = ID_new 'только для чтения
Sig.Properties("SIGNTYPE_GUID").Value = signtype_guid 'только для чтения
Sig.Properties("SIGNTYPE_ID").Value = signtype_id ' только для чтения
Sig.Properties("OFFICER_ID").Value = off_id ' только для чтения
Sig.Properties("REQUIRED").Value = Obz
Sig.Properties("DOROUTE").Value = Os_p
Sig.SaveChanges

Если нельзя таким способом, то как по-другому это можно осуществить?
Таким способом нельзя.
Необходимо сначала добавить подпись в документ в объект "Подписи способа обработки", а затем добавить её в нужный переход способа обработки.

Вот немного поправленный Ваш пример:
Код
Sub FormMacro_Test(TCSActiveModule)

Const Items_Name = ""
Const ver_stste_before = 0
Const ver_state_after = 5
Const officer_id = 1007
Const signtype_id = 5
Const Obz = True
Const Os_p = False

Dim Items

Set Items = TCSActiveModule.Properties("WORKFLOW_ITEMS").AsIDispatch 
    Items.CreateNew 
        Items.Properties("NAME").Value = Items_Name & " _new" 
        Items.Properties("VERSTATE_BEFORE").Value = ver_stste_before 
        Items.Properties("VERSTATE_AFTER").Value = ver_state_after 
        Items.Properties("OFFICER_ID").Value = officer_id 
    Items.SaveChanges 

Dim DocSigns ' подписи документа

Set DocSigns = TCSActiveModule.Properties("WORKFLOW_SIGNS").AsIDispatch      

If Not (DocSigns.Locate(array("SIGNTYPE_ID","OFFICER_ID"),array(signtype_id,officer_id),0)) Then
    DocSigns.CreateNew
        DocSigns.Properties("SIGNTYPE_ID").Value = signtype_id
        DocSigns.Properties("OFFICER_ID").Value = officer_id
    DocSigns.SaveChanges
End If

Dim Sign ' подписи перехода
Set Sign = Items.Properties("SIGNS").AsIDispatch 
    Sign.CreateNew 
        Sign.Properties("ID").Value = DocSigns.Properties("ID").AsSafeInteger
        Sign.Properties("REQUIRED").Value = Obz 
        Sign.Properties("DOROUTE").Value = Os_p 
    Sign.SaveChanges 
    
TCSActiveModule.Refresh

End Sub
Спасибо. smile:)
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)