COMОбъект. Ошибка при обращении.

1. balinPFR 04.03.21 22:35 Сейчас в теме
Доброго дня.
Возникла проблема при работе с COMОбъектом. Вот кусок кода:

BASE64_TYPE = 0;
    DER_TYPE = 1;
    REGISTRY_STORE = 0;
    PLAIN_DATA = 0;
    DT_SIGNED_DATA = 2;
    ADD_SIGN_WIZARD_TYPE = 2;
    ALL_OK = 0;
    SIGN_DATA_FILE = "C:\tmp1\1.sigm";
    OUTPUT_DATA_FILE = "C:\tmp1\1.sigm";
    Попытка
        objProfileStore = Новый COMОбъект("DigtCrypto.ProfileStore");
        objProfileStore.Open(REGISTRY_STORE);
        objProfiles = objProfileStore.Store;
        Если objProfiles.Count > 0 Тогда
            Для Счетчик = 1 По objProfiles.Count - 1 Цикл
                Сообщить(objProfiles.Item(Счетчик).Name);
                Если objProfiles.Item(Счетчик).Name = "Счет_Руководитель_прикрепленная" Тогда
                    objProfile = objProfiles.Item(Счетчик);
                    Прервать;
                Иначе
                    objProfile = objProfiles.DefaultProfile;
                КонецЕсли;
            КонецЦикла;
        Иначе
            objProfile = Новый COMОбъект("DigtCrypto.Profile");
        КонецЕсли;  
        oPKCS7Message = Новый COMОбъект("DigtCrypto.PKCS7Message");
        oPKCS7Message.Load(2, SIGN_DATA_FILE, "");
        oSigners = oPKCS7Message.Signers;
        Если oSigners.Count > 0 Тогда
            oPKCS7Message.Profile = objProfile;
            objProfile.CollectData(ADD_SIGN_WIZARD_TYPE);
            CheckResult = -10;
            CheckResult = objProfile.CheckData(ADD_SIGN_WIZARD_TYPE);
            Если CheckResult = ALL_OK Тогда
                oPKCS7Message.Sign();
                oPKCS7Message.Save(DT_SIGNED_DATA, BASE64_TYPE, OUTPUT_DATA_FILE);
                oPKCS7Message = NULL;
            Иначе
                Сообщить("Профиль имеет некорректные параметры.");
            КонецЕсли;
        Иначе
            
        КонецЕсли;
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
Показать


oPKCS7Message содержит в себе как обычные типы данных, так и COMОбъект. Вот возникает проблема, что "вложенные" COMОбъекты не удается получить. НО!!! Если в отладке выполнить "Вычислить выражение..." oPKCS7Message, то вложенные COMОбъекты удается получить и обратиться к ним. В чем косык понять не могу.
Помогите люди добрые!!!
Прикрепленные файлы:
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Vitaly1C8 05.03.21 11:45 Сейчас в теме
(1) тут можно только предположить ...
например: данные на момент обращения еще не получены (а будут получены с задержкой в 1 сек) тогда при более позднем обращении - всё в порядке ...
4. balinPFR 05.03.21 12:33 Сейчас в теме
(2) Пробовал ставить паузу в виде цикла на 30 -60 сек, результат прежний. срабатывает именно если в отладке нажать Вычислить выражени.
6. Vitaly1C8 05.03.21 12:48 Сейчас в теме
(4) ну попробуй тогда вначале : (то что и делает отладчик)
Вычислить(ЧтоМыВычисляемВОтладке)
8. mpudy 05.03.21 16:22 Сейчас в теме
(4)ИМХО, при зацикливании на какое то время "в фоне" ничего не происходит.
Если в отладке просто поставить точку останова и подождать вместо "вычислить"?
3. SlavaKron 05.03.21 11:50 Сейчас в теме
Возможно из-за того, что отладчик не различает свойства и методы ком-объекта. Если в предприятии ошибки нет, можно закрыть глаза на ошибки отладчика.
5. balinPFR 05.03.21 12:33 Сейчас в теме
(3)Косяк в том, что в предприятии ошибка вываливается.
7. Vitaly1C8 05.03.21 12:49 Сейчас в теме
(5) это часом не связано с &НаКлиенте / &НаСервере (где вычисляется выражение)
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)