#0
by steep1
Здравствуйте, есть com_object на дельфи. подскажите как заполнить таблицу значений переданную из 1с в Delphi и вернуть обратно заполненную.
#2
by Torquader
Интересно, а каким методом эта таблица значений попадает в Delphi, так как от метода попадания будет зависеть и способ заполнения.
#3
by steep1
передача через параметр ТаблицаЗначенийЗаполненная = comobject.GetTable(ТаблицаЗначенийПустая)
#4
by Torquader
То есть ты передаёшь стороннему OLE-объекту таблицу значений, а он получит "плохой тип переменной", так как таблицу ни во что преобразовать нельзя. Если же будет внешняя компонента, то она получить IDispatch от таблицы значений и стандартными методами сможет её заполнить.
#8
by Mashinist
Tab:=GetNParam(paParams,1); - из 1С передается таблица значений и она попадает в дельфи - второй параметр метода если считать от нуля... Error:=Error+IsValueTable(Tab); - IsValueTable - функция проверяющая действительно ли передали таблицу значений дальше выполним запрос и получим датасет if Error=0 then begin если все нормально - сконвертируем его в ТЗ ConvertDataSetToValueTable(q,Tab); - конфертирует DataSet - тут уже нужно смотреть что есть у кого - в таблицу значений { Переводим DataSet в таблицу значений } function TAddSQLObject.ConvertDataSetToValueTable(q: TDataSet; Tab: OleVariant): integer; var if Err = 0 then for i:=0 to q.FieldCount-1 do f:=q.Fields[i]; if Ver1C = ver1cv8 then Tab.Колонки.Добавить(f.FieldName) if Ver1C = ver1cv8 then begin while not q.EOF do Str:=Tab.Добавить; for j:=0 to q.FieldCount-1 do if f.DataType=ftFloat then Str.Установить(j,StringReplace(s,',','.',[rfReplaceAll])) while not q.EOF do for j:=0 to q.FieldCount-1 do if f.DataType=ftFloat then Tab.УстановитьЗначение(i+1,j+1,StringReplace(s,',','.',[rfReplaceAll])) function TAddSQLObject.CallAsFunc(lMethodNum: Integer; var pVarRetValue: OleVariant; var paParams: PSafeArray{(OleVariant)}): HResult; stdcall; var ..................... methOpenQuery: if sql.IsConnected then begin pStatusLine.SetStatusLine('Query is executing ...'); if Error=0 then else if sql.ErrorFlag = 0 then try {если ошибка, считаем переменную не таблицей значений} if Ver1C = ver1cv8 then Tab.Колонки.Количество
#10
by Mashinist
так а я что выложил? это не мое. Автор Ганьшин Михаил (ganshin_m@mail.ru) у него есть AddSQL - библиотека прямого доступа к ORACLE для 1С:Предприятия 7.7/8.0 там как раз оно и возвращает ТЗ назад я у него этот код выпросил отдал своему программеру-дельфисту ему хватило ВК сделать, которая мне ТЗ возвращает и на 7.7. и на 8.1
#13
by Torquader
Кстати, а в 1С можно передать двумерный массив из VbScript причём даже динамический (если описать свой Class), так что, есть мнение, что таблица - это лишнее.
#14
by steep1
не подходит, так как работает тока в 8.2 заморочек с Delphi уже много, вплетать VbScript уже лишнее с моей точки зрения.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Таблицы, таблицы, таблицы... Будь они неладны
- Безвозмездная передача фотоаппарата госучреждению. Проводки???
- Передача параметра типа Дата в ADODB
- Как в Список Значений загрузить колонку Таблицы Значений?
- Таблица значений в ячейке таблицы значений
- Как имея ссылку на строку таблицы значений получить название самой таблицы
- Передача товаров операция: передача товаров/материалов переработчику цена,сумма
- Передача таблицы таблицы значений с сервера на клиент
В этой группе 1С
- v7: Как открыть фотографию из под 1с без искажений?
- v7: как провести документ после ТА нужным временем
- Изменить реквизит Плана видов расчета
- Вычисляемые поля в СКД
- Как в управляемом приложении перебрать элементы справочника?
- Авторизация в нескольких аккаунтах на одном ресурсе.
- удаление префикса из номера документа при печати
- v7: как взломать пароль на конфигурации в 1С 7.7???
- Перенос остатков КА 7.7 в КА 8.2
- Преобразование значения к типу Число не может быть выполнено УТ 11
- Установка оттиска печати в документах 1С 8.2 УТ
- Иерархия в СКД по произвольному запросу, дубликаты
- Двоичные данные в XBase
- Закрытие 20 счета
- Свертка базы БП 2.0
- Контрагент сменил название. Как быть?
- Групповая обработка не меняется реквизит "Графа 5 УСН"
- СКД. Несколько вариантов макета одной группировки отчета
- Обработка щелчка мыши 1с 8.2
- КПП контрагента в типовой торг 12 в УТ 10.3 1с 8.2 не проставляется