8.х Как использовать ТипСодержит для объектов Com?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Bkmz, 24 июл 2017.

  1. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    404
    Симпатии:
    11
    Баллы:
    29
    Код:
    
           Если Реквизит.Тип.СодержитТип(Тип("СправочникСсылка.Номенклатура")) Тогда
                ЕстьНоменклатура = Истина;
            КонецЕсли;   
          
    
    "Реквизит" получен из com-соединения с другой базой 1с. Вываливается при сравнении ошибка:

    {ВнешняяОбработка.ПересчетКоэффициента.Форма.Форма.Форма(183)}: Ошибка при вызове метода контекста (СодержитТип)
    Если Реквизит.Тип.СодержитТип(Тип("СправочникСсылка.Номенклатура")) Тогда
    по причине:
    Произошла исключительная ситуация (1C:Enterprise 8.3.8.1964): Несоответствие типов (параметр номер '1')

    Я так подозреваю надо сравнивать с типом в соm? Как правильно проверить тип?
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.128
    Симпатии:
    953
    Баллы:
    204
    В первом приближении:
    Код:
    Если Реквизит.Тип.СодержитТип(УдаленнаяБаза.Тип("СправочникСсылка.Номенклатура")) Тогда
    .....
    КонецЕсли;
    
  3. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    404
    Симпатии:
    11
    Баллы:
    29
    Не работает так.

    [​IMG]
  4. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.128
    Симпатии:
    953
    Баллы:
    204
    ээээ....СomConnection как получился?
  5. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    404
    Симпатии:
    11
    Баллы:
    29
    Код:
       Попытка
            V83COMConnector = Новый COMObject("V83.COMConnector");
            ComConnection = V83COMConnector.Connect(ПараметрыПодключения);
        Исключение
            Сообщить("Не удалось подключиться: " + ОписаниеОшибки());
            Возврат Неопределено;
        КонецПопытки;
    
  6. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.249
    Симпатии:
    100
    Баллы:
    104
    а если не тип а type?
  7. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    404
    Симпатии:
    11
    Баллы:
    29
    Не не катит. Решил вопрос так:
    В базе приемнике в общем модуле с галкой внешнее соединение код:
    Код:
    Функция ПроверитьТипРеквизита(Реквизит, Тип) Экспорт
        Возврат Реквизит.Тип.СодержитТип(Тип(Тип));   
    КонецФункции
    
    В базе из которой подключаюсь вызываю процедуру через Com:
    Код:
    ComConnection.Авис_ПроцедурыОбмена.ПроверитьТипРеквизита(Реквизит, "СправочникСсылка.Номенклатура")

Поделиться этой страницей