Массивы на платформе 1С 8.3

0
502
27.12.2019 Иван Каплин

Содержание:

1.     Описание из синтакс-помощника

2.     Как сформировать новый Массив

3.     Способы заполнения Массива

4.     Обход Элементов Коллекции

 

Массив (тип значения 1С Массив) – это простейшая универсальная коллекция значений в информационной системе 1С, где элементы упорядочены по индексу (нумерация начинается с 0). Тип значения элементов может быть любой, включая тип значения Массив. Доступ к элементам массива осуществляется через индекс, по номеру которого можно получить доступ к значению элемента на платформе 1С 8.3. 

 

1.    Описание из синтакс-помощника


Доступность синтакс-помощника: Тонкий клиент 1С, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Возможен обмен с сервером. Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/core}. Имя типа XDTO: Array. 

 

2.    Как сформировать новый Массив


Чтобы сформировать новый Массив, нужно присвоить переменной типа значения «Массив». Каждый Элемент в таком Массиве 1С, получает тип значения «Неопределено». В параметрах создания можно указать, какой Массив хотите создать.


Для пустого Массива:

         МойНовыйМассив = Новый Массив();

Для создания одномерного Массива (одна колонка):

         МойНовыйМассив = Новый Массив(ЧислоЭлементов);

Для создания N-мерногоМассива, где каждый Элемент так же Массив:

         МойНовыйМассив = Новый Массив(ЭлементовПервогоУровня, ЭлементовВторогоУровня, …, ЭлементовN-Уровня);


В этом случае каждый Элемент первого уровня будет иметь тип значения Массив, внутри которого каждый Элемент второго уровня будет так же типом значения Массив и так далее, где на N-уровне Элементы будут с типом значения «Неопределено». Следовательно, количество Элементов в таком Массиве будет равно: ЭлементовПервогоУровня * ЭлементовВторогоУровня* … * ЭлементовN-Уровня


3.    Способы заполнения Массива


Существует несколько способов заполнения Массива.

1.     Метод «Добавить».

Добавляет Элемент в конец Массива:

МойНовыйМассив.Добавить(«Строка»)                         Поле типа Строка

МойНовыйМассив.Добавить(42)                                      Поле типа Число

МойНовыйМассив.Добавить(‘20190315123501’)          Поле типа Дата состав Дата и время

МойНовыйМассив.Добавить(‘20190315’)                        Поле типа Дата состав Дата


Также любому Элементу может быть присвоен тип значения «Массив». Например:

МойНовыйМассив.Добавить(Новый Массив)                     Поле типа Массив

 

2.     Метод «Вставить».

Следует отличать его от Метода «Добавить». Последний добавляет Элемент в конец Массива, а первый присваиваетновое значение Элементу:

МойНовыйМассив.Вставить(НомерИндекса,НовоеЗначениеЭлемента)

 

3.     Метод «Количество».

Посредством метода доступно получение количество Элементов в Массиве. Следует обратить внимание, что Количество будет всегда на единицу больше последнего значения Индекса:

МойНовыйМассив.Количество()

 

4.     Метод «Найти». Позволяет найти уникальный Элемент в Массиве, если такой элемент не будет найден, то возвращает значение «Неопределено»:

МойНовыйМассив.Найти(«Слово»)

МойНовыйМассив.Найти(42)

МойНовыйМассив.Найти(’20190315’)

 

5.     Метод «Очистить».

Позволяет удалить все Элементы Массива делая его пустым:

МойНовыйМассив.Очистить()

 

6.     Метод «Получить».

Позволяет получить значение Элемента по его Индексу:

МойНовыйМассив.Получить(ИндексЭлемента)

 

7.     Метод «Удалить».

Позволяет удалить Элемент из Массива по Индексу:

МойНовыйМассив.Удалить(ИндексУдаляемогоЭлемента)

 

8.     Метод «Установить».

Позволяет установить новое значение Элемента по Индексу, когда использование оператора [] (например,МойНовыйМассив[ИндексЭлемента]) невозможно.

МойНовыйМассив.Установить(ИндексЗаменяемогоЭлемента,НовоеЗначениеЭлемента)

 

9.     Метод «ВГраница».

Позволяет получить наибольший Индекс в Массиве. Если Массив пустой, то возвращает-1:

МойНовыйМассив.ВГраница   

 

4.    Обход Элементов Коллекции


Для данной Коллекции значений доступен обход Элементов Коллекции посредством оператора «Для каждого». При обходе в Циклах выбираются значения Элементов Массива в порядке возрастания Индекса:

Для каждого ЭлементИз МассивЦикл

<Описание событий / вычислений>

КонецЦикла;


Например, при необходимости заменить Элементы на другие значения:

НовоеЧисловоеЗначение = 5;

Для каждого ЭлементИз МойНовыйМассивЦикл

           Элемент = НовоеЧисловоеЗначение;

                   НовоеЧисловоеЗначение = (НовоеЧисловоеЗначение + 7) / 2;

КонецЦикла;

 

При этом возможен также обход Массива по иному порядку, используя оператор «Для». Следует учитывать, что в таком случае необходимо указывать границу Массива. Иначе по окончанию обхода цикла будет вызвана ошибка «Индекс находится за границами Массива»:

Для Итератор = 0ПоМойНовыйМассив.ВГраница()Цикл

<Описание событий / вычислений>

КонецЦикла;


Например, при необходимости выбрать из Массива все значения типа Число и перенести их в новый Массив:

МассивДляЧисел = Новый Массив();

Для Итератор = 0ПоМойНовыйМассив.ВГраница()Цикл

           ЗначениеЭлемента = МойНовыйМассив[Итератор];

           ЕслиЗначениеЭлемента= Тип («Число») Тогда

                     МассивДляЧисел.Добавить(ЗначениеЭлемента);

                     МойНовыйМассив.Удалить(Итератор);

           КонецЕсли;

КонецЦикла;

 

При выполнении обхода многомерных Массивов выполняются те же конструкции, только с учетом мерности Массивов. Так, например, для трехмерного Массива обход его элементов будет выглядеть следующим образом:

Для Итератор1 = 0ПоМассив.ВГраница()Цикл

            Сообщить (Массив[Итератор1]);

            Для Итератор2 = 0ПоМассив[Итератор1].ВГраница()Цикл

                        Сообщить (Массив[Итератор1][Итератор2]);

                        Для Итератор3 = 0ПоМассив[Итератор1][Итератор2].ВГраница()Цикл

                                    Сообщить (Массив[Итератор1] [Итератор2][Итератор3]);

                        КонецЦикла;

            КонецЦикла;

КонецЦикла;

 

Специалист компании ООО «Кодерлайн» 

Иван Каплин.

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Теги
#1С: CRM #1С: ERP #1С: ERP Управление строительной организацией #1С: ERP. Управление буровой компанией #1С: WMS Управление складом #1С: Аренда и управление недвижимостью #1С: БУХ #1С: Договорчики #1С: Документооборот #1С: ЗУП #1С: Интеграция #1С: КА #1С: Колледж #1С: Конвертация данных #1С: Модули #1С: Платформа #1С: Розница #1С: Сценарное тестирование #1С: ТОИР #1С: УАТ #1С: УКФ #1С: Университет #1С: УНФ #1С: УПП #1С: Управление строительной организацией #1С: УТ #1С: УХ #1С:ERP #1С.6-НДФЛ #ADO #APACHE #API #com-объекты #Excel #Excel в 1С #GoogleDrive #HTTP #ITIL #Koderline: Управление медиа-холдингом #Koderline: Управление проектами строительства скважин #LINUX #MS SQL Server #WEB #WEB-сервисы 1С #Word #XML #Администрирование 1С #Безопасность сервера #Бесшовная интеграция #БИТ.Финанc #Битрикс24 #Блокировки в 1С #БСП #БУ #Бурение скважин #Бюджетирование #Внедрение #Внедрение ERP #Закрытие месяца #Запросы 1С #Интеграция 1С #КАК ОТРАЖАЮТСЯ ТОВАРЫ В ПУТИ 1С #Как сделать в 1С #Конвертация данных #Корпоративное сопровождение #Лизинг #Лицензии 1С #Механизм Анализа Данных в 1С #Моделирование #Модуль Диадок #МСФО #Налоги #Обмен между базами #Обновления #Оптимизация #Отпуск #Отчетность #Отчеты в 1С #Оценка задач #Перенос данных #Планирование #Полезные обработки #Правила обмена #предопределенные элементы справочников #Проводки 1С #Программирование в 1С #Программные права #Продажи #Производство #Работа с объектами в 1С #Расширение конфигурации #РСБУ #СКД #Соединение COM в 1С платформе #Сравнение конфигураций #Тестирование 1С #Техническое задание #Торговое оборудование #Транспортная логистика #Управление проектами #Финансовый учет #Хранилище настроек #Ценообразование #Экзамен 1С #Яндекс.Касса Email или телефон Работа с объектами в 1С Функциональные опции в 1С
Услуги программиста 1С
Получите специалиста  
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.