Имя: Пароль:
1C
1С v8
Программное получения текстового представления хэшсуммы расширения.
0 Lama12
 
22.07.22
12:16
Как получить текстовое представление (такое как в списке расширений) хэшсуммы расширения?
Пример.
В списке расширений у расширения хэшсумма выглядит так - Тип строка. Значение - "x+XA6Ll5DsnYreZP8wP8V0qXUik="
У объекта Расширение, при программной работе - Тип бинарные данные. Значение - "C7 E5 C0 E8 B9 79 0E C9 D8 AD E6 4F F3 03 FC 57 4A 97 52 29".

Нужно программно получить значение "x+XA6Ll5DsnYreZP8wP8V0qXUik=" при работе с объектом расширение. Как?
1 Кура-Цеце
 
22.07.22
12:20
&AtServer
Procedure UpdateAtServer(Val currentExtensionID = Undefined)

    Var extensions, extension, extensionsItem;

    ExtensionsList.Clear();

    extensions = ConfigurationExtensions.Get(Undefined);

    For each extension in extensions Do
        extensionsItem = ExtensionsList.Add();
        
        extensionsItem.UUID = extension.UUID;        
        extensionsItem.Name = extension.Name;
        extensionsItem.Version = extension.Version;
        
        if IsBlankString(extensionsItem.Synonym) Then
            extensionsItem.Synonym = extensionsItem.Name;
        EndIf;
        
        extensionsItem.UnsafeActionProtection = extension.UnsafeActionProtection.WarnAboutUnsafeActions;
        
        extensionsItem.HashSum = Base64Строка(extension.HashSum);
        if TypeOf(extension.SafeMode) = TypeOf(False) Then
            extensionsItem.SecurityProfileName = "";
            extensionsItem.SafeModeCheck = extension.SafeMode;
        Else
            extensionsItem.SecurityProfileName = extension.SafeMode;
            extensionsItem.SafeModeCheck = True;
        EndIf;

        If currentExtensionID = extension.UUID Then
            Items.ExtensionsList.CurrentRow = extensionsItem.GetID();
        EndIf;
        extensionsItem.UsePurpose = String(extension.Purpose);
        extensionsItem._ReadOnly = ЗначениеЗаполнено(extension.MasterNode) and (extension.MasterNode = ExchangePlans.MasterNode());
        extensionsItem.Scope = String(extension.Scope);
        extensionsItem.IsActivated = extension.Active;
        
        extensionsItem.UsedInDistributedInfoBase = extension.UsedInDistributedInfoBase;        
        extensionsItem.UseDefaultRolesForAllUsers = extension.UseDefaultRolesForAllUsers;
        
    EndDo;

EndProcedure
2 Кура-Цеце
 
22.07.22
12:20
У них внутри так написано
3 Lama12
 
22.07.22
12:24
(1) Понял. Совпало. Спасибо.
А откуда код?
4 Lama12
 
22.07.22
12:27
(2) Из внутренней обработки что ли? Или из 1C:ERP WE&
5 Кура-Цеце
 
22.07.22
12:33
(4) Из внутренней обработки
6 Кура-Цеце
 
22.07.22
12:36
Там всё как с матерщиной. Без вкраплений великого и могучего не взлетает.
7 Eiffil123
 
22.07.22
12:43
TypeOf(extension.SafeMode) = TypeOf(False)

прикольно. почему не используют = Тип("Булево")
Программист всегда исправляет последнюю ошибку.