#0
by new1snik
Добрый день. Работаю с плагином OLE. Получаю СОМ объект: Далее использую встроенные функции: х = Клиент.RaceList.CurrentRace; После выполнения этого кода вылазит ошибка: {ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта}: Ошибка при вызове метода контекста (RaceData) Сообщить(Клиент.RaceList.RaceData(х)); по причине: Типы не совпадают (-1) Проблема в следующем: в описании плагина находится описание встроенных методов: long CurrentRace, TRaceListData RaceData(long Index). То есть Клиент.RaceList.CurrentRace возвратит long, а на вход RaceData требуется тоже long, и я не понимаю в чем причина.
#1
by Infsams654
TRaceListData RaceData(long Index , это как 1С может сообщить, она такого типа в глаза не видела
#7
by Jaap Vduul
А в 1цэ при помещении результата вычисления в переменную разве тип этого результата может поменяться?
#10
by Jaap Vduul
Откуда ComObject возьмётся? Все числа 1цэ хранит с плавающей точкой, так что никакие изыски не помогут, в верное направление задано.
#11
by Infsams654
не верю, там же TRaceListData, а не просто long. Так, что и отдаст TRaceListData, а 1С примет как ComObject, т.к. не поймет, что это за тип
#13
by Jaap Vduul
Чтобы получить TRaceListData нужно выполнить RaceData, а у ТС как раз это и не получается: ... Ошибка при вызове метода контекста (RaceData)
#15
by Serginio1
Может 1С не может отобразить структуру TRaceListData? Обычно внутри всегда есть приведение типа через VarCast
#16
by new1snik
Тут пока дело не в отображении, а именно в том, что тип передаваемого в метод параметра не подходит. Если я правильно понимаю.
#18
by new1snik
Но ведь это не важно должно быть, что мне вернет метод, я пока просто пытаюсь передать в него параметр и получаю отказ..
#25
by Infsams654
как да пофих, пусть хоть "ком-объект" если 1С не понимает что-то из ole, то com-object. А что оно должно показать иначе ?
#26
by Кирпич
Я так думаю, что 1с передает в ComObject тип Variant, а ComObject хочет получить long. Так что делай обертку для своего ComObject.
#27
by Serginio1
Что ты понимашь под OLE. Все параметры в IDispatch передаются через OleVariant. ComObject для 1С это TvarData(varPropVal).VType:=VT_DISPATCH то это ComObject если VT_RECORD то не уверен, что 1С может работать с таким параметром
#29
by Infsams654
так и я тоже про то. Если не понимает VT_RECORD, то как 1С у себя это проявит. Имхо, только как ComObject и пофиг. А дальше, уж, если получатель знает, что это за штука, то пусть обращается к нужному через точку, если это рекорд
#30
by new1snik
Та же самая ошибка: {ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта}: Ошибка при вызове метода контекста (Eval) Сообщить(vbs.Eval("GetDataLong")); по причине: Типы не совпадают (-1)
#31
by Serginio1
А теперь верни GetDataLong = OLE.RaceList.RaceData(OLE.RaceList.CurrentRace).MaxSpeed
#32
by cw014
Все, я вкурил. Там не КОМобъект возвращается, потому и тип не совпадает... В общем как в описано
#33
by new1snik
{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта}: Ошибка при вызове метода контекста (Eval) Сообщить(vbs.Eval("GetDataLong")); по причине: Произошла исключительная ситуация (Ошибка выполнения Microsoft VBScript): Требуется объект: 'OLE.RaceList.RaceData(...)' Какая то беда... вот опять я что-то упустил совершенно очевидное
#42
by Кирпич
в LI_OLE_Library.dll есть описание типов. так что типы не причем. всё должно работать.
#43
by new1snik
выводит 1 Ты прям волшебник, я пытался запустить test.ert в 1с7.7, но тоже вылазило куча ошибок. Как сумел?
#47
by dk
значит проблема в получении в 1с конвертируй например в строку в vbs и в 1с уже строку обрабатывай
#48
by Кирпич
я думаю не нужно обращаться напямую к RaceData, а использовать функции RaceList типа RaceSectionBeginIndex, RaceSectionFuel
#54
by new1snik
Сообщить(Клиент.RaceList.RaceFuelNorm); А вот это уже не работает.... Да и проблема, которая была в первом сообщении не решилась.
#56
by cw014
Проблема в том, что типы этих методов - это экземпляры сишных классов, а не Ком-интерфейсов. Потому возвращает тебе тот набор данных, которая 1С неосиливает. Читай внимательней мануал
#57
by Кирпич
1с читает типы из tlb. всё прекрасно работает. получать структуру RaceData автору не нужно. Для доступа к данным структуры есть специальные методы. Ими и надо пользоваться.
#58
by new1snik
Ну раз такой умный, то поясни, пожалуйста, как понять какие методы правильные? Какой мануал?
#59
by new1snik
+ У меня просто на руках есть описание методов для работы с этим плагином в виде: TRaceListData RaceData(long Index) и все. Ну плюсом описание структур, которые я пока не трогал.
#60
by Кирпич
в файле "New HTML Help.chm" всё написано вот структура struct TRaceListData методы называются так же как поля структуры RaceSectionBeginIndex RaceSectionEndIndex и т.д.
#62
by Кирпич
и еще. если есть рядом с тобой кто нибудь, попроси его треснуть тебе по башке линейкой. должно помочь. мне помогает.
#64
by Кирпич
+ я скачал этот долбаный Locarus Informer. скачал демо данные от туда же. зарегил LI_OLE_Library.dll. запустил 1с. открыл test.ert открыл Locarus Informer тыкнул мышкой на машину в test.ert нажал кнопку "Сформировать" отчет выдал ахиренную таблицу всё работает. теперь делаю всё в обратной последовательности. вот какой я очень добрый сегодня.
#65
by new1snik
Вот нифига подобного у меня не происходит, запускал эту обработку на 1С 7.7, он мне выдавал ошибку при запущенном локарусе. Сейчас попытаюсь повторить это на другом ПК, вдруг какой косяк с неправильной работой dll...
#67
by new1snik
{C:DOCUMENTS AND SETTINGSADMINРАБОЧИЙ СТОЛРАБОТАРИФЛОКАРУСTEST.ERT}: Поле агрегатного объекта не обнаружено (BBDataDateTime)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Конвертация данных: Параметр ВыгрузитьОбъект у ПКС существует?
- PDFCreator cCombineAll
- Конвертация. Передать параметр из источника в приемник
- Настройка ЭЦП в 1С: Документооборот КОРП
- Выводить помесячно в отчете СКД
- Индекс находится за пределами массива
- 1C 8.1 ограничение на файловую базу. Как проверить?
- Новый вид начисление не берется в начислении отпускных. ЗУП
- УПП. Корректировка реализации на экспорт
- ЗУП: Как ограничить предоставление вычета 503 внешним совместителям?
- СКД - убрать стандартные пункты из обработки расшифровки
- Не работает расшифровка по регистратору
- не очищается поле табличного документа
- Командная панель "Создать на основании" и динамический список документов
- Условное оформление, УФ, текущая дата, форма списка
- Перенос картинок в тома на диск УТ 11
- Получение двоичных данных из константы
- Как в УПП идентифицировать грузополучателя при обмене через файл?
- Библиотека подключаемого оборудования, можно тырить?
- Динамический заголовок в табличной части документа 1С 8.1