Обход элементов справочника
В ходе написания алгоритмов может возникнуть потребность перебрать все элементы справочника Например, может понадобиться получить реестр какого-либо справочника (товаров, контрагентов и т.д.), содержащий перечень всех элементов этого справочника
Для формирования такого реестра создайте отчет с помощью Конструктора Отчетов и Конструктора Макета Отчетов (Конструктору Макета Отчетов следует указать, что отчет будет содержать циклы по строкам, количество циклов по строкам -1, количество колонок — 3).
Конструктор Макета Отчета сгенерирует процедуру формирования отчета:
Процедура Сформировать() Таб=СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица(«Сформировать"); Таб.ВывестиСекцию("Шапка"); Таб.Опции(0,0,Таб.ВысотаТаблицы(),0); Пока "Условие" Цикл Таб.ВыБестиСекцию("Строка_1"); КонецЦикла; Таб.ВывестиСекцию("Подвал"); Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать",""); КонецПроцедуры
Эта процедура пока содержит только строки вывода печатной формы, но не содержит строк получения и вывода необходимых данных.
Рассмотрим пример формирования реестра товаров (элементов справочника «Номенклатура»).
Наша задача — обойти все элементы справочника «Номенклатура» и вывести необходимую информацию — код, наименование и цену товара — на печать.
Изменения, которые нам предстоит внести в исходный текст, затронут только конструкцию «Пока . . . Цикл . . . КонецЦикла», остальные строки останутся прежними. Поэтому далее мы будем показывать преобразование только этих строк алгоритма.
Для выполнения необходимых действий над справочником «Номенклатура» мы должны создать специальную переменную с помощью функции «СоздатьОбъект»:
Спр=СоздатьОбъект("Справочник.Номенклатура"); Пока "Условие" Цикл Таб.ВывестиСекцию("Строка_1"); КонецЦикла
Эта переменная будет использоваться для перебора элементов справочника Далее выберем элементы справочника с помощью метода «ВыбратьЭлементы»:
Спр=СоздатьОбъект("Справочник.Номенклатура"); Спр.Выбрать Элементы(); Пока «Условие» Цикл Таб.ВывестиСекцию("Строка_1"); КонецЦикла;
Метод «ВыбратьЭлементы» открывает (начинает) перебор элементов справочника. В данном случае, мы выбираем все элементы справочника «Номенклатура». Обрабатывать элементы справочника мы будем в цикле, который у нас уже в каком-то виде есть, он содержит оператор вывода строки в печатную форму, но не содержит условия.
Очевидно, цикл нам нужен, чтобы перебрать все элементы справочника. Для получения очередного элемента справочника, мы воспользуемся методом «ПолучитьЭлемент».
Чтобы получить очередной элемент справочника, следует записать:
Спр.ПолучитьЭлемент()
Если элемент справочника выбран, метод возвращает значение «1», в противном случае — «0» Поэтому, прежде чем выполнять над элементом справочника какие-либо действия, необходимо проверить, результат работы метода (то есть, мы проверяем, имеется ли у нас элемент справочника для обработки)
Запишем выражение для проверки результата выборки элементов справочника в условие цикла:
Спр=СоздатьОбъект("Справочник.Номенклатура"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Таб.ВывестиСекцию(«Строка_1»); КонецЦикла;
Таким образом, для перебора всех элементов справочника мы использовали конструкции организации цикла и методы «ВыбратьЭлементы» — «ПолучитьЭлемент». После выполнения метода «ПолучитьЭлемент» переменная «Спр» позиционирована (установлена) на очередной элемент справочника. При этом все реквизиты этого элемента можно получить обращаясь через точку («Спр.Код, Спр.Наименование и т.д.). При следующем выполнении метода «ПолучитьЭлемент» переменная позиционируется на следующий элемент и обращение «через точку» к реквизитам уже будет выдавать информацию о следующем элементе.
Итак, мы перебрали все элементы справочника и для каждого элемента вывели в печатную форму строку Но в сформированном Конструктором шаблоне печатной формы отчета секция «Строка_1» состоит из пустой строки:
Кроме того, в шапке формируемого отчета стоят условные названия колонок отчета Колонка_1, Колонка_2, Колонка_3. Заменим их названиями «Код», «Наименование» и «Цена».
А в секции Строка_1 в колонках таблицы 2, 3 и 4 запишем соответственно Спр.Код, Спр.Наименование и Спр.Цена:
Доработка алгоритма, в целом, завершена. В справочнике «Номенклатура» мы перебрали все элементы и вывели в отчет их реквизиты: «Код», «Наименование» и «Цена».
Как перебрать все элементы из определенной группы справочника в 1С 8.3, 8.2
Как перебрать элементы справочника в выборке в 1С 8.3, 8.2
Выборка = Справочники . Номенклатура . Выбрать ( ПолеВводаРодитель ) ;
Пока Выборка . Следующий ( ) Цикл
Наименование = Выборка . Наименование ;
КонецЦикла;
Как перебрать элементы справочника в запросе в 1С 8.3, 8.2
Запрос = Новый Запрос ( "
| Наименование
| Справочник . Номенклатура
| Родитель = &Родитель
|АВТОУПОРЯДОЧИВАНИЕ ");
Запрос . УстановитьПараметр ( "Родитель" , ПолеВводаРодитель ) ;
Результат = Запрос . Выполнить ( ) . Выбрать ( ) ;
Пока Результат . Следующий ( ) Цикл
Наименование = Результат . Наименование ;
КонецЦикла;
Как перебрать элементы справочника с иерархией в выборке в 1С 8.3, 8.2
Выборка=Справочники . Номенклатура . ВыбратьИерархически ( ПолеВводаРодитель ) ;
Пока Выборка . Следующий ( ) Цикл
Наименование = Выборка . Наименование ;
КонецЦикла;
Как перебрать элементы справочника с иерархией в запросе в 1С 8.3, 8.2
Запрос = Новый Запрос ( "
| Наименование
| Справочник . Номенклатура
| Родитель В ИЕРАРХИИ ( &Родитель)
|АВТОУПОРЯДОЧИВАНИЕ ");
Запрос . УстановитьПараметр ( "Родитель" , ПолеВводаРодитель ) ;
Результат = Запрос . Выполнить ( ) . Выбрать ( ) ;
Пока Результат . Следующий ( ) Цикл
Наименование = Результат . Наименование ;
КонецЦикла;
Одноклассники
Все материалы и продукты на этом сайте опубликованы для целей ознакомления для зарегистрированных пользователей фирм производителей материала или продукта, или его авторов. Помните, что скачанные материалы или продукты, Вы используете на свой страх и риск. Автор и администрация этого сайта не несет никакой ответственности за использование этих материалов или продуктов третьими лицами. В случае, если вы используете один из перечисленных здесь материалов или продуктов, Вы обязаны официально приобрести его у фирмы производителя или автора.
Перебрать, выбрать элементы справочника


1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » — конкретный продукт, который выпускает компания 1С . Что такое COM-подключение к базе 7.7 из .NET, .NET Core 1
Инсталяция: dotnet add package sabatex.V1C77 или добавить через NUGET пакет sabatex.V1C77. Добавить пространство имен: using sabatex.V1C77; пример использованя: —C# static void Main(string args) < // создаем строку соединенGoogle maps : вывод точек на карту и режим панорамы 8
В отличие от яндекс карт в GMaps можно использовать панорамы — за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора ZIP-архив Чтение 0
Для того чтобы прочитать файлы из ZIP-архива необходимо выполнить несколько простых действий: — Открыть необходимый архив — Распаковать файлы Создание объекта ЧтениеZIPФайла можно осуществить двумя путями — создать инициализированный объект или Автоматическая установка ширины колонки табличного документа. 0
Процедура, которая » примерно» делает автоширину колонок (навроде, как если бы выделить все колонки и дважды щелкнуть мышкой по границе заголовка колонки). Привожу текст, работает неахти, но лучше чем ничего: Процедура РасчетШириныКолонок(Табличный Посмотреть все результаты поиска похожих
Еще в этой же категории
Создание и запись нового элемента справочника 18
НаКлиенте Процедура ПоКнопкеНовыйКонтрагент(Команда) // Вставить содержимое обработчика. Перем НовыйКонтрагент; НовыйКонтрагент = Новый Структура(» Наименование, ПолноеНаименование, ИНН» ); НовыйКонтрагент.Наименование = » РиК ООО» ; НовыйКон Как для Выбора Элемента Справочника Открыть Форму Выбора с нужной Открытой Группой? 9
Порядок действий такой: 1. В поле ввода » Номенклатура» добавь событие ПриНачалеВыбора. 2. Установи в них СтандартнаяОбработка = Ложь; 3. Получи форму выбора нужного справочника 4. Установи отбор по родителю 5. Открой форму для выбора Теп Как программно открыть и выбрать элемент справочника, выбор элемента справочника? 8
Просто открыть: // Получить форму выбора справочника как подчиненную форме документа ФормаСписка = Справочники.Номенклатура.ПолучитьФормуСписка( , ЭтаФорма); // Открыть полученную форму ФормаСписка.Открыть(); Открыть для выбора элемента: Ф Как сделать подбор элементов справочника в табличную часть документа? 8
Нужно на форме документа сделать кнопочку Подбор для справочника сотрудники и чтобы выбранные элементы добавлялись в табличное поле документа? В данной статье я приведу пример подбора элемента справочника в Список значений и в Табличную часть! Со Перебрать, выбрать элементы подчиненного справочника 7
Перебор элементов справочника принадлежащих элементу другого справочника, т.е когда один справочник подчинен другому справочнику. // Получить выборку по указанному контрагенту. Выборка = Справочники.КонтактныеЛица.Выбрать( , Контрагент); Пока Вы Посмотреть все в категории Справочники
Программирование 1С 8.х для начинающих
- Вы здесь:
- Главная

- Статьи

- Конфигурация

- Справочник 1с

- Как перебрать (обойти) все элементы справочника?
Поделитесь в соцсетях
Конфигурация
Как перебрать (обойти) все элементы справочника?
Подробности Категория: Справочник 1с
-
- Как обойти все элементы справочника?
Как перебрать все элементы справочника?
Как обойти все элементы справочника?
Данные по справочнику, как и все данные в 1с, можно получить при помощи объектной модели или при помощи запроса.
Перебрать справочник используя объектную модель:
Выборка = Справочники.Контрагенты.Выбрать();
// также вместо метода Выбрать() можно использовать метод ВыбратьИерархически() тогда сначала в выборке будет показан элемент затем все подчиненные ему элементы и только потом следующий элемент
Пока Выборка.Следующий() Цикл
СсылкаНаЭлемент = Выборка.Ссылка;
ИмяЭлемента = Выборка.Наименование;
КонецЦикла;Перебрать используя запрос:
Запрос = Новый Запрос;
Запрос.Текст =
"Выбрать Ссылка, Наименование
| ИЗ Справочник.Контрагенты";
Выборка = Запрос.Выполнить().Выбрать();
// здесь параметром в метод Выбрать() можно передать параметр который укажет на необходимость обхода по группировкам и иерархии
Пока Выборка.Следующий() Цикл
СсылкаНаЭлемент = Выборка.Ссылка;
ИмяЭлемента = Выборка.Наименование;
КонецЦикла;Недостаточно прав для комментирования