Изменение литеры
Перейти к навигации
Перейти к поиску
Этот сценарий на языке VBScript позволяет изменить "Литера" в карточках отмеченных документов или объектов без взятия документов на редактирование
newLitera = "О3"
call ChangeLetter
Sub ChangeLetter
set SelItems = s4app.GetSelectedItems 'получение интерфейса отметок SelectedCount = SelItems.SelectedCount partsComplete = 0
if SelectedCount > 0 then text2 = "Обработано 0 из "& SelectedCount s4app.ShowProgressBarForm "Изменение литеры", "Изменение литеры у отмеченных документов/объектов", text2, SelectedCount while Selitems.NextSelected <> 0 'цикл по отмеченным записям DocID = SelItems.ActiveDocID 'инвентарный номер отмеченного документа if DocID > 0 then s4app.OpenDocument(DocID) 'делаем документ текущим, чтобы можно было пользоваться функциями API для работы с ним s4app.OpenDocArticles( DocID ) artCount = s4app.GetArticlesCount 'получаем количество вариантов исполнений изделия по данному документу for j = 0 to artCount-1 'цикл по вариантам исполнений ArtID = s4app.GetDocArticleID( j ) if ArtID > 0 then s4app.OpenArticle( ArtID ) oldLetter = s4app.GetFieldValue_Articles( "Литера" ) if newLitera <> oldLetter then s4app.SetFieldValue_Articles "Литера", newLitera end if end if next else ArtID = SelItems.ActiveArtID if ArtID > 0 then s4app.OpenArticle( ArtID ) oldLetter = s4app.GetFieldValue_Articles( "Литера" ) if newLitera <> oldLetter then s4app.SetFieldValue_Articles "Литера", newLitera end if end if end if
SelItems.InvertCurrent partsComplete = partsComplete + 1 text2 = "Обработано " & partsComplete & " из " & SelectedCount UserBreak = s4app.SetProgressBarData_and_CheckUserBreak( "", text2, partsComplete ) if UserBreak > 0 then s4app.CloseProgressBarForm exit sub end if Wend s4app.CloseProgressBarForm end if
end Sub