Обход элементов справочника

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

Обход элементов справочника

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

Для формирования такого реестра создайте отчет с помощью Конструктора Отчетов и Конструктора Макета Отчетов (Конструктору Макета Отчетов следует указать, что отчет будет содержать циклы по строкам, количество циклов по строкам -1, количество колонок - 3).

Конструктор Макета Отчета сгенерирует процедуру формирования отчета:

Процедура Сформировать()
	Таб=СоздатьОбъект("Таблица");
	Таб.ИсходнаяТаблица(«Сформировать");
	Таб.ВывестиСекцию("Шапка");
	Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
	Пока "Условие" Цикл
		Таб.ВыБестиСекцию("Строка_1");
	КонецЦикла;
	Таб.ВывестиСекцию("Подвал");
	Таб.ТолькоПросмотр(1); 
	Таб.Показать("Сформировать","");
КонецПроцедуры

Эта процедура пока содержит только строки вывода печатной формы, но не содержит строк получения и вывода необходимых данных.

Рассмотрим пример формирования реестра товаров (элементов справочника "Номенклатура").

Наша задача - обойти все элементы справочника "Номенклатура" и вывести необходимую информацию - код, наименование и цену товара - на печать.

Изменения, которые нам предстоит внести в исходный текст, затронут только конструкцию "Пока . . . Цикл . . . КонецЦикла", остальные строки останутся прежними. Поэтому далее мы будем показывать преобразование только этих строк алгоритма.

Для выполнения необходимых действий над справочником "Номенклатура" мы должны создать специальную переменную с помощью функции "СоздатьОбъект":

Спр=СоздатьОбъект("Справочник.Номенклатура");
Пока "Условие" Цикл
	Таб.ВывестиСекцию("Строка_1");
КонецЦикла

Эта переменная будет использоваться для перебора элементов справочника Далее выберем элементы справочника с помощью метода "ВыбратьЭлементы":

Спр=СоздатьОбъект("Справочник.Номенклатура");
Спр.Выбрать Элементы();
Пока «Условие» Цикл 
	Таб.ВывестиСекцию("Строка_1");
КонецЦикла;

Метод "ВыбратьЭлементы" открывает (начинает) перебор элементов справочника. В данном случае, мы выбираем все элементы справочника "Номенклатура". Обрабатывать элементы справочника мы будем в цикле, который у нас уже в каком-то виде есть, он содержит оператор вывода строки в печатную форму, но не содержит условия.

Очевидно, цикл нам нужен, чтобы перебрать все элементы справочника. Для получения очередного элемента справочника, мы воспользуемся методом "ПолучитьЭлемент".

Чтобы получить очередной элемент справочника, следует записать:

Спр.ПолучитьЭлемент()

Если элемент справочника выбран, метод возвращает значение "1", в противном случае - "0" Поэтому, прежде чем выполнять над элементом справочника какие-либо действия, необходимо проверить, результат работы метода (то есть, мы проверяем, имеется ли у нас элемент справочника для обработки)

Запишем выражение для проверки результата выборки элементов справочника в условие цикла:

Спр=СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл
	Таб.ВывестиСекцию(«Строка_1»);
КонецЦикла;

Таким образом, для перебора всех элементов справочника мы использовали конструкции организации цикла и методы "ВыбратьЭлементы" - "ПолучитьЭлемент". После выполнения метода "ПолучитьЭлемент" переменная "Спр" позиционирована (установлена) на очередной элемент справочника. При этом все реквизиты этого элемента можно получить обращаясь через точку ("Спр.Код, Спр.Наименование и т.д.). При следующем выполнении метода "ПолучитьЭлемент" переменная позиционируется на следующий элемент и обращение "через точку" к реквизитам уже будет выдавать информацию о следующем элементе.

Итак, мы перебрали все элементы справочника и для каждого элемента вывели в печатную форму строку Но в сформированном Конструктором шаблоне печатной формы отчета секция «Строка_1» состоит из пустой строки:

Кроме того, в шапке формируемого отчета стоят условные названия колонок отчета Колонка_1, Колонка_2, Колонка_3. Заменим их названиями "Код", "Наименование" и "Цена".

А в секции Строка_1 в колонках таблицы 2, 3 и 4 запишем соответственно Спр.Код, Спр.Наименование и Спр.Цена:

Доработка алгоритма, в целом, завершена. В справочнике "Номенклатура" мы перебрали все элементы и вывели в отчет их реквизиты: "Код", "Наименование" и "Цена".

Ещё раз: как продвигать свои посты на «Клерке»

Если вы видите это сообщение, значит продвижение работает.

Ещё раз: как продвигать свои посты на «Клерке»
10

Начать дискуссию

Алименты

Должники по алиментам станут известны всем

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

1

Курсы повышения
квалификации

22
Официальное удостоверение с занесением в госреестр Рособрнадзора

Не всегда на авто, стоящее на учете, надо платить транспортный налог

Регистрация авто в ГИБДД после 15 числа одного месяца и снятие с учета до 15 числа другого месяца дает право не платить транспортный налог.

Создадут единую цифровую платформу туризма: что она дает

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

1
Лучшие спикеры, новый каждый день

Вклады 18%, обвал рынка, рост налогов, дешёвый доллар, новые облигации, дивиденды и другие новости. Воскресный инвестдайджест

Есть что по жести? Ещё как есть! Разве что расчленёнки не хватает, так-то рынок акций и облигаций нормально приуныл. Но это пока был не обвал, а коррекция. Обвал точно ожидает нас всех впереди, но это не точно. Зато доллар всё ещё дешёвый, IPO проводятся, появляются новые облигации и дивиденды.

Вклады 18%, обвал рынка, рост налогов, дешёвый доллар, новые облигации, дивиденды и другие новости. Воскресный инвестдайджест

С 01 июля новая форма отчета о движении денег по зарубежным счетам

С 01 июля 2024 года изменится форма отчета о движении денег и иных финансовых активов по зарубежным счетам, которые готовят и подают юридические лица и ИП

В чем проблема прогрессивной налоговой системы в России?

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

Опытом делятся эксперты-практики, без воды

💥 Бодрящие скидки на курсы повышения квалификации и профессиональной переподготовки! Ведем запись на первый летний поток

Набираем первый летний поток-2024 на профкурсы. Успейте записаться до 3 июня, чтобы за лето повысить квалификацию и выйти на новый уровень знаний!

Календарь вебинаров для бухгалтера в июне 2024. Выбирайте и смотрите!

Будьте в курсе последних изменений в законодательстве! Выбирайте из 9 вебинаров интересные именно вам и записывайтесь. Забирайте в закладки календарь вебинаров для бухгалтера, которые пройдут в июне 2024. Подписчикам «Клерк.Премиум» — бесплатный доступ.

Календарь вебинаров для бухгалтера в июне 2024. Выбирайте и смотрите!
7
Инвестиции

Инвестиции в космические объекты пропишут в законе

Госдума приняла в первом чтении законопроект о государственно-частном партнерстве в сфере космической деятельности.

Трудовое право

Чем грозит неявка сотрудника на медосмотр

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

Налог на прибыль

Все гранты на инновационное развитие освободили от налога

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

Предприятия за каждого сотрудника из другого региона получат 300 тысяч рублей

Государство выделит субсидии бизнесу, который работает над крупным проектом и привлекает сотрудников из других регионов. Размер поддержки составит 12 МРОТ.

Миникурсы, текстовые и видеоинструкции для бухгалтеров

За что заблокируют ваш счет? Что не нужно делать, чтобы «влететь» на блок

Сейчас в мире бизнеса идет война за темную и светлую сторону.

За что заблокируют ваш счет? Что не нужно делать, чтобы «влететь» на блок

Налоговые перспективы на 2025 год. Прогрессивная шкала НДФЛ

Какими будут налоговые ставки НДФЛ в 2025 году и можно ли этот налог оптимизировать.

🚚 Грузоперевозка в страну ЕАЭС может облагаться разным НДС

При сделках с контрагентами из стран ЕАЭС взимание косвенных налогов при работах, услугах идет в стране, территория которой признается местом реализации. При грузоперевозках место реализации – страна исполнителя.

МСФО

Внедрение азиатских МСФО на российский рынок

В данном докладе мы рассмотрим перспективы внедрения азиатских Международных стандартов финансовой отчетности (МСФО) на российский рынок.

Внедрение азиатских МСФО на российский рынок
1
Маркетплейсы

Цены на наушники на маркетплейсах оказались завышенными по сговору

ФАС выявила картель продавцов наушников на маркетплейсах. Продавцы общались в чате мессенджера, писали негативные комментарии конкурентам и заказывали наушники «в никуда».

💥 Бодрящие скидки на курсы повышения квалификации и профессиональной переподготовки! Ведем запись на первый летний поток обучения

Набираем первый летний поток-2024 на курсы повышения квалификации и переподготовки с максимальными скидками, чтобы вы не ограничивали траты на отпуск и получили полезные знания. Начало обучения 1 июня, присоединяйтесь!

💥 Бодрящие скидки на курсы повышения квалификации и профессиональной переподготовки! Ведем запись на первый летний поток обучения
2
Инвестиции

Итоги 35 месяцев инвестиций. 3,83 млн рублей

1 июня, значит пора защищать детей и подводить итоги мая! Ежемесячно я пишу отчёт о том, что произошло с моими инвестициями. Напоминаю: я начал копить на квартиру в Сочи в июле 2021. 35 месяцев позади. Погнали!

Итоги 35 месяцев инвестиций. 3,83 млн рублей

Интересные материалы

Горящие глаза, «ген предпринимательства» и Борис Мальцев 

Студенты из акселератора «БизнесКуб» КубГУ, мечтая о собственных стартапах и предпринимательских прорывах, направились на встречу с успешными бизнесменами.

Горящие глаза, 
«ген предпринимательства» и 
Борис Мальцев 
1