|
Не получается загрузить таблицу значений в Excel через COMSafeArray | ☑ | ||
---|---|---|---|---|
0
marshalbratsk
08.12.16
✎
11:56
|
Пытаюсь загрузить таблицу значений (без первых трёх столбцов) в Эксель через COMSafeArray, но выдаёт ошибку:
"Ошибка при установке значения атрибута контекста (Value) Sheet.Range(Sheet.Cells(15,1), Sheet.Cells(КоличествоСтрок+15,КоличествоКолонок-2)).Value = МассивКом; по причине: Произошла исключительная ситуация (0x800a03ec)" ЧЯДНТ? Вот код ТЗ10 = Построитель.Результат.Выгрузить(); КоличествоСтрок = ТЗ10.Количество(); КоличествоКолонок = ТЗ10.Колонки.Количество(); МассивКом = Новый COMSafeArray("VT_VARIANT",КоличествоКолонок, КоличествоСтрок); Для ИндСтрок = 0 по КоличествоСтрок-1 Цикл СтрокаТаблицы = ТЗ10[индСтрок]; Для ИндКолонок = 3 по КоличествоКолонок - 1 Цикл А=индКолонок; Б=ИндСтрок; В=СтрокаТаблицы[индКолонок]; МассивКОМ.SetValue(А,Б,В); КонецЦикла; КонецЦикла; Sheet.Range(Sheet.Cells(15,1), Sheet.Cells(КоличествоСтрок+15,КоличествоКолонок-3)).Value = МассивКом; |
|||
1
marshalbratsk
08.12.16
✎
11:58
|
||||
2
marshalbratsk
08.12.16
✎
12:23
|
Дело именно в МассивКОМ, думаю. В отладчике он значениями заполнен, но не хочет присваиваться диапазону в экселе
|
|||
3
marshalbratsk
09.12.16
✎
03:28
|
Тема всё ещё актуальна(
|
|||
4
marshalbratsk
09.12.16
✎
06:08
|
Попробовал перевести таблицу значений в двумерный массив, затем уже записать это дело двумя способами, но ничего
ТЗ10 = Построитель.Результат.Выгрузить(); КоличествоСтрок = ТЗ10.Количество(); КоличествоКолонок = ТЗ10.Колонки.Количество(); МассивТЗ = Новый Массив(); МассивТЗ = ТаблицаЗначенийВМассив(ТЗ10); МассивКом= НОВЫЙ COMSafeArray(МассивТЗ,"VT_VARIANT",КоличествоСтрок,КоличествоКолонок-3); Sheet.Range(Sheet.Cells(15,1), Sheet.Cells(КоличествоСтрок+14,КоличествоКолонок-3)).Clear(); Sheet.Range(Sheet.Cells(15,1), Sheet.Cells(КоличествоСтрок+14,КоличествоКолонок-3)).Value = МассивКом; Функция ТаблицаЗначенийВМассив(ТаблицаЗначений) СТР=ТаблицаЗначений.Количество(); КОЛ=ТаблицаЗначений.Колонки.Количество(); Массив = Новый Массив(СТР, КОЛ-3); Для i=0 по СТР-1 цикл Для j=0 по КОЛ-4 цикл Массив[i][j]=ТаблицаЗначений[i][j+3]; КонецЦикла; КонецЦикла; Возврат Массив; КонецФункции; Попробовал ещё этот способ v8: Выгрузка массива из 1С в Excel |
|||
5
MaxS
09.12.16
✎
06:23
|
Файл Excel с каким-то уникальным содержанием? Средствами 1С нельзя создать табличный документ и сохранить как Excel?
|
|||
6
marshalbratsk
09.12.16
✎
06:24
|
(5) Да, нужно забивать именно в этот файл
|
|||
7
MaxS
09.12.16
✎
06:38
|
Как вариант - руками забить данные, потом 1С-ом загрузить из файла в COMSafeArray и отладчиком посмотреть в чем отличие от МассивКом...
|
|||
8
marshalbratsk
09.12.16
✎
08:02
|
Проблема устранена. В паре колонок был тип данных, неугодный экселю. Изменил тип на строку и всё начало выгружаться. Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |