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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Общество

Врачи в новых регионах дополнительно получат до 2 млн рублей

Медицинский персонал получит компенсации за переезд на работу в новые регионы, на Дальний Восток, Крайний Север и в Арктическую зону.

В июне инфляция выросла до 8,59%

В 62 регионах России ускорился рост цен на большинство товаров и услуг.

💊 Соцвычет по НДФЛ можно получить на покупку любых лекарств

По расходам на покупку лекарств, назначенных лечащим врачом и приобретаемых за счет собственных средств, предусмотрен социальный налоговый вычет по НДФЛ.

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

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

В РФ прошел первый эксперимент по маркировке в открытом океане

Компания «Доброфлот» приняла участие в эксперименте по маркировке консервов в Тихом океане.

ФТС собрала за полгода больше 3 трлн рублей

Время типового досмотра грузового транспорта на границе сократится до 10 минут.

Мошенники добрались до домовых чатов: новые схемы обмана

МВД сообщило, что мошенники активно осваивают новые площадки. И одна из них — чаты жильцов многоквартирных домов.

Опытом делятся эксперты-практики, без воды
Бесплатно с 6-НДФЛ

Как в 1С заполнить 6-НДФЛ за 1 полугодие 2024 года: пошаговая инструкция

В 2024 году форма и порядок заполнения расчета 6-НДФЛ в очередной раз претерпели изменения. Рассказываем, как заполнить в 1С 6-НДФЛ за первое полугодие по правилам 2024 года, на что обратить внимание.

Как в 1С заполнить 6-НДФЛ за 1 полугодие 2024 года: пошаговая инструкция
Маркетинг

Как не копирайтеру придумать идеальный заголовок для публикации, будь это IT-статья или рекламный пост

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

Как работодателю учесть выплаты по договорам ГПХ

Договоры ГПХ часто оказываются под пристальным вниманием контролирующих органов. Чтобы не давать им повода для штрафов и доначислений, проверьте, все ли у вас правильно. Рассказываем про особенности бухгалтерского учета и налогообложения при расчетах по договорам ГПХ.

Как работодателю учесть выплаты по договорам ГПХ
Зарплата

После смены работы доход россиян увеличился на 20%

Те, кто решились поменять место работы в 2023 году, сейчас зарабатывают на 20% больше.

⚡️ Итоги дня: мигрантам ограничат места работы, в США создали автоматизированную домашнюю пивоварню, а хакеры украли криптовалюту на 235 млн долларов

Подготовили обзор главных событий дня — 18 июля 2024 года. Все самое интересное, что писали и обсуждали в сети, в одной подборке.

РСВ

После увольнения всех работников ИП сдает зарплатные отчеты до конца года

РСВ, ЕФС-1 и персонифицированные сведения о физлицах ИП сдают, только если они являются работодателями.

Вышла новая версия Методических рекомендаций по созданию первичной профсоюзной организации

Федерация независимых профсоюзов России (ФНПР) обновила методичку по созданию профсоюзной ячейки в организации.

Разбираемся в 1С: основные аспекты и подбор конфигурации для вашего бизнеса

Чтобы выбрать программное обеспечение, которое эффективно справится с поставленными целями — важно понимать особенности решений 1С и какие процессы в бизнесе требуют автоматизации.

Разбираемся в 1С: основные аспекты и подбор конфигурации для вашего бизнеса

Мошенники не могут украсть недвижимость на Госуслугах

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

Профсоюзы рекомендуют в жару уходить с работы домой

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

Миграционный учет

Как белорусу получить ВНЖ и гражданство РФ в 2024 году

Получение вида на жительство (ВНЖ) и гражданства Российской Федерации — важный вопрос для белорусов. В 2024 году процесс стал проще благодаря межгосударственным соглашениям, предоставляющим льготные условия.

Проверки

Минфин утвердил 8 индикаторов риска для контроля за рынком табака

С 20 июля 2024 года индикаторы риска закреплены приказом Министерства финансов от 11.06.2024 № 87н.

Автоматизация учета

Распознавание корпоративных документов: как не утонуть в море бумаг

Мы подсчитали, что ручной ввод данных из типовых форм занимает у сотрудников 6–7 часов в день. Автономная система Smart Document Engine на смартфоне справляется с подобной задачей буквально за минуты. В этой статье мы расскажем о самых эффективных бизнес-кейсах применения нашей мобильной OCR.

Распознавание корпоративных документов: как не утонуть в море бумаг

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

Росфинмониторинг начнет контролировать крупные операции с драгметаллами

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