Пользователю необходимо получать данные по остаткам товаров в разрезе складов, причем исходные данные должны браться из регистров расширенного учета затрат по бухгалтерскому учету. Внешний вид отчета приведен на следующем скриншоте.
Для того, чтобы понять какой запрос необходимо написать для набора данных СКД - рассмотрим структуру таблиц, в которых хранятся данные по расширенной аналитике.
Поскольку остатки товаров мы будем получать по данным бухгалтерского учета, то нас интересует соответствующий регистр накопления "УчетЗатратРегл". Но просто так информацию об остатках номенклатуры мы из него не получим. В качестве измерений регистра выступают ключи аналитики затрат, а не привычные элементы справочников "Номенклатура", "Серия номенклатуры" и так далее.
Ключ аналитики - это элемент соответствующего справочника, для которого хранятся различные комбинации разрезов учета. Формулировка общая, поэтому для лучшего понимания приведу следующий скриншот:
По рисунку мы видим, что в измерения регистра находятся элементы справочника для соответствующего разреза учета (вид учета, затраты, партии и распределение затрат). Если мы сделаем запрос к остаткам регистра "УчетЗатратРегл", то мы не сможем установить, например, отбор по номенклатуре или складу. Нам доступны будут лишь отборы по элемента аналитик. Последнее очень не удобно.
Для того, чтобы мы могли устанавливать отборы в привычном виде, нужно к таблице учета затрат присоединить регистры сведений для каждого из разреза аналитики. В каждом таком регистре сведений находится ресурс "Ссылка", ссылающийся на справочник ключа аналитики учета. Значения же для ключа аналитики ("Организация", "Склад" и т.д.) хранятся в измерениях этого регистра.
На скриншоте отметил измерения "Склад" в регистре "АналитикаВидаУчета" и "Затрата" в регистре "Аналитика учета затрат". В измерении "Затрата" хранится ссылка на элемент справочника "Номенклатура".
ОЧЕНЬ ВАЖНО помнить, что получая лишь остатки по номенклатуре, да и вообще делая любой отчет, нужно делать отбор по разделу учета, чтобы получить корректные данные. В нашем случае нужно установить отбор на измерение "Раздел учета" регистра "АналитикаВидаУчета" по значению "МПЗ" перечисления "РазделыУчета", так как именно этот раздел учета хранит данные об остатках номенклатуры на складах.
И так, общая схема хранения данных РАУЗ'а теперь должны быть понятны на уровне, чтобы написать отчет по остаткам номенклатуры в разрезе складов. Создавая отчет на СКД, сначала определимся с запросом. Создал его следующим образом:
Запрос = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | РегистрАналитикаВидаУчета.Ссылка |ПОМЕСТИТЬ АналитикаПоРазделамУчета |ИЗ | РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета |ГДЕ | РегистрАналитикаВидаУчета.РазделУчета = &РазделУчета |;//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | РегистрАналитикаВидаУчета.Склад КАК Склад, | РегистрАналитикаУчетаЗатрат.Затрата КАК Номенклатура, | УчетЗатратРеглОстатки.КоличествоОстаток КАК Остаток |ИЗ | РегистрНакопления.УчетЗатратРегл.Остатки( | , | АналитикаВидаУчета В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | РегистрАналитикаВидаУчета.Ссылка | ИЗ | АналитикаПоРазделамУчета КАК РегистрАналитикаВидаУчета)) КАК УчетЗатратРеглОстатки | {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета | ПО УчетЗатратРеглОстатки.АналитикаВидаУчета = РегистрАналитикаВидаУчета.Ссылка} | {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаЗатрат КАК РегистрАналитикаУчетаЗатрат | ПО УчетЗатратРеглОстатки.АналитикаУчетаЗатрат = РегистрАналитикаУчетаЗатрат.Ссылка}";
В первом запросе мы получаем аналитику учета затрат по разделу учета "МПЗ" и помещаем результат во временную таблицу "АналитикаПоРазделамУчета". Далее делаем запрос к виртуальной таблице остатков регистра накопления "УчетЗатратРегл", в параметры которой указываем условие отбора по аналитике вида учета на значения, находящихся в временной таблице "АналитикаПоРазделамУчета".
Теперь самое интересное - присоединяем к таблице остатков регистры сведений "АналитикаВидаУчета" и "АналитикаУчетаЗатрат":
В качестве выбираемых полей устанавливаем поле "Затрата" (Номенклатура" из регистра сведений "АналитикаУчетаЗатрат" и поле "Склад" из регистра сведений "АналитикаВидаУчета". Количественный показатель остатка хранится в ресурсе "Количество", которое мы берем из регистра накопления "УчетЗатратРегл".
Набор данных готов, далее устанавливаем в схеме компоновки ресурс по полю "Количество" (псевдоним "Остаток") и создаем простую структуру отчета для вывода:
Не забудьте установить значение параметра "Раздел учета" в значение "Перечисление.РазделыУчета.МПЗ" на закладке "Параметры" схемы компоновки данных.
В результате мы получили рабочий отчет по остаткам номенклатуры, использующий регистр расширенной аналитики учета затрат. Конечно, в нем нет обширного функционала (характеристики, разрезы по организации и так далее), но в качестве примера, объясняющего общий принцип разработки отчетов для РАУЗ - в самый раз.
По следующей ссылке Вы можете скачать отчет, созданный в качестве примера выше.