1С-Предприятие 8.0. Практическое пособие разработчика


Отчет ОстаткиМатериаловПоСвойствам


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

Создадим новый объект конфигурации Отчет и назовем его "ОстаткиМатериаловПоСвойствам". Запустим конструктор выходной формы, и займемся конструированием запроса.

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

Таким образом, алгоритм получения результирующих данных будет распадаться на две части: сначала, по указанным свойству и его значению, нам нужно будет выбрать все наборы свойств из регистра сведений "ЗначенияСвойствНоменклатуры", которым сопоставлены указанное свойство с указанным значением. Затем, для выбранных наборов свойств и их владельцев нам нужно будет получить остатки и обороты из регистра накопления "ОстаткиМатериалов".

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

Сначала мы создадим вторую часть нашего алгоритма – запрос к регистру накопления "ОстаткиМатериалов".[277]

Выберем виртуальную таблицу регистра накопления "ОстаткиМатериалов.ОстаткиИОбороты". В параметрах виртуальной таблицы зададим условие отбора таким, что значение измерения регистра "НаборСвойств" должно находиться в списке, передаваемом в качестве параметра "СписокСвойств":

Для формирования такого списка наборов свойств нам и понадобится вложенный запрос к регистру сведений. Но этим мы займемся позже, а сейчас продолжим работать с регистром накопления.[278]

Из виртуальной таблицы регистра накопления "ОстаткиМатериалов.ОстаткиИОбороты" выберем следующие поля:

·"ОстаткиМатериаловОстаткиИОбороты.Материал",
·"ОстаткиМатериаловОстаткиИОбороты.НаборСвойств,
·"ОстаткиМатериаловОстаткиИОбороты.КоличествоНачальныйОстаток",
·"ОстаткиМатериаловОстаткиИОбороты.КоличествоПриход",
·"ОстаткиМатериаловОстаткиИОбороты.КоличествоРасход",
·"ОстаткиМатериаловОстаткиИОбороты.КоличествоКонечныйОстаток":




Начало  Назад  Вперед