Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЦОО_ИСБУ_Лек3.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
683.52 Кб
Скачать

8.8. Запросы к регистрам накопления

Основное предназначение регистра накопления - это быстрое получение остатков на любой момент времени или оборотов за заданный период. Для решения этих задач регистр накопления предоставляет три виртуальные таблицы Остатки, Обороты и комбинированную таблицу ОстаткиИОбороты.

Сведения о применимости таблиц-источников для каждого типа регистра приведены в следующей таблице («+» обозначает при­менимость, «-» обозначает неприменимость):

Таблица-источник

Регистр остатков

Регистр оборотов

Основная

+

+

Остатки

+

-

Обороты

+

+

ОстаткиИОбороты

+

-

Основная таблица регистра накопления

Основная таблица регистра накопления существует для обоих типов регистров (остатков и оборотов) и предоставляет следую­щие поля:

<Имя измерения>. Набор полей содержит значения измерений регистра. Име­на полей соответствуют именам измерений.

<Имя реквизита>. Набор полей содержит значения реквизитов регистра.

<Имя ресурса>. Набор полей содержит значения ресурсов регистра.

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

ВидДвижения. Значение системного перечисления ВидДвиженияНакопления, которое определяет вид движения записи - приход или расход.

Регистратор. Содержит ссылку на документ-регистратор движения.

Период. Содержит период (дату) записи регистра.

МоментВремени. Содержит момент времени записи регистра.

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

Следующий простой запрос выбирает несколько столбцов из оборотного регистра накопления Продажи:

ВЫБРАТЬ Период, Регистратор, Номенклатура, Количество, Сумма

ИЗ РегистрНакопления.Продажи

Таблица получения остатков

Таблица получения остатков существует только у регистра остатков и предоставляет в распоряжение разработчику следующие поля:

<Имя измерения>. Набор полей содержит значения измерений регистра. Имена полей соответствуют именам измерений.

<Имя ресурса>Остаток. Набор полей содержит остатки ресурсов регистра. Имена полей соответствуют именам ресурсов с добавлением слова Остаток.

Следующий запрос показывает остатки по регистру УчетНоменклатуры:

ВЫБРАТЬ * ИЗ РегистрНакопления.УчетНоменклатуры.Остатки

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

Для этого у таблицы получения остатков имеются следующие па­раметры:

Период. Указывается дата или момент времени, на который рассчи­тываются остатки. Если параметр не задан, итоги рассчиты­ваются по самую последнюю запись.

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

Например, следующий запрос получает остатки конкретного то­вара на заданную дату на каждом складе:

ВЫБРАТЬ *

ИЗ РегистрНакопления.УчетНоменклатуры.Остатки(&ВыбДата, Номенклатура=&ВыбТовар)

Таблица получения оборотов

Таблица получения оборотов существует у регистра остатков и регистра оборотов. Эта таблица включает следующие поля:

<Имя измерения>. Набор полей содержит значения измерений регистра. Име­на полей соответствуют именам измерений.

<Имя ресурса>Оборот. Набор полей содержит обороты по ресурсам регистра. Име­на полей соответствуют именам ресурсов с добавлением слова Оборот. Для оборотных регистров оборот подсчиты­вается как сумма всех движений. Для регистров остатков оборот подсчитывается как сумма всех движений Приход со знаком + (плюс) и Расход со знаком - (минус).

<Имя ресурса>Приход. Набор полей содержит суммы всех движений типа «при­ход» по ресурсам регистра. Имена полей соответствуют именам ресурсов с добавлением слова Приход. Это поле существует только для регистров остатков.

<Имя ресурса>Расход. Набор полей содержит суммы всех движений типа «расход» по ресурсам регистра. Имена полей соответствуют именам ресурсов с добавлением слова Расход. Это поле существует только для регистров остатков.

Период. Содержит начальную дату и время периода, к которому от­носится оборот регистра. Существует в случае, если только используется разворот по периодам, т.е. параметр Периодичность имеет какое-либо значение, например, Год, Квартал, Запись и т.д.

Регистратор. Содержит ссылку на документ-регистратор движения. Существует только в случае, если параметр Периодичность имеет значение Регистратор или Запись.

НомерСтроки. Содержит номер строки, определяемый как порядковый номер записи в наборе записей. Это поле существует, если только параметр Периодичность имеет значение Запись.

Следующий простой запрос показывает все поля из таблицы Обороты регистра Продажи:

ВЫБРАТЬ * ИЗ РегистрНакопления.Продажи.Обороты

Для регистра остатков УчетНоменклатуры картина будет немно­го другая:

ВЫБРАТЬ * ИЗ РегистрНакопления.УчетНоменклатуры.Обороты

Напомним, что для регистра остатков колонка <ИмяРесурса>Оборот рассчитывается как разность между ко­лонками <ИмяРесурса>Приход и <ИмяРесурса>Расход.

Таблица получения оборотов для регистра накопления имеет сле­дующие параметры вызова:

Начало периода. Указывается начало периода расчета итогов.

Конец периода. Указывается конец периода расчета итогов.

Периодичность. Указывается дополнительный разворот итогов по перио­дичности. Задается один из следующих вариантов: Период (не разворачивать), Регистратор, День, Неделя, Декада, Месяц, Квартал, Полугодие, Год.

Условие. Указывается условие на языке запросов. Условие может оперировать полями регистра накопления. Оно будет ис­пользовано для ограничения состава записей, по которым будут выбираться обороты. То есть условие будет приме­няться к исходным записям, а не к уже отобранным. Если параметр не задан, анализируются все активные записи ре­гистра.

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

ВЫБРАТЬ * ИЗ РегистрНакопления.УчетНоменклатуры.Обороты(

&НачДата,

&КонДата,

Месяц,

Номенклатура=&ВыбТовар)

Таблица получения остатков и оборотов

В языке запросов системы 1С:Предприятие 8 существует воз­можность получения комбинированной информации по остаткам и оборотам. Для этого предназначена таблица-источник ОстаткиИОбороты, которая существует у регистра остатков и регистра оборотов.

Таблица ОстаткиИОбороты предоставляет следующие поля:

• <Имя измерения>,

• <Имя ресурса>НачальныйОстаток,

• <Имя ресурса>КонечныйОстаток,

• <Имя ресурса>Оборот,

• <Имя ресурса>Приход,

• <Имя ресурса>Расход,

• Период (поле существует только, если в параметрах указана периодичность, не равная Период),

• Регистратор (если периодичность Регистратор или Запись),

• НомерСтроки (если периодичность Запись).

При вызове данной таблицы есть возможность указать следующие параметры:

• Начало периода,

• Конец периода,

• Периодичность,

• Метод дополнения,

• Условие.

Нуждается в пояснении параметр «Метод дополнения». Он зада­ет один из следующих вариантов:

Движения

В этом случае будут выданы те периоды, в которых были движения.

ДвиженияИГраницыПериода (по умолчанию)

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

Пример обращения к этой таблице приведен ниже.

ВЫБРАТЬ

Номенклатура, Склад, Период,

ВЫРАЗИТЬ(КоличествоНачальныйОстаток КАК ЧИСЛО (15,3)) НачОстаток,

ВЫРАЗИТЬ(КоличествоПриход КАК ЧИСЛО (15,3)) Приход,

ВЫРАЗИТЬ(КоличествоРасход КАК ЧИСЛО(15,3)) Расход,

ВЫРАЗИТЬ(КоличествоКонечныйОстаток КАК ЧИСЛО (15,3)) КонОстаток

ИЗ РегистрНакопления.УчетНоменклатуры.ОстаткиИОбороты(

&НачДата, &КонДата, Месяц,, Номенклатура=&ВыбТовар)

ИТОГИ

Сумма(НачОстаток),

Сумма(Приход)

Сумма(Расход),

Сумма(КонОстаток) ПО ОБЩИЕ

Этот запрос показывает остатки и обороты для конкретной но­менклатуры по всем складам с разворотом по месяцам. Дополнительно подсчитываются общие итоги, что потребовало приведения данных к числовому типу с помощью конструкции ВЫРАЗИТЬ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]