<p>В ходе написания алгоритмов может возникнуть потребность
перебрать все элементы справочника Например, может понадобиться
получить реестр какого-либо справочника (товаров, контрагентов и
т.д.), содержащий перечень всех элементов этого справочника
<p>Для формирования такого реестра создайте отчет с помощью
Конструктора Отчетов и Конструктора Макета Отчетов (Конструктору
Макета Отчетов следует указать, что отчет будет содержать циклы
по строкам, количество циклов по строкам -1, количество колонок - 3).
<p>Конструктор Макета Отчета сгенерирует процедуру
формирования отчета:<p>
<pre>
Процедура Сформировать()
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица(«Сформировать");
Таб.ВывестиСекцию("Шапка");
Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
Пока "Условие" Цикл
Таб.ВыБестиСекцию("Строка_1");
КонецЦикла;
Таб.ВывестиСекцию("Подвал");
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать","");
КонецПроцедуры
</pre>
<p>Эта процедура пока содержит только строки вывода печатной
формы, но не содержит строк получения и вывода необходимых
данных.
<p>Рассмотрим пример формирования реестра товаров (элементов
справочника "Номенклатура").
<p>Наша задача - обойти все элементы справочника
"Номенклатура" и вывести необходимую информацию - код,
наименование и цену товара - на печать.
<p>Изменения, которые нам предстоит внести в исходный текст,
затронут только конструкцию "Пока . . . Цикл . . . КонецЦикла",
остальные строки останутся прежними. Поэтому далее мы будем
показывать преобразование только этих строк алгоритма.
<p>Для выполнения необходимых действий над
справочником "Номенклатура" мы должны создать
специальную переменную с помощью функции "СоздатьОбъект":<p>
<pre>
<strong>Спр=СоздатьОбъект("Справочник.Номенклатура");</strong>
Пока "Условие" Цикл
Таб.ВывестиСекцию("Строка_1");
КонецЦикла
</pre>
<p>Эта переменная будет использоваться для перебора элементов
справочника Далее выберем элементы справочника с помощью
метода "ВыбратьЭлементы":<p>
<pre>
Спр=СоздатьОбъект("Справочник.Номенклатура");
<strong>Спр.Выбрать Элементы();</strong>
Пока «Условие» Цикл
Таб.ВывестиСекцию("Строка_1");
КонецЦикла;
</pre>
<p>Метод "ВыбратьЭлементы" открывает (начинает) перебор
элементов справочника. В данном случае, мы выбираем все элементы
справочника "Номенклатура". Обрабатывать элементы справочника мы
будем в цикле, который у нас уже в каком-то виде есть, он
содержит оператор вывода строки в печатную форму, но не содержит
условия.
<p>Очевидно, цикл нам нужен, чтобы перебрать все элементы
справочника. Для получения очередного элемента справочника, мы
воспользуемся методом "ПолучитьЭлемент".
<p>Чтобы получить очередной элемент справочника, следует
записать:
<pre>
Спр.
Читать всю статью: http://www.klerk.ru/soft/1c?1879
