' Скрипт на закрытие карточки ' Проверяет файлы в карточке на непревышение размера ' v 1.0.1 Option Explicit Const MAX_FILE_SIZE = 20000 ' Максимальный размер файла в килобайтах Function DoEvent(UserSession, CardFrame, CardData, ActivateFlags, ModeID, FolderID) DoEvent = 0 Dim FileList, FileRow, FileCard, ErrMessage Set FileList = UserSession.CardManager.CardData(MainInfo(CardData).Value("FilesID")) ErrMessage = vbNullsTring For Each FileRow In Sect(FileList, "FileReferences").Rows Set FileCard = UserSession.CardManager.CardData(FileRow.Value("CardFileID")) If MainInfo(FileCard).Value("FileSize") > MAX_FILE_SIZE Then ErrMessage = ErrMessage & vbCrLf & MainInfo(FileCard).Value("FileName") End If Next If ErrMessage <> vbNullString Then MsgBox "Внимание! Размер следующих файлов превышает допустимый:" & ErrMessage & vbCrLf & "Удалите эти файлы до закрытия карточки.", vbOKOnly, "Предупреждение" DoEvent = -1 End If End Function ' Получение секции карточки по имени Function Sect(CardData, Alias) Set Sect = CardData.Sections(CardData.Type.AllSections.GetByAlias(Alias).ID) End Function ' Получение подчиненной секции по имени Function SubSect(RowData, Alias) Set SubSect = RowData.ChildSections(RowData.Section.Type.ChildSections.GetByAlias(Alias).ID) End Function ' Нулевая строка секции MainInfo Function MainInfo(CardData) Set MainInfo = Sect(CardData, "MainInfo").FirstRow End Function ' Строка свойства Function Prop(CardData, Alias) Set Prop = Nothing Dim Row: For Each Row In Sect(CardData, "Properties").Rows If Row.Value("Name") = Alias Then Set Prop = Row Exit Function End If Next End Function ' Получение значения свойства Function GetProp(CardData, Alias, DefaultValue) Dim Row: Set Row = Prop(CardData, Alias) If Row Is Nothing Then GetProp = DefaultValue Else GetProp = Row.Value("Value") If IsNull(GetProp) Then GetProp = DefaultValue End If End Function ' Установка значения свойства Sub SetProp(CardData, Alias, Value, DisplayValue) Prop(CardData, Alias).Value("Value") = Value Prop(CardData, Alias).Value("DisplayValue") = DisplayValue End Sub