Книга: Разработка сложных отчетов в «1С:Предприятии 8». Система компоновки данных
Назад: Вложенный отчет
Дальше: Расчет итогов по полям остатка

Пример 14

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

Рис. 2.222. Требуемый вид отчета

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

Откроем конструктор схемы компоновки данных и добавим новый набор данных – запрос. Источником данных для запроса будет служить виртуальная таблица регистра накопления ОстаткиНоменклатуры.ОстаткиИОбороты. Не будем пользоваться конструктором запроса, а сразу внесем в поле Запрос следующий текст (листинг 2.33).

Листинг 2.33. Текст запроса

ВЫБРАТЬ

ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура,

ОстаткиНоменклатурыОстаткиИОбороты.Склад,

ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток КАК

НачальныйОстаток,

ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток КАК

КонечныйОстаток,

ОстаткиНоменклатурыОстаткиИОбороты.КоличествоПриход КАК Приход,

ОстаткиНоменклатурыОстаткиИОбороты.КоличествоРасход КАК Расход

ИЗ

РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты КАК

ОстаткиНоменклатурыОстаткиИОбороты

Перейдем на закладку Ресурсы и определим доступные поля ресурсов отчета ().

Рис. 2.223. Определение ресурсов отчета

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

Листинг 2.34. Выражение для расчета параметра «КонецПериода»

КонецПериода(&КонецПериода,"День")

Определим структуру отчета. На закладке Настройки выделим корневой элемент Отчет и добавим в него группировку по полю Склад. Затем добавим вложенную в нее группировку по полю Номенклатура. На закладке Выбранные поля перенесем из списка доступных полей поля (рис. 2.224):

Рис. 2.224. Определение полей и группировок отчета

На закладке Другие настройки установим макет оформления () отчета – Зеленый. Запустим и сформируем отчет в режиме 1С:Предприятие (рис. 2.225).

Рис. 2.225. Результат отчета

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

Изменим текст запроса для получения отчета (листинг 2.35).

Листинг 2.35. Текст запроса

ВЫБРАТЬ

ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура,

ОстаткиНоменклатурыОстаткиИОбороты.Склад,

ОстаткиНоменклатурыОстаткиИОбороты.КоличествоНачальныйОстаток КАК

НачальныйОстаток,

ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток КАК

КонечныйОстаток,

ОстаткиНоменклатурыОстаткиИОбороты.КоличествоПриход КАК Приход,

ОстаткиНоменклатурыОстаткиИОбороты.КоличествоРасход КАК Расход,

ОстаткиНоменклатурыОстаткиИОбороты.Регистратор

ИЗ

РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты(, , Авто, , ) КАК

ОстаткиНоменклатурыОстаткиИОбороты

Изменим структуру отчета. В группировку Номенклатура вложим группировку Детальные записи, в поля отчета добавим поле Регистратор (рис. 2.226).

Рис. 2.226. Требуемый вид отчета

На закладке Параметры включим параметры НачалоПериода и КонецПериода в состав быстрых пользовательских настроек. Сформируем отчет в режиме 1С:Предприятие (рис. 2.227).

Рис. 2.227. Результат отчета

Мы видим, что итоги по полю НачальныйОстаток посчитаны неправильно.

Назад: Вложенный отчет
Дальше: Расчет итогов по полям остатка