Получает количество измерений массива COMSafeArray.
Синтаксис
GetDimensions()Примеры платформы
КоличествоИзмерений = Массив.GetDimensions();Полное описание, параметры и ограничения
COMSafeArray.GetDimensions (COMSafeArray.GetDimensions)
COMSafeArray (COMSafeArray)
GetDimensions (GetDimensions)
Доступен, начиная с версии 8.0.
Синтаксис:
GetDimensions()
Возвращаемое значение:
Тип: Число.
Описание:
Получает количество измерений массива COMSafeArray.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Пример:
КоличествоИзмерений = Массив.GetDimensions();
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Передать матрицу двух товаров в COMSafeArray
Из двух заполненных массивов строк строим матрицу VT_I4; показываем тип, размеры, чтение и заполнение второго независимого массива.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Собственная учебная база на Windows. Фрагмент вставьте в тело серверной процедуры ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи, выполняемой на Windows.
Все значения и COMSafeArray создаются самим примером в памяти. COMОбъект, Excel/Word, внешние компоненты, базы и сеть не используются.
Запускайте три задачи отдельно. Размеры маленькие и фиксированные; не заменяйте их неограниченными значениями из внешнего API.
Имена GetDimensions/GetValue/SetValue/Resize — реальные имена методов установленной справки, не придуманный английский перевод.
Сверка API/статические тесты не подтверждают фактическое выполнение COMSafeArray в установленной 1С.
ИсходныеСтроки = Новый Массив;
Первая = Новый Массив;
Первая.Добавить(10);
Первая.Добавить(20);
Первая.Добавить(30);
Вторая = Новый Массив;
Вторая.Добавить(40);
Вторая.Добавить(50);
Вторая.Добавить(60);
ИсходныеСтроки.Добавить(Первая);
ИсходныеСтроки.Добавить(Вторая);
Матрица = Новый COMSafeArray(ИсходныеСтроки, "VT_I4", 2, 3);
Сообщить(Матрица.GetDimensions() = 2);
Сообщить(Матрица.GetType() = "VT_I4");
Сообщить(Матрица.GetLength(0) = 2);
Сообщить(Матрица.GetLength(1) = 3);
Сообщить(Матрица.GetValue(0, 0) = 10);
Сообщить(Матрица.GetValue(1, 2) = 60);
ЗаполненнаяКопия = Новый COMSafeArray("VT_I4", 2, 3);
Для НомерСтроки = 0 По 1 Цикл
Для НомерКолонки = 0 По 2 Цикл
ЗаполненнаяКопия.SetValue(НомерСтроки, НомерКолонки, Матрица.GetValue(НомерСтроки, НомерКолонки));
КонецЦикла;
КонецЦикла;
ЗаполненнаяКопия.SetValue(0, 0, 99);
Сообщить(ЗаполненнаяКопия.GetValue(0, 0) = 99);
Сообщить(Матрица.GetValue(0, 0) = 10);
ВыгруженныеСтроки = Матрица.Выгрузить();
Сообщить(ВыгруженныеСтроки.Количество() = 2);
Сообщить(ВыгруженныеСтроки.Получить(1).Количество() = 3);
Сообщить(ВыгруженныеСтроки.Получить(1).Получить(2) = 60);Разбор по шагам
Две строки исходных данных 10/20/30 и 40/50/60 заданы полностью, без многоточия заполните массив.
Конструктор Из массива 1 получает вложенные Массив, строку VT_I4 и размеры 2,3. Размерность 0 — старшая, здесь строки; размерность 1 — колонки.
VT_I4 — знаковое целое 4 байта, не произвольная точность числа 1С. Все наши значения заведомо помещаются в этот диапазон.
Конструктор По типу элемента 1 задаёт тип и размеры, но не гарантирует исходные значения. Поэтому каждую ячейку второго массива заполняем до чтения.
Изменение второй матрицы не меняет первую. Выгрузить копирует содержимое в обычные вложенные массивы 1С, а не возвращает тот же COMSafeArray.
Как проверить результат
Одиннадцать логических проверок дают Истина; исходная матрица сохранила 10 в первой ячейке.
Выгруженный второй ряд содержит три значения, последнее 60. Не запущено внешнее приложение.
Ожидаемый результат
Показана настоящая двумерная структура COM с двумя способами конструирования и независимым заполнением.
На что обратить внимание
Не читайте ячейки конструктора по типу до явного заполнения.
Один плоский массив из шести значений не выдаётся здесь за две вложенные строки.
VT_I4 нельзя использовать для строк или дробных денежных сумм без согласования типа COM.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.