#0
by H A D G E H O G s
Дня доброго. Собственно, отправляю в компоненту ДвоичныеДанные. В компоненте получаю эти двоичные данные функцией модуля v8napi begin case (V.vt and VTYPE_TYPEMASK) of VTYPE_BLOB: Она возвращает указатель на первый байт блока памяти, (странно, почему не pointer). Как узнать длину?
#1
by H A D G E H O G s
v.VarEnum.vtRecString.strLen скорее всего оно. Сравню с Двоичные.Размер, совпадет, оно... Или я вообще не туда залез?
#5
by H A D G E H O G s
Говорит "Неверный аргумент" на ДвоичныеДанные. Дельфи тормозится даже на ошибки в защищенном блоке, даже без отладочных dcu, тут - нет. Значит это обработанно самой 1С-кой... Какой тип данных 1С должен представляться BLOB -ом в ВК. По идее - подходили ДвоичныеДанные, но вот нет!
#6
by Serginio1
Вообще смотри функции VarArrayLock получаешь ссылку на двоичные данные с обязательным вызовом VarArrayUnlock Если нужны тормоза то v[i]
#9
by H A D G E H O G s
Для чего нужна функция function V8AsBlob(V: PV8Variant): PByte; begin case (V.vt and VTYPE_TYPEMASK) of
#10
by Serginio1
Понял. Сразу не врубился. Но вообще данные логичнее передавать через safeArray? Кстати а у них то есть описание этого блоба?
#11
by H A D G E H O G s
Компонента может возвращать любые двоичные данные, например – сформированное изображение штрих-кода. Для этого данные помещаются в поле pstrVal структуры tVariant, в strLen – размер данных, а тип устанавливается в VTYPE_BLOB. 1С:Предприятие использует для них тип ДвоичныеДанные. Про получать ничего не сказано. Прям бида с ними.
#13
by H A D G E H O G s
В момент: Компонента.НапечататьКартинку(Двоичное); 1С дает ошибку {Форма.ФормаДокумента.Форма}: Ошибка при вызове метода контекста (НапечататьКартинку) Компонента.НапечататьКартинку(Двоичное); по причине: Неверный аргумент А отладчик Дельфи даже не шелохнется.
#16
by H A D G E H O G s
Нет. ДвоичныеДанные у меня в 1С. Когда я их отправляю в компоненту - возникает ошибка
#19
by H A D G E H O G s
Какое Дельфи???? 1С ка отстреливает ДвоичныеДанные еще до передачи управления компоненте, см !
#22
by Serginio1
А что на стороне Delphi ты к варианту не можешь применить метод если он поддерживает интерфейс IDispatch? Правда тип должен быть varDispatch
#24
by Serginio1
Читал. Я спрашивал какой тип тебе в Delphi попадает Если смотреть структуру То ссылка должна храниться в cbElements Иследуй VarEnum и Vt
#26
by Serginio1
Ты получаешь ссылку на PV8Variant. Чему равно значение VarEnum и V8TYPEVAR TVarEnum = record case byte of
#31
by Serginio1
Кстати у safeArray тоже есть свойство cbElements То есть данные до Delphi даже не доходят?
#34
by Serginio1
Передавай в виде Base64. Так и пиши, что вызовов до ВК не доходит. А не шелыхиваться может по многим причинам.
#36
by Serginio1
Кстати получение длины function V8StrLen(V: PV8Variant): integer; begin case (V.vt and VTYPE_TYPEMASK) of
#37
by H A D G E H O G s
Ну их нафиг, эти заморочки, этот черный ящик херов. Сделал через временный файл. Чем больше работаю с 1С - тем больше убеждаюсь, что работают самые тупые и прямые методы.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
В этой группе 1С
- как поймать событие выделение строк в ТП
- v7: Конвертация Данных: передача значений для полей поиска в ПКО
- v7: Восстановление базы SQL
- В ЗуП отвязать производственный календарь от графика работы
- Модуль формы VS Модуль Объекта УФ
- БГУ. Налоговый учет. Налог на имущество.
- Вывод результата запроса в табличный документ
- СКД. Слетают настройки ресурсов по вычисляемым полям.
- ПриВыводеСтроки в управляемой форме?
- УТ 10.3 в магазине одежды
- Как удалить базу 1с вместе с файлом из интерфейса 1с?
- Как из сервера вызвать процедуру, которая находится на клиенте?
- Где база книги Баева ПБУ 18 на ИТС?
- Внешняя обработка заполнения табличных частей УФ
- 2 экземпляра накладной на 1 странице
- Материальная помощь и ФСС НС
- JIRA + 1C
- v7: Переведение базы 7.7 в sql
- УТ 10.3, отчет "реестр документов"
- Остатки по периодам СКД