1с объединить два массива в один

Обновлено: 03.07.2024

Создание массива

1. Как создать массив нужного размера

//Внесем значения элементов массива

2. Как создать пустой массив и добавить в него элементы

пМассив = новый Массив ; //создали пустой массив

//Внесем значения элементов массива

3. Как создать многомерный массив.

Рассмотрим этот вопрос на примере двумерного массива, так как массивы больших размерностей используются значительно реже, а механизм их работы не отличается от двумерного.

//Внесем значения элементов массива, пронумеровав каждое слово

4. Как создать фиксированный массив

Фиксированный массив отличается от обычного тем, что его нельзя изменять. Нельзя добавлять, удалять или менять значения элементов такого массива.

Фиксированный массив может быть получен из обычного:

пМассив = новый Массив ;

Функции работы с массивами

Работу функций будем рассматривать на примере одномерного массива пМассив, созданного выше и состоящего из 4 элементов:

Функция ВГраница()

Получает наибольший индекс элемента массива. Он всегда на единицу меньше количества элементов массива.

Функция Вставить()

Вставляет какое-то значение в элемент массива с указанным индексом. Последующие элементы массива сдвигаются

Функция Добавить()

Создает новый элемент в конце массива и вставляет туда заданное значение

Функция Количество()

Возвращает количество элементов массива.

Функция Найти()

Ищет в массиве заданный элемент. Если находит, возвращает его индекс. Если не находит, возвращает Неопределено.

Функция Очистить()

Удаляет все значения из массива.

Функция Получить()

Получает значение массива по индексу. Эту же задачу можно решить через [].

Функция Удалить()

Удаляет элемент массива по индексу

Функция Установить()

Устанавливает значение элемента массива по индексу. Работает аналогично [].

Как обойти массив

Можно обойти все элементы массива без указания индекса:

Можно при обходе использовать индекс:

Как обойти многомерный массив

Многомерный массив обходится с помощью тех же циклов (см. выше), но один цикл должен быть вложен в другой.

Или с применением индексов.

Сортировка массива

Для сортировки массива нам потребуется вспомогательный объект с типом СписокЗначений.

Сравнение двух массивов

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

Возврат Истина ; // Если дошли до сюда, то массивы равны
КонецФункции

В функцию нужно передать 2 сравниваемых массива. Функция возвращает значение Истина, если массивы равны, и Ложь, если не равны.

1С. Объединение двух массивов в один (при помощи БСП, клиент, сервер)

Если в Вашей конфигурации используется БСП, то объединить два массива в один можно при помощи следующей процедуры:

Процедура ДополнитьМассив общего модуля ОбщегоНазначенияКлиентСервер

// Дополняет массив МассивПриемник значениями из массива МассивИсточник.

// МассивПриемник - Массив - массив, в который необходимо добавить значения.

// МассивИсточник - Массив - массив значений для заполнения.

// ТолькоУникальныеЗначения - Булево - если истина, то в массив будут включены только уникальные значения.

Процедура ДополнитьМассив ( МассивПриемник , МассивИсточник ,

МассивОбработанныхИдентификаторов = Новый Массив ; Для Каждого ГруппаОбработки Из МассивГруппОбработки Цикл МассивОбработанныхИдентификаторовГруппы = ОбработатьИдентификаторыГруппы ( ГруппаОбработки ); ОбщегоНазначенияКлиентСервер . ДополнитьМассив ( МассивОбработанныхИдентификаторов , МассивОбработанныхИдентификаторовГруппы Истина ); КонецЦикла ;

Устаревшая процедура, но которая еще используется в конфигурациях на предыдущих версиях БСП:

ОбщегоНазначения . ЗаполнитьМассивУникальнымиЗначениями ( МассивПриемник , МассивИсточник )

Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.

Комментариев нет :

Поиск по этому блогу

Календарь блога


Дано : Excel c числами и суммами в рублях в ячейках. Задача : написать данные числа прописью без использования макросов и каких-либо над.

Дано : Word 2016 (обновляемый по подписке Office 365). Задача : добавить на страницу рисунок (значок) из готовой коллекции рисунков.


Дано : таблица Excel с колонкой, содержащей фамилию, имя и отчество (ФИО). Задача : извлечь при помощи формул из колонки ФИО данные в след.


Дано : Excel 2016. В двух ячейках указаны даты со временем. Задача : необходимо рассчитать количество полных часов между датами . Дата 1.

Дано : 1С, версия платформы 8.3. Написан определенный код процедуры. Задача : прервать выполнение процедуры, чтобы не выполнялся определ.

Имеем два массива. Как получить в результате один новый массив, с элементами, которые есть в обоих массивах ?

(6) перебор может оказаться менее эффективным, нежели получение нужного массива из того места, откуда получаются заявленные два. но автор темнит

(6) Элементы могут повторяться. Сортировка позволит отсеять их сразу. А иначе - придётся пое^Hмаяться.

Массивы выгрузить в ТЗ. ТЗ - две колонки: значение из массива и счетчик (1). Потом ТЗ свернуть по значению, суммируя счетчик. продолжить или и так всё ясно?

(0) интересно, задача, которую я придумал давать на собеседованиях потенциальным стажерам, чтобы проверить наличие алгоритмического мышления (когда я еще во фране работал). ТС, откуда тебе задача прилетела?

(17) проясвяти, плиз, как запросом сделать такое для массивов [1, 2, 3] и ["й", "ц", "у"]. Результат, соответственно, должен получиться примерно такой: [1, 2, 3, "й", "ц", "у"]

(19) а с какого релиза работает такая выборка из массива?

(2) А кто сказал, что из массива? Из таблицы значений, созданной из массива.

кстати, в последнем запросе не "выбрать . объединить все выбрать . ", а "выбрать различные . объединить выбрать различные . "

(22) Там и в первых запросах не &Массив, а &Массив1 и &Массив2 должно быть.

(21) т.е. 2 цикла, чтобы определить типы, 2 цикла чтобы наполнить таблицы, запрос, выгрузить, выгрузить колонку? Кривовато же.

(24) Почему циклы? ЗагрузитьКолонку().
Но я никоим образом не настаиваю на варианте из (17), моё предложение - (5). Я лишь к тому, что можно и запросом - если вдруг свободное время выдалось и занять его нечем.

(25) чтобы загрузитьколонку - надо сначала строки создать.

(27) Согласен. Надо переходить на 7-ку - там и без цикла можно :-)

(18) по условию задачи из массивов [1, 2, 3] и ["й", "ц", "у"] должен получиться пустой массив, так как совпадающих элементов нет

Объекты типа массив в 1С 8.3 представляют собой совокупность упорядоченных значений любого типа, в том числе и типа «массив», что в свою очередь позволяет организовывать многомерные массивы. Идентификация значений осуществляется по индексам, нумерация которых начинается с «0».

Создание массива

Синтаксис:

Примеры:

Добавление элементов в массив

Примеры:


Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>



Получение значения элемента по индексу

Поиск в массиве 1С

Присвоение значений элементам массива

Примеры:

Как узнать количество элементов массива (размер массива)

Перебор массива 1С

Примеры:

Перебор всех элементов двумерного массива

Примеры:

Удаление элементов из массива

Примеры:

Как разложить строку в массив


Пример преобразования массива в список значений


Пример преобразования массива в таблицу значений


Сортировка массива 1С разными способами

Примеры:

Как свернуть массив в 1С

Пример:


Поддержите нас, расскажите друзьям!

СПРОСИТЕ в комментариях!

Услуги 1С

Наш канал на Youtube


При использовании данного сайта, вы подтверждаете свое согласие на использование файлов cookie в соответствии с настоящим уведомлением в отношении данного типа файлов. Если вы не согласны с тем, чтобы мы использовали данный тип файлов, то вы должны соответствующим образом установить настройки вашего браузера или не использовать сайт.

Отправляя любую форму на сайте, вы соглашаетесь с политикой конфиденциальности данного сайта.

Массив в платформе 1С 8.3 это самая простая универсальная коллекция значений.

Что такое Массив?

Создать массив можно при помощи конструктора Новый

Новый Массив (<КоличествоЭлементов1>…<КоличествоЭлементовN>)

Двумерный массив из 6 элементов (три строки, два столбца).

В отличие от таблиц значений 1С, работать с массивами можно как в режим тонкого клиента, так и в режим толстого клиента.

Имейте в виду, что когда Вы создадите не пустой массив (одномерный или многомерный), его элементы уже будут существовать, но с не заполненными значениями. Если Вы посмотрите на данный массив в отладчике, то увидите напротив каждого элемента тип Неопределено.

Пустой одномерный массив 1С 8.3

Обращаться к элементу массива можно посредством индекса. Делается это с помощью оператора «квадратные скобки».

Как видите, элементы массива могут иметь разные типы ( в том числе ссылочные).

При помощи индекса и квадратных скобок можно как задать какой-то элемент массива, так и прочитать этот элемент.

Индекс внутри скобок не должен превышать общего количества элементов минус один (т.к. индекс начинается с нуля). Если мы напишем такой код:

То при его выполнении, возникнет ошибка «Индекс находится за границами массива»

Индекс находится за границами массива

Хоть мы и указали у конструктора массивов в скобках значение 5, но обращаться может только до 4 индекса, поскольку нумерация индексов начинается с нуля.

Перебор элементов массива

Перебрать все элементы массива можно двумя способами. Первый способ – с помощью так называемого «китайского кода», когда присваиваем каждому элементу массива нужное значение. Иногда это бывает необходимо.

Но чаще необходимо прочитать каждый элемент массива в цикле. Для этого в теле цикла нужно обойти индексы от первого до последнего. Сделать это можно при помощи цикла Для…Цикл.

Или с помощью цикла Для каждого … Цикл

Где в переменной ЭлМассив для каждой итерации содержится соответствующее значение элемента массива.

Количество элементов массива

Узнать количество элементов массива можно двумя способами. С помощью метода Количество() и метода ВГраница(). Метод Количество() возвращает количество элементов массива (т.е. то число, что задается в скобках конструктора массива), а метод ВГраница() самый максимальный индекс элемента массива или граница массива. В этом случае перебор элементов массива в цикле возможен двумя способами.

Второй способ считается более правильным.

Добавление элементов массива

Добавить элемент массива можно с помощью методов Добавить() и Вставить(). Первый метод добавляет элемент в конец массива, а второй вставляет элемент в нужный индекс массива.

В этом коде мы создали пустой массив, потом добавили элемент (он же первый), потом вставили на нулевой индекс элемент, а потом добавили. Должен получиться следующий результат.

Добавление элементов массива

Многомерный массив

Многомерным массивом в языке программирования 1С называется массив, элементами которого являются массивы. Если одномерный массив создавался посредством конструктора с одним параметром, то в многомерном массиве может быть два и больше параметров.

МассивМн1 = Массив(3,2,5);

В этом примере мы создали массив, у которого будет три элемента, каждый из которых будет массивом, содержащим по два массива, в каждом из которых будет пять элементов.

Например, создадим двумерный массив:

Вывод двумерного массива

Статьи о других универсальных коллекциях значений в 1С


Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Читайте также: