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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В госзакупках будут работать офсетные контракты

Чтобы IT-компании больше средств вкладывали в инновационные технологии, в законодательство о госзакупках добавят офсетные контракты.

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

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

Как ИП уменьшить налог по УСН за 1 квартал на взносы 1% за 2024 год, если уведомление уже сдано

Не все ИП оперативно среагировали на новые разъяснения ФНС про уменьшение налога по УСН на взносы 1% за 2024 год. Кто-то не учел новые правила и переплатил налог, кто-то еще не уплатил, но уведомление уже сдал. Уведомление можно пересдать, переплату вернуть.

Иллюстрация: Вера Ревина/Клерк.ру
Кадры

Путин: судимость членов семьи не должна влиять на трудоустройство

Никто за действия членов семьи не отвечает, заявил президент на ежегодном съезде Российского союза промышленников и предпринимателей (РСПП).

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

ФАС проверит цены на авиабилеты

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

Блокировка на маркетплейсах 2024: за что накажут, как снизить риски

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

Блокировка на маркетплейсах 2024: за что накажут, как снизить риски

Кто должен платить НДС при импорте товаров, если отгрузка идет со склада в Беларуси

Ситуация: компания №1 продает товар компании №2. Но этот товар – белорусский, он лежит на складе компании-производителя №3 в Беларуси. Компания №1 заключает договор на поставку с компанией №3. А забирает товар со склада сам покупатель (компания №2).

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

📞 Запретят массовые спам-звонки. Но это чьи-то деньги, поэтому найдут как обойти, пишут у нас в ВК

Глава Минцифры Максуд Шадаев заявил о подготовке законопроекта, который запретит массовые спам-обзвоны.

Комиссии по самозанятым: как сотрудничать с внештатниками в новых реалиях

В 2024 году появилась новая «страшилка» для тех, кто предпочитает качественный результат при минимуме затрат, то есть для заказчиков самозанятых. Это межведомственные комиссии, которые заточены под выявление незаконной занятости, по сути — еще один контролирующий орган, помимо ИФНС и ГИТ, который будет выискивать следы трудовых отношений там, где их нет.

Комиссии по самозанятым: как сотрудничать с внештатниками в новых реалиях

Что ест бухгалтер. Борщ такой вкусный

Ммм… Борщ… «Как много в этом звуке»... аромате, вкусе. Не буду говорить о происхождении, об истории и пользе, только о вкусе.

Что ест бухгалтер. Борщ такой вкусный
Создать объявление

Совфед: беременные сотрудницы ликвидированных компаний должны получать пособие не ниже МРОТ

Валентина Матвиенко призвала устранить несправедливость и платить больше беременным женщинам, которых уволили из-за ликвидации фирмы-работодателя.

Как закрыть ИП в 2024 году: пошаговая инструкция

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

Как закрыть ИП в 2024 году: пошаговая инструкция

💪 Ударные скидки на «Клерке»! Курсы по учету на маркетплейсах, ВЭД, зарплате, финмоделированию, УСН и бухгалтерии с нуля за 3 690 рублей!

Проведите выходные с пользой! За череду праздников вы сможете пройти весь месячный курс «Клерка» и стать специалистом на еще одном участке, повысить квалификацию в своей сфере или освоить профессию бухгалтера с нуля! До 2 мая популярные онлайн-курсы за 3 690 рублей!

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

Что грозит селлеру, который не доставил оплаченный товар

В 8 из 10 случаев судьи принимают сторону покупателей в спорах с продавцами. Если селлер не может доставить товар, он должен вернуть деньги и выплатить неустойку.

Как проверить безопасность сотрудничества с самозанятыми перед ФНС

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

Как проверить безопасность сотрудничества с самозанятыми перед ФНС

Как главному бухгалтеру избежать субсидиарной ответственности

Когда приходит пора искать виноватых, чтобы заставить их платить по долгам организации-банкрота, круг «подозреваемых» существенно расширяется — и первым туда попадает именно главбух. Рассказываем о превентивных мерах и о том, на что ссылаться, чтобы отбиться от обвинений.

Как главному бухгалтеру избежать субсидиарной ответственности

🧠Напряжем мозги? Пятничный пост

Кто-то одной ногой в отпуске, а кому-то напрягать мозги. Баланс?

🧠Напряжем мозги? Пятничный пост
8

Расскажите о своей работе с документами

Мы писали для вас 3 месяца и подустали. Теперь вы напишите нам (пжл). Какими сервисами пользуетесь? Что вам нравится, а что — нет? 1С — краш или…?

Расскажите о своей работе с документами
НДФЛ

👼 Выплаты работодателей на рождение детей предложили полностью освободить от НДФЛ. Мнение: могут быть налоговые злоупотребления

Корпоративные выплаты, связанные с рождением детей, необходимо освободить от НДФЛ, чтобы эти средства в полном объеме доходили до молодых родителей, считает Сергей Шишкарев, основатель группы компаний «Дело».

Календарь вебинаров для бухгалтера в мае 2024: новый ФСБУ, дробление, ВЭД и налоговые требования. Не пропустите!

Собрали для вас анонсы вебинаров на май 2024 года.

Иллюстрация: rawpixel-com/freepik

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

50%-е ограничение на учет убытков по налогу на прибыль хотят продлить еще на 4 года. Это забота о региональных бюджетах

Раньше налог на прибыль шел 2% в федеральный бюджет и 18% в региональный, но теперь по 2030 год действуют ставки 3% и 17%. То есть региональные бюджеты недополучают 1%. Чтобы они меньше страдали, ввели ограничение на учет убытков.