Отбор в регистре сведений 1C
Проведение отбора необходимой информации из регистра сведений возможно при помощи нескольких способов.
Во-первых, можно воспользоваться измерениями или реквизиты, предусматривающие индексацию, и отмеченные статусом «Ведущее». Использование ресурсов для проведения операций отбора не предусматривается.
Ниже представлено несколько вариантов выполнения отбора данных из существующего реестра сведений.
Отбор по единственному реквизиту
ОтборТипЦен = Новый Структура(«ТипЦен»);
ОтборТипЦен.ТипЦен = ВыбТипЦен;
ЦеныНоменклатуры = РегистрыСведений.ЦеныНоменклатуры;
Выборка = ЦеныНоменклатуры.Выбрать(,,ОтборТипЦен);
В структуру предусматривается включение единственного поля для проведения отбора
Отбор на основе запроса по нескольким полям
Запрос = Новый Запрос;
Запрос.УстановитьПараметр(«ТекущаяДата»,ТекущаяДата());
Запрос.УстановитьПараметр(«Номенклатура», ВыбНоменклатура);
Запрос.УстановитьПараметр(«ТипЦен», ВыбТипЦен);
Запрос.Текст = «ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Номенклатура,
| ЦеныНоменклатурыСрезПоследних.Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних( &ТекущаяДата,
|
| ТипЦен = &ТипЦен И Номенклатура = &Номенклатура) КАК ЦеныНоменклатурыСрезПоследних»;
В результате применения подобной команды удастся получить выборку по стоимости товаров, опираясь на номенклатуру и тип цены на конкретный момент.
Отбор без запроса, но с несколькими полями
РегистрСведений = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
РегистрСведений.Отбор. Номенклатура.Установить(ВыбНоменклатура);
РегистрСведений.Отбор.ТипЦен.Установить(ВыбТипЦен);
РегистрСведений.Прочитать();
Для Каждого СтрокаРегистраСведений Из РегистрСведений Цикл
КонецЦикла;
Данная команда позволяет перечень записей, применив для них отбор по параметрам номенклатуры и типа цен. Не стоит забывать о том, что для просмотра сгенерированных данных необходимо включить в программный код команда «Прочитать()»