644 документа
← К списку

Теория: способы работы с коллекцией

страница

Теория: способы работы с коллекцией

В процессе формирования движений документов, когда в цикле обходили табличные части документов ПриходнаяНакладная и ОказаниеУслуги, мы столкнулись с одним из объектов встроенного языка, который является коллекцией.

Многие объекты встроенного языка являются коллекциями. Коллекция представляет собой совокупность объектов. Существуют общие принципы работы с любой коллекцией.

Во-первых, доступ к каждому объекту коллекции возможен путем перебора элементов коллекции в цикле. Для этого используется конструкция языка Для Каждого Из … Цикл … (листинг 6.3).

Листинг 6.3. Перебор элементов коллекции в цикле

Для Каждого СтрокаТабличнойЧасти Из ТабличнаяЧасть Цикл

 

Сообщить(СтрокаТабличнойЧасти.Услуга);

 

КонецЦикла;

В этом примере ТабличнаяЧасть — это коллекция строк табличной части объекта конфигурации. При каждом проходе цикла в переменной СтрокаТабличнойЧасти будет содержаться очередная строка из этой коллекции.

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

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

Листинг 6.4. Обращение к элементу коллекции

Справочники.Сотрудники;

Справочники["Сотрудники"];

В этом примере Справочники — это коллекция менеджеров всех справочников, содержащихся в конфигурации. Так как каждый справочник конфигурации имеет свое уникальное имя, то к конкретному элементу этой коллекции (к менеджеру конкретного справочника) можно обратиться, указав имя этого справочника: Справочники["Сотрудники"].

  • Если нет смысла в «персонификации» элементов коллекции (коллекция неименованная), тогда обращение к элементу коллекции возможно по индексу (индекс первого элемента коллекции — ноль), листинг 6.5.

Листинг 6.5. Обращение к элементу коллекции по индексу

ТабличнаяЧасть[0];

В этом примере ТабличнаяЧасть — это коллекция строк табличной части объекта конфигурации. И мы обращаемся к первому элементу этой коллекции, указывая его индекс — 0.

Следует отметить, что существуют коллекции, сочетающие оба вида обращений. Например, к коллекции колонок таблицы значений можно обращаться как по именам колонок, так и по индексу.