Данная информация рассчитана на специалистов, у которых уже есть начальный опыт построения отчетов на СКД. Материал в любом случае будет полезен тем, кто улучшает свои навыки построения отчетов на СКД.

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

- ТоварыНаСкладахОстаткиИОбороты (регистр накопления)
- ТоварыВРезервеНаСкладахОстатки (регистр накопления)
- ЦеныНоменклатурыСрезПоследних (регистр сведений)

 

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

ТоварыНаСкладахОстаткиИОбороты

ВЫБРАТЬ

ТоварыНаСкладахОстаткиИОбороты.Склад,
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.Склад = &Склад

ТоварыВРезервеНаСкладахОстатки

ВЫБРАТЬ

ТоварыВРезервеНаСкладахОстатки.Склад,
ТоварыВРезервеНаСкладахОстатки.Номенклатура,
ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,
ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры
ИЗ
РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки

ЦеныНоменклатурыСрезПоследних

ВЫБРАТЬ

ЦеныНоменклатурыСрезПоследних.ТипЦен,
ЦеныНоменклатурыСрезПоследних.Номенклатура,
ЦеныНоменклатурыСрезПоследних.Цена,
ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен

Данные из всех трех источников не должны исключать друг друга, а быть независимыми источниками данных. Т.е. если товара нет в свободном остатке или не установлена цена общий остаток должен выводится в отчет, а в поля без значений должны выводится пустыми. Только при объединении независимых источников данных можно добиться этого результата. Поэтому данные из каждого регистра нужно выбирать отдельным запросом, а после объединять на вкладке "Связи наборов данных". Если всю информацию выбрать одним запросом отчет будет работать некорректно.

Свободный остаток нужно вычислить. В 1С нет регистра с информацией о свободном остатке. Есть регистр с общими остатками и регистр с резервами. Разница между первым и вторым - свободный остаток.
Чтобы вычисление свободного остатка производилось по всем товарам нужна специальная формула:

КоличествоКонечныйОстаток - (ЕстьNULL(КоличествоОстаток,0) * (1) )

Если в выражении не использовать NULL то свободный остаток расчитается только для товара где есть резерв. NULL говорит о том, что в формуле одно из значений может быть нулевое, но расчет производить все-равно нужно.

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

Результат отчета в режиме 1С Предприятие

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

Вложения:
Скачать этот файл (Ostatok-i-cena.erf)Ostatok-i-cena.erf6 Kb

Наши проекты | Купить 1С | Услуги по 1С | ПрограммированиеАренда сервера | FAQ 1C

Сопровождение, доработка, консультация, обучение, по программе 1С. Информационно-технический консалтинг, почасовая и сдельная оплата. Запуск новых проектов, реализация решений под ключ.

© 2021 1С ПРОЕКТЫ И РЕШЕНИЯ /1С СЕРВИС 24/7