Массив
VT_I4
SAFEARRAYCOM

COMSafeArray — объектная обёртка над многомерным массивом SAFEARRAY из COM, а не «родная» коллекция 1С вроде Массива. Нужен при обмене типизированными массивами с внешними COM-объектами через OLE Automation — например, при передаче диапазона ячеек в Excel через COMОбъект, или когда метод внешней компоненты ожидает на входе именно SAFEARRAY, а не обычный массив 1С.

В отличие от Массива, у COMSafeArray строго один тип элементов (VARTYPE) на весь массив — кроме VT_VARIANT, где допустимо любое значение, как в обычном Массиве. Многомерность нативная (не вложенные массивы), а измерения нумеруются с 0, от старшего к младшему. Почти все методы существуют только под английским именем — у 1С это редкое исключение из обычной двуязычности платформы.

Конструкторы · Измерения и границы · Чтение и запись значений · Особенности и ограничения · Массив — обычная коллекция 1С

Методы

Создание

СинтаксисЧто делает
Новый COMSafeArray(ТипЭлемента, …)пустой типизированный SAFEARRAY заданной размерности
Новый COMSafeArray(Массив, ТипЭлемента, …)SAFEARRAY, заполненный значениями из обычного массива 1С

Измерения и границы

МетодЧто делает
GetDimensions()число измерений массива
GetUpperBound(НомерИзмерения)верхняя граница указанного измерения
GetLowerBound(НомерИзмерения)нижняя граница указанного измерения

Чтение и запись

МетодЧто делает
GetValue(…)значение элемента по индексам измерений
SetValue(…)записать значение элемента по индексам измерений
Выгрузить()скопировать всё содержимое в обычный Массив