Адрес этой странички : http://doc-prg.narod.ru/art_00015/art_00015.htm 
Дата обновления : 11.11.2007
 

(c) Sergey Popov, Usinsk, Komi, 2007

© 11.11.2007 Сергей Попов

Здесь следует отметить, что приведенная ниже статья носит чисто иллюстративный характер и не претендует на бОльшее.
Для серьезной и углубленной проработки специальных вопросов информационного обмена крайне рекомендуется использовать фирменное техническое описание системы 1Cv8.

1Cv8 + Delphi-5.
OLE (COM).
Как "обойти" коллекцию (возможный вариант решения) 
 

Статью в виде файла (73 кб) можно скачать здесь: art_00015.zip

В контексте системы 1Cv8 - коллекция представляет собой не хранящуюся в базе данных совокупность значений или объектов (элементы коллекции). 
Для коллекций доступен обход элементов коллекции посредством конструкции :

    Для каждого ... Из ... Цикл ... КонецЦикла;

Пример (взято из книги А.П.Габец, Д.И.Гончаров "1С:Предприятие 8.0 Простые примеры разработки") : 

    МассивКопия = Новый Массив; 
    Для Каждого Элемент Из ИсходныйМассив Цикл 
        МассивКопия.Добавить(Элемент); 
    КонецЦикла; 

Для большинства (но не для всех) коллекций доступно обращение к элементам коллекции с помощью оператора [<Аргумент>] (квадратные скобки). Как правило, в качестве аргумента передается индекс элемента коллекции. 
Индексирование элементов коллекции начинается с 0. 

Пример :

    ПервоеЗначение = МассивКопия[0]; 
    ПятоеЗначение  = МассивКопия[4];

В случае, если к элементам коллекции нет доступа с использование оператора [], то возникает проблема с перебором элементов такой коллекции в контексте Delphi ...

Один из вариантов решения такой проблемы может быть следующим.

Откроем Конфигуратор 1С:Предприятие и доработаем нашу конфигурацию homelib_07.zip , добавив в общий модуль  (spLib_OLE) конфигурации следующую функцию :

Назначение этой функции: конвертировать коллекцию - в массив, к элементам которого можно получить доступ по индексу с использованием  оператора [].


Пример использования :

 

Учебную конфигурацию можно скачать здесь (41 кб).

 

© 11.11.2007 Сергей Попов

 


Hosted by uCoz
-->