Меню

Для чего нужны измерения регистра ресурсы реквизиты



РЕГИСТРЫ

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

Зачем нужны регистры?

Регистры — это таблицы для накопления оперативных данных и получения сводной информации.

Данные в регистры добавляются только при проведении документов. Сведения из регистров используются для формирования отчетов. Классическая схема использования регистров в 1С:Предприятие выглядит следующим образом:

Документы => Регистры => Отчеты

Измерения и ресурсы

Основная проблема при проектировании регистров — это определение его структуры. Структура регистра должна быть такова, чтобы извлекать из него нужную информацию без утомительной обработки.

Измерения регистра — это то, в каких разрезах требуется хранение информации.
Ресурсы регистра — это количественные или суммовые данные, которые хранятся в регистре.

Предположим, что регистр «Остатки товаров» должен содержать сведения о количестве и стоимости каждого товара на каждом складе. В идеологии системы 1С:Предприятие регистр такого вида представляет собой прямоугольную систему координат на одной оси которой находятся склады, на другой — товары, а на пересечении конкретного склада и конкретного товара находятся цифры количества товара и стоимости товара.

Регистр: Остатки товаров
Измерения: Товар, Склад
Ресурсы: Кол-во, Стоимость

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

Движения в регистрах

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

Одна строка из этой таблицы называется «движение». Движения в регистрах создаются только при проведении документов. В регистре, кроме измерений и ресурсов, можно задать реквизиты. Реквизиты — это дополнительные сведения, сопровождающие движение. Методами встроенного языка можно отбирать движения с заданным значением реквизита.

Виды регистров

В системе 1С:Предприятие возможно использование регистров двух типов: регистры остатков и регистры оборотов. Разница между ними понятна из их названия и заключается в характере хранимой информации: в регистрах остатков всегда хранится информация о конечном состоянии средств, а в регистрах оборотов, образно выражаясь, — как это состояние было достигнуто.

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

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

Рассмотрим в качестве примера отслеживание взаиморасчетов с покупателями товаров, которые производит или продает предприятие.

Для того чтобы оперативно получать информацию о взаимной задолженности предприятия и покупателя, потребуется регистр «Взаиморасчеты», в котором для каждого покупателя будет храниться сумма задолженности. При совершении хозяйственной операции состояние регистра будет соответствующим образом изменяться, каждый раз отражая текущее состояние взаиморасчетов. Регистр «Взаиморасчеты» — это регистр остатков.

Оборотные регистры

Однако, легко получить информацию об объеме закупок, совершенных данным покупателем за какой-либо период времени, из регистра «Взаиморасчеты» нельзя. Можно проанализировать все движения, имеющие отношение к данному покупателю, и вычислить общую сумму закупок. Но, когда необходимо получать эти сведения оперативно (например, по условиям договора при достижении определенного объема закупок покупателю должна предоставляться скидка), такой способ, конечно же, не подходит.

В этом случае решением проблемы может быть использование регистра оборотов. В таком регистре — назовем его «Объем закупок» — в разрезе покупателей будет храниться информация об объеме закупок (об обороте покупателя). При создании регистра оборотов можно указывать, с какой периодичностью будет накапливаться информация: день, неделя, месяц и так далее.

Теперь, при совершении хозяйственных операций, необходимо будет изменять не только состояние регистра «Взаиморасчеты», но и регистр «Объем закупок». В этот регистр при совершении клиентом каждой покупки будет заноситься информация о сумме покупки. В результате в регистре «Объем закупок» будет постоянно накапливаться информация об общем объеме закупок клиента.

Оборотный регистр Доходы
Измерения: Клиент, Товар
Ресурсы: Доход
Реквизиты: нет
Периодичность: День Регистр остатков Товары
Измерения: Товар, Склад
Ресурсы: Количество, Стоимость
Реквизиты: нет Хранит доходы от продаж за день в разрезе клиентов и товаров. Хранит остатки товаров на каждом складе в количественном и суммовом выражении.

Запись движений в регистр остатков
(только при проведении документа)

1. Метод ДвижениеПриход
Синтаксис: ДвижениеПриход( , . , . )
Пример: Регистр.Доходы.ДвижениеПриход(Покупатель,КупленныйТовар,СуммаПокупки)

2. Метод ДвижениеПриходВыполнить
Пример:

Регистр.Доходы.Клиент = Покупатель;
Регистр.Доходы.Товар = КупленныйТовар;
Регистр.Доходы.Доход = СуммаПокупки;
Регистр.Доходы.ДвижениеПриходВыполнить();

Запись движений в оборотный регистр
(только при проведении документа)

1. Метод Движение
Синтаксис: Движение( , . , . )
Пример: Регистр.Товары.Движение (ПоступившийТовар, ТекСклад, КолвоПоНакладной, СуммаПоНакладной)

2. Метод ДвижениеВыполнить
Пример:
Регистр.Товары.Товар = ПоступившийТовар;
Регистр.Товары.Склад = ТекСклад;
Регистр.Товары.Количество = КолвоПоНакладной;
Регистр.Товары.Стоимость = СуммаПоНакладной;
Регистр.Товары.ДвижениеВыполнить();

Примечание: Если сумма или количество в движении будет отрицательным, то это движение будет расходом, иначе приходом.

Обращение к итогам регистра

1-й способ.
РегТовары = СоздатьОбъект(«Регистр.Товары»);
РегТовары. ВыбратьИтоги();
Пока РегТовары.ПолучитьИтог()=1 Цикл
. Сообщить(«Товар » + Строка(РегТовары.Товар) +
. » на складе » + Строка(РегТовары.Склад) +
. » кол-во: » + Строка(РегТовары.Количество) +
. » стоимость: » + Строка(РегТовары.Стоимость) +
КонецЦикла;

2-й способ. Выгрузка итогов в таблицу значений

РегДоходы = СоздатьОбъект(«Регистр.Доходы»);
ТабЗнач = СоздатьОбъект(«ТаблицаЗначений»);

РегДоходы.ВыгрузитьИтоги(ТабЗнач);

ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
. Сообщить(«Товар » + Строка(ТабЗнач.Товар) +
. » на складе » + Строка(ТабЗнач.Склад) +
. » кол-во: » + Строка(ТабЗнач.Количество) +
. » стоимость: » + Строка(ТабЗнач.Стоимость) +
КонецЦикла;

Обращение к итогам оборотного регистра

РегДоходы = СоздатьОбъект(«Регистр.Доходы»);
//установить период выборки «30 ноября 2001 года»
РегДоходы.ИспользоватьПериод(2001,11,30);

1. Метод Итог
Синтаксис : Итог( , . )
Пример:
//получить доход за день по данному клиенту и данному товару
Доход = РегДоходы.Итог(ТекКлиент, ТекТовар, «Доход»);

2. Метод Итоги
Пример:
//получить доход за день по данному клиенту и данному товару
РегДоходы.Итоги(ТекКлиент, ТекТовар);
Доход = РегДоходы.Доход;

3. Метод СводныйИтог
Синтаксис: СводныйИтог( , . )
Могут быть указаны не все измерения. Фиксируются только указанные измерения.

Пример:
//получить сводные итоги за день
ДоходПоКлиенту = РегДоходы.СводныйИтог(ТекКлиент,,»Доход»);
ДоходПоТовару = РегДоходы.СводныйИтог(,ТекТовар,»Доход»);

4. Метод СводныеИтоги
Синтаксис: СводныеИтоги( , . )
Могут быть указаны не все измерения. Фиксируются только указанные измерения.

Пример:
//получить сводные итоги за день по клиенту
РегДоходы.СводныеИтоги(ТекКлиент,); //указано только одно измерение
ДоходПоКлиенту = РегДоходы.Доход;

//получить сводные итоги за день по товару
РегДоходы.СводныеИтоги(,ТекТовар); //указано только одно измерение
ДоходПоТовару = РегДоходы.Доход;

Обращение к итогам регистра остатков

1. Метод Остаток
Синтаксис: Остаток( , .

Пример:
//получить остаток данного товара на данном складе
Колво = РегТовары.Остаток (ТекТовар, ТекСклад, «Количество»);

//получить стоимость данного товара на данном складе
Стоимость = РегТовары.Остаток (ТекТовар, ТекСклад, «Стоимость»);

2. Метод Остатки
Синтаксис: Остатки( , . )

Пример:
//получить остаток данного товара на данном складе по кол-ву и по сумме
РегТовары.Остатки (ТекТовар, ТекСклад);
Колво = РегТовары.Количество;
Стоимость = РегТовары.Стоимость;

3. Метод СводныйОстаток
Синтаксис: СводныйОстаток( , . )
Могут быть указаны не все измерения. Фиксируются только указанные измерения.

Пример:
//получить остаток данного товара на всех складах
КолвоТовара = РегТовары.СводныйОстаток (ТекТовар,,»Количество»);
СтоимостьТовара = РегТовары.СводныйОстаток (ТекТовар,,»Стоимость»);

//получить стоимость всех товаров на данном складе
СтоимостьПоСкладу = РегТовары.СводныйОстаток (,ТекСклад,»Стоимость»);

4. Метод СводныеОстатки
Пример:
//получить сводные остатки по товару
РегТовары.СводныеОстатки(ТекТовар,); //указано только одно измерение
КолвоТовара = РегТовары.Количество;
СтоимостьТовара = РегТовары.Стоимость;

//получить стоимость всех товаров на данном складе
РегТовары.СводныеИтоги(,ТекСклад); //указано только одно измерение
СтоимостьПоСкладу = РегТовары.Стоимость;

Обращение к движениям регистра

РегТовары.ВыбратьДвижения(ДатаНач, ДатаКон);
Пока РегТовары.ПолучитьДвижение()=1 Цикл
. Сообщить(«Дата движения » + Строка(РегТовары.ТекущийДокумент.ДатаДок));
. Сообщить(«Клиент: » + РегТовары.Клиент);
. Сообщить(«Товар: » + РегТовары.Товар);
. Сообщить(«Сумма: » + РегТовары.Доход);
КонецЦикла;

Фильтрация движений и итогов

1. Метод УстановитьФильтр
Синтаксис: УстановитьФильтр( , . , )
Пример:
//выбрать все движения по данному складу за период
РегТовары.УстановитьФильтр(,ТекСклад);
РегТовары.ВыбратьДвижения(ДатаНач, ДатаКон);
Пока РегТовары.ПолучитьДвижение()=1 Цикл
.
КонецЦикла;

//выбрать все товары на данном складе
РегТовары.УстановитьФильтр(,ТекСклад);
РегТовары.ВыбратьИтоги();
Пока РегТовары.ПолучитьИтог()=1 Цикл
.
КонецЦикла;

2. Метод УстановитьЗначениеФильтра
Синтаксис: УстановитьЗначениеФильтра( , , )
Пример:
//выбрать все движения по данному складу за период
РегТовары.УстановитьЗначениеФильтра(«Склад», ТекСклад);

//далее идет выборка движений или итогов

3. Метод ВыбратьДвиженияДокумента ( )

4. Метод ВыбратьДвиженияСОстатками ( , )
Применяется только для регистра остатков.

Временный расчет регистров

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

РегТовары = СоздатьОбъект(«Регистр.Товары»);
РегДоходы = СоздатьОбъект(«Регистр.Доходы»);

//установка флага временного расчета для регистров
РегТовары.ВременныйРасчет(1);
РегДоходы.ВременныйРасчет(1);

1. Метод РассчитатьРегистрыНа( , )
Рассчитать все регистры с установленным флагом временного расчета на начало события.
(на начало даты или на момент до проведения документа)

2. Метод РассчитатьРегистрыПо ( , )
Рассчитать все регистры с установленным флагом временного расчета на конец события.
(на конец даты или на момент после проведения документа)

Запрос к регистру
В запросах к регистрам применяются функции НачОст, КонОст, Приход, Расход. В запросах к оборотным регистрам обязательно указывается Период.

ТекстЗапроса = »
|Период С ДатаНач По ДатаКон;
|Товар = Регистр.Доходы.Товар;
|Клиент = Регистр.Доходы.Клиент;
|Доход = Регистр.Доходы.Доход;
|Условие (Товар = ТекТовар);
|Группировка Клиент;
|Функция ПриходПоКлиенту = Приход(Доход);
|»;

Источник

Для чего нужны измерения регистра ресурсы реквизиты

Рассылка
Курс лекций
Статьи
Программы
Ссылки

Форум

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

Назначение регистров

Регистры — это таблицы для накопления оперативных данных и получения сводной информации.

Данные в регистры добавляются только при проведении документов. Сведения из регистров используются для формирования отчетов. Классическая схема использования регистров в 1С:Предприятие выглядит следующим образом:

Документы => Регистры => Отчеты


Измерения и ресурсы

Основная проблема при проектировании регистров — это определение его структуры. Структура регистра должна быть такова, чтобы извлекать из него нужную информацию без утомительной обработки.

Измерения регистра — это то, в каких разрезах требуется хранение информации.
Ресурсы регистра — это количественные или суммовые данные, которые хранятся в регистре.

Предположим, что регистр «Остатки товаров» должен содержать сведения о количестве и стоимости каждого товара на каждом складе. В идеологии системы 1С:Предприятие регистр такого вида представляет собой прямоугольную систему координат на одной оси которой находятся склады, на другой — товары, а на пересечении конкретного склада и конкретного товара находятся цифры количества товара и стоимости товара.

Регистр: Остатки товаров
Измерения: Товар, Склад
Ресурсы: Кол-во, Стоимость

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

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

Одна строка из этой таблицы называется «движение». Движения в регистрах создаются только при проведении документов. В регистре, кроме измерений и ресурсов, можно задать реквизиты. Реквизиты — это дополнительные сведения, сопровождающие движение. Методами встроенного языка можно отбирать движения с заданным значением реквизита.

В системе 1С:Предприятие возможно использование регистров двух типов: регистры остатков и регистры оборотов. Разница между ними понятна из их названия и заключается в характере хранимой информации: в регистрах остатков всегда хранится информация о конечном состоянии средств, а в регистрах оборотов, образно выражаясь, — как это состояние было достигнуто.

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

Рассмотрим в качестве примера отслеживание взаиморасчетов с покупателями товаров, которые производит или продает предприятие.

Для того чтобы оперативно получать информацию о взаимной задолженности предприятия и покупателя, потребуется регистр «Взаиморасчеты», в котором для каждого покупателя будет храниться сумма задолженности. При совершении хозяйственной операции состояние регистра будет соответствующим образом изменяться, каждый раз отражая текущее состояние взаиморасчетов. Регистр «Взаиморасчеты» — это регистр остатков.

Однако, легко получить информацию об объеме закупок, совершенных данным покупателем за какой-либо период времени, из регистра «Взаиморасчеты» нельзя. Можно проанализировать все движения, имеющие отношение к данному покупателю, и вычислить общую сумму закупок. Но, когда необходимо получать эти сведения оперативно (например, по условиям договора при достижении определенного объема закупок покупателю должна предоставляться скидка), такой способ, конечно же, не подходит.

В этом случае решением проблемы может быть использование регистра оборотов. В таком регистре — назовем его «Объем закупок» — в разрезе покупателей будет храниться информация об объеме закупок (об обороте покупателя). При создании регистра оборотов можно указывать, с какой периодичностью будет накапливаться информация: день, неделя, месяц и так далее.

Теперь, при совершении хозяйственных операций, необходимо будет изменять не только состояние регистра «Взаиморасчеты», но и регистр «Объем закупок». В этот регистр при совершении клиентом каждой покупки будет заноситься информация о сумме покупки. В результате в регистре «Объем закупок» будет постоянно накапливаться информация об общем объеме закупок клиента.

Основы программирования

Оборотный регистр Доходы
Измерения: Клиент, Товар
Ресурсы: Доход
Реквизиты: нет
Периодичность: День
Регистр остатков Товары
Измерения: Товар, Склад
Ресурсы: Количество, Стоимость
Реквизиты: нет
Хранит доходы от продаж за день в разрезе клиентов и товаров. Хранит остатки товаров на каждом складе в количественном и суммовом выражении.
Читайте также:  Сила измерение силы доклад

Запись движений в регистр остатков
(только при проведении документа)
р.Доходы.ДвижениеПриход(Покупатель,КупленныйТовар,СуммаПокупки)

Методы ДвижениеПриходВыполнить и ДвижениеРасходВыполнить
Пример:

Регистр.Доходы.Клиент = Покупатель;
Регистр.Доходы.Товар = КупленныйТовар;
Регистр.Доходы.Доход = СуммаПокупки;
Регистр.Доходы.ДвижениеПриходВыполнить();

Запись движений в оборотный регистр
(только при проведении документа)

1. Метод Движение

Пример: Регистр.Товары.Движение (ПоступившийТовар, ТекСклад, КолвоПоНакладной, СуммаПоНакладной)

2. Метод ДвижениеВыполнить
Пример:
Регистр.Товары.Товар = ПоступившийТовар;
Регистр.Товары.Склад = ТекСклад;
Регистр.Товары.Количество = КолвоПоНакладной;
Регистр.Товары.Стоимость = СуммаПоНакладной;
Регистр.Товары.ДвижениеВыполнить();

Примечание: Если сумма или количество в движении будет отрицательным, то это движение будет расходом, иначе приходом.

Обращение к итогам регистра

1-й способ.
РегТовары = СоздатьОбъект(«Регистр.Товары»);
РегТовары. ВыбратьИтоги();
Пока РегТовары.ПолучитьИтог()=1 Цикл
. Сообщить(«Товар » + Строка(РегТовары.Товар) +
. » на складе » + Строка(РегТовары.Склад) +
. » кол-во: » + Строка(РегТовары.Количество) +
. » стоимость: » + Строка(РегТовары.Стоимость) +
КонецЦикла;

2-й способ. Выгрузка итогов в таблицу значений

РегДоходы = СоздатьОбъект(«Регистр.Доходы»);
ТабЗнач = СоздатьОбъект(«ТаблицаЗначений»);

РегДоходы.ВыгрузитьИтоги(ТабЗнач);

ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
. Сообщить(«Товар » + Строка(ТабЗнач.Товар) +
. » на складе » + Строка(ТабЗнач.Склад) +
. » кол-во: » + Строка(ТабЗнач.Количество) +
. » стоимость: » + Строка(ТабЗнач.Стоимость) +
КонецЦикла;

Обращение к итогам оборотного регистра

РегДоходы = СоздатьОбъект(«Регистр.Доходы»);
//установить период выборки «30 ноября 2001 года»
РегДоходы.ИспользоватьПериод(2001,11,30);

1. Метод Итог

Пример:
//получить доход за день по данному клиенту и данному товару
Доход = РегДоходы.Итог(ТекКлиент, ТекТовар, «Доход»);

2. Метод Итоги
Пример:
//получить доход за день по данному клиенту и данному товару
РегДоходы.Итоги(ТекКлиент, ТекТовар);
Доход = РегДоходы.Доход;

3. Метод СводныйИтог

Могут быть указаны не все измерения. Фиксируются только указанные измерения.

Пример:
//получить сводные итоги за день
ДоходПоКлиенту = РегДоходы.СводныйИтог(ТекКлиент,,»Доход»);
ДоходПоТовару = РегДоходы.СводныйИтог(,ТекТовар,»Доход»);

4. Метод СводныеИтоги

Могут быть указаны не все измерения. Фиксируются только указанные измерения.

Пример:
//получить сводные итоги за день по клиенту
РегДоходы.СводныеИтоги(ТекКлиент,); //указано только одно измерение
ДоходПоКлиенту = РегДоходы.Доход;

//получить сводные итоги за день по товару
РегДоходы.СводныеИтоги(,ТекТовар); //указано только одно измерение
ДоходПоТовару = РегДоходы.Доход;

Обращение к итогам регистра остатков

Пример:
//получить остаток данного товара на данном складе
Колво = РегТовары.Остаток (ТекТовар, ТекСклад, «Количество»);

//получить стоимость данного товара на данном складе
Стоимость = РегТовары.Остаток (ТекТовар, ТекСклад, «Стоимость»);

2. Метод Остатки

Пример:
//получить остаток данного товара на данном складе по кол-ву и по сумме
РегТовары.Остатки (ТекТовар, ТекСклад);
Колво = РегТовары.Количество;
Стоимость = РегТовары.Стоимость;

3. Метод СводныйОстаток

Могут быть указаны не все измерения. Фиксируются только указанные измерения.

Пример:
//получить остаток данного товара на всех складах
КолвоТовара = РегТовары.СводныйОстаток (ТекТовар,,»Количество»);
СтоимостьТовара = РегТовары.СводныйОстаток (ТекТовар,,»Стоимость»);

//получить стоимость всех товаров на данном складе
СтоимостьПоСкладу = РегТовары.СводныйОстаток (,ТекСклад,»Стоимость»);

4. Метод СводныеОстатки
Пример:
//получить сводные остатки по товару
РегТовары.СводныеОстатки(ТекТовар,); //указано только одно измерение
КолвоТовара = РегТовары.Количество;
СтоимостьТовара = РегТовары.Стоимость;

//получить стоимость всех товаров на данном складе
РегТовары.СводныеИтоги(,ТекСклад); //указано только одно измерение
СтоимостьПоСкладу = РегТовары.Стоимость;

Обращение к движениям регистра

РегТовары.ВыбратьДвижения(ДатаНач, ДатаКон);
Пока РегТовары.ПолучитьДвижение()=1 Цикл
. Сообщить(«Дата движения » + Строка(РегТовары.ТекущийДокумент.ДатаДок));
. Сообщить(«Клиент: » + РегТовары.Клиент);
. Сообщить(«Товар: » + РегТовары.Товар);
. Сообщить(«Сумма: » + РегТовары.Доход);
КонецЦикла;

Фильтрация движений и итогов

1. Метод УстановитьФильтр

Пример:
//выбрать все движения по данному складу за период
РегТовары.УстановитьФильтр(,ТекСклад);
РегТовары.ВыбратьДвижения(ДатаНач, ДатаКон);
Пока РегТовары.ПолучитьДвижение()=1 Цикл
.
КонецЦикла;

//выбрать все товары на данном складе
РегТовары.УстановитьФильтр(,ТекСклад);
РегТовары.ВыбратьИтоги();
Пока РегТовары.ПолучитьИтог()=1 Цикл
.
КонецЦикла;

2. Метод УстановитьЗначениеФильтра

Пример:
//выбрать все движения по данному складу за период
РегТовары.УстановитьЗначениеФильтра(«Склад», ТекСклад);

//далее идет выборка движений или итогов

3. Метод ВыбратьДвиженияДокумента

4. Метод ВыбратьДвиженияСОстатками
Применяется только для регистра остатков.

Временный расчет регистров

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

РегТовары = СоздатьОбъект(«Регистр.Товары»);
РегДоходы = СоздатьОбъект(«Регистр.Доходы»);

//установка флага временного расчета для регистров
РегТовары.ВременныйРасчет(1);
РегДоходы.ВременныйРасчет(1);

1. Метод РассчитатьРегистрыНа
Рассчитать все регистры с установленным флагом временного расчета на начало события.
(на начало даты или на момент до проведения документа)

2. Метод РассчитатьРегистрыПо
Рассчитать все регистры с установленным флагом временного расчета на конец события.
(на конец даты или на момент после проведения документа)

Запрос к регистру
В запросах к регистрам применяются функции НачОст, КонОст, Приход, Расход. В запросах к оборотным регистрам обязательно указывается Период.

ТекстЗапроса = »
|Период С ДатаНач По ДатаКон;
|Товар = Регистр.Доходы.Товар;
|Клиент = Регистр.Доходы.Клиент;
|Доход = Регистр.Доходы.Доход;
|Условие (Товар = ТекТовар);
|Группировка Клиент;
|Функция ПриходПоКлиенту = Приход(Доход);
|»;

Источник

Глава 15.
Регистры

Регистры в системе 1С:Предприятие используются для накопления информации о наличии и движении средств — товарных, денежных и других. Вся информация о хозяйственных операциях, которая вводится с использованием документов или формируется при помощи расчетов, должна быть накоплена в регистрах. Тогда эту информацию можно будет извлечь, проанализировать и представить пользователю в виде отчетных форм.

Регистры в системе 1С:Предприятие

В этом параграфе будет рассказано о понятии «регистр» и даны сведения об основных принципах использования

Регистр — это внутренний компонент создаваемой конфигурации. При использовании конфигурации регистр недоступен пользователю для непосредственного заполнения, нет стандартных средств его просмотра, как для других агрегатных объектов метаданных (документов, справочников, констант и так далее). Однако, средствами встроенного языка можно записывать в регистры информацию и в последующем извлекать ее.

Проблема, которая обычно возникает при создании «хранилища» сводной информации: «В каких разрезах накапливать сводные данные, чтобы затем можно было извлечь нужную информацию без утомительной обработки?». Система 1С:Предприятие использует простые и в то же время гибкие средства для создания регистров: достаточно просто задать, в каких разрезах и какие данные требуется хранить в регистре, а система сама обеспечит запись и получение нужных данных простыми языковыми средствами.

Физический смысл регистра сформулировать довольно сложно, и скорее всего, регистр не имеет материального аналога. Можно сказать, что регистр — это n-мерная система координат, в узлах которой хранятся совокупные данные. Проиллюстрировать это можно на таком примере.

Предположим, что регистр «Товарные запасы» должен содержать сведения о количестве и стоимости каждого товара на каждом складе. В дальнейшем предполагается получать информацию такого типа «остаток конкретного товара на конкретном складе», «остаток конкретного товара всего, на всех складах», «стоимость всех товаров на конкретном складе». В идеологии системы 1С:Предприятие регистр такого вида представляет собой прямоугольную систему координат на одной оси которой находятся склады, на другой — товары, а на пересечении конкретного склада и конкретного товара находятся цифры количества товара и стоимости товара.

Читайте также:  Приборы для измерения сахара контур

В дальнейшем будем использовать термин «измерения» для обозначения понятий типа использованных выше «товар», «склад», и термин «ресурсы» — для понятий типа «количество», «стоимость».

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

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

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

В системе 1С:Предприятие возможно использование регистров двух типов: регистры остатков и регистры оборотов. Разница между ними понятна из их названия и заключается в характере хранимой информации: в регистрах остатков всегда хранится информация о конечном состоянии средств, а в регистрах оборотов, образно выражаясь, — как это состояние было достигнуто.

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

Для того чтобы оперативно получать информацию о взаимной задолженности предприятия и покупателя, потребуется регистр «Взаиморасчеты», в котором для каждого покупателя будет храниться сумма задолженности. При совершении хозяйственной операции состояние регистра будет соответствующим образом изменяться, каждый раз отражая текущее состояние взаиморасчетов. Регистр «Взаиморасчеты» — это регистр остатков.

Однако, получить информацию об объеме закупок, совершенных данным покупателем за какой-либо период времени, из регистра «Взаиморасчеты» нельзя — он такой информации попросту не содержит. Можно проанализировать все документы, имеющие отношение к данному покупателю, и вычислить общую сумму закупок. Но, когда необходимо получать эти сведения оперативно (например, по условиям договора при достижении определенного объема закупок покупателю должна предоставляться скидка), такой способ, конечно же, не подходит.

В этом случае решением проблемы может быть использование регистра оборотов. В таком регистре — назовем его «Объем закупок» — в разрезе покупателей будет храниться информация об объеме закупок (об обороте покупателя). При создании регистра оборотов можно указывать, с какой периодичностью будет накапливаться информация: день, неделя, месяц и так далее.

Теперь, при совершении хозяйственных операций, необходимо будет изменять не только состояние регистра «Взаиморасчеты», но и регистр «Объем закупок». В этот регистр при совершении клиентом каждой покупки будет заноситься информация о сумме покупки. В результате в регистре «Объем закупок» будет постоянно накапливаться информация об общем объеме закупок клиента.

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

Прежде всего, регистры используются для хранения информации, к которой требуется получать оперативный доступ. «Уровень оперативности» и, соответственно, целесообразность использования регистра должен определять специалист, выполняющий конфигурирование системы 1С:Преднриятие, в соответствии с требованиями пользователей системы.

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

Управление списком регистров

Вся работа с объектами метаданных типа «Регистр» ведется в окне «Конфигурация — Метаданные». Для регистров отведена отдельная ветвь дерева метаданных, которая начинается у ключевого слова «Регистры». Приемы создания, редактирования свойств и удаления регистров совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. Ошибка! Закладка не определена..

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

При редактировании регистра определяется его тип и разрабатывается структура регистра: создаются наборы измерений, ресурсов и реквизитов регистра.

В этом параграфе будут описаны уникальные свойства регистра, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Регистр редактируется в окне редактирования «Регистр».

Измерения, ресурсы, реквизиты. Управляющие элементы окна редактирования, объединенные в группы «Измерения», «Ресурсы» и «Реквизиты» позволяют управлять, соответственно, списком измерения, ресурсов и реквизитов регистра, а также редактировать их свойства. О том, как это делать, см. п. «Разработка структуры регистра».

Тип регистра. Если регистр предназначен для хранения остатков выберите опцию «Остатки».

Если регистр предназначен для хранения оборотов, следует выбрать опцию «Обороты». В поле «Периодичность» необходимо выбрать периодичность хранения оборотов (в данном случае имеются в виду календарные периоды).

Быстрая обработка движений. Это специальная опция, которая используется для оптимизации доступа к движениям отдельных регистров. Ее целесообразно использовать для тех регистров, движения которых записываются документами сравнительно редко, то есть среди всех документов вводимых пользователями в 1С:Предприятии процент документов (не видов, а экземпляров), записывающих движения по этому регистру является небольшим. В этом случае установка признака «Быстрая обработка движений» позволяет ускорить операции, обрабатывающие движения этого регистра (запросы, временные расчеты итогов, обход движений средствами встроенного языка). Для регистров, по которым движения записываются большим количеством документов, установка этого признака может не дать ощутимого выигрыша в производительности. Заметим, что установка этого признака несколько замедляет запись движений данного регистра.

Разработка структуры регистра

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

Для управления списком измерений, ресурсов и реквизитов регистра и редактирования их свойств служат управляющие элементы групп «Измерения», «Ресурсы», «Реквизиты» окна редактирования «Регистр». С точки зрения настройки элементы этих групп одинаковы. Порядок использования этих управляющих элементов можно посмотреть в п. «Редактирование списков объектов метаданных» на стр. Ошибка! Закладка не определена..

Свойства измерения (ресурса, реквизита)

Свойства измерений, ресурсов и реквизитов редактируются при помощи палитры свойств соответственно «Свойства Измерения», «Свойства Ресурса» или «Свойства Реквизита». В основном они совпадают с общими свойствами объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. Ошибка! Закладка не определена..

Необходимо отметить, что объекты метаданных типа «Ресурс» могут иметь тип значения только «число».

Для измерений и реквизитов в закладке «Дополнительные» может быть установлен признак «Отбор движений», а для измерений — также признак «Отбор итогов». Эти признаки не влияют на функциональные возможности регистра, а используются исключительно для оптимизации доступа к данным регистра.

Установка признака «Отбор движений» для измерения или реквизита позволяет ускорить выполнение операций, обращающихся к движениям регистра, в случае, если выбираются движения по конкретному значению данного измерения или реквизита. К таким операциям относятся запросы с условием равенства данного измерения (реквизита) указанному значению, а также временный расчет и методы обхода движений объекта «Регистр» встроенного языка, использующие фильтр по определенному значению измерения (реквизита).

Признак «Отбор итогов», соответственно, позволяет ускорить операции, обращающиеся к итогам данного регистра с конкретным значением измерения. К ним относятся запросы и выборка итогов средствами объекта «Регистр» встроенного языка. Заметим, что установка данного признака имеет смысл только в том случае, если в предполагаемых обращениях будут выбираться итоги по значению данного измерения, по без указания значений всех предыдущих измерений, так как при указании значений нескольких первых измерений выборка данных выполняется оптимальным образом без использования отборов. То есть, если регистр имеет измерения «Товар», «Склад», «Организация», то имеет смысл устанавливать отбор итогов по измерению «Организация» в том случае, если предполагается обращение к итогам с выборкой но конкретной организации, по всем товарам. Таким образом, установка отбора итогов по первому измерению вообще смысла не имеет.

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

Удаление измерения (ресурса, реквизита)

Удаление измерения, ресурса или реквизита выполняется в соответствии с общими приемами редактирования списков объектов метаданных, о которых говорилось в п. «Редактирование списков объектов метаданных» на стр. Ошибка! Закладка не определена..

При удалении измерения, ресурса или реквизита необходимо иметь в виду следующее: удаление измерения, ресурса или реквизита требует внесения изменений во все объекты метаданных, которые ссылаются на это измерение, ресурс или реквизит.

Упорядочивание списка измерений (ресурсов, реквизитов)

Упорядочивание списка измерений (ресурсов, реквизитов) выполняется кнопками («Переместить вверх»), («Переместить вниз») и («Упорядочить»), расположенными справа от соответствующего списка.

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

Читайте также:  Задачи по информатике 7 класс измерение информации без решения

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

Последовательность расстановки измерений (ресурсов, реквизитов) регистра влияет на возможность применения методов встроенного языка, использующих позиционный доступ к измерениям (ресурсов, реквизитов) регистра.

Поясним это на таком примере. Регистр «Товарный запас» имеет измерения «Товар», «Склад» и ресурсы «Количество», «Стоимость». При указанном порядке измерений метод встроенного языка СводныйОстаток() позволит получить общее количество (или стоимость) конкретного товара на всех складах или на конкретном складе, но получить общее количество (или стоимость) всех товаров на конкретном складе будет невозможно.

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

Источник

Для чего нужны измерения регистра ресурсы реквизиты

Рассылка
Курс лекций
Статьи
Программы
Ссылки

Форум

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

Назначение регистров

Регистры — это таблицы для накопления оперативных данных и получения сводной информации.

Данные в регистры добавляются только при проведении документов. Сведения из регистров используются для формирования отчетов. Классическая схема использования регистров в 1С:Предприятие выглядит следующим образом:

Документы => Регистры => Отчеты


Измерения и ресурсы

Основная проблема при проектировании регистров — это определение его структуры. Структура регистра должна быть такова, чтобы извлекать из него нужную информацию без утомительной обработки.

Измерения регистра — это то, в каких разрезах требуется хранение информации.
Ресурсы регистра — это количественные или суммовые данные, которые хранятся в регистре.

Предположим, что регистр «Остатки товаров» должен содержать сведения о количестве и стоимости каждого товара на каждом складе. В идеологии системы 1С:Предприятие регистр такого вида представляет собой прямоугольную систему координат на одной оси которой находятся склады, на другой — товары, а на пересечении конкретного склада и конкретного товара находятся цифры количества товара и стоимости товара.

Регистр: Остатки товаров
Измерения: Товар, Склад
Ресурсы: Кол-во, Стоимость

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

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

Одна строка из этой таблицы называется «движение». Движения в регистрах создаются только при проведении документов. В регистре, кроме измерений и ресурсов, можно задать реквизиты. Реквизиты — это дополнительные сведения, сопровождающие движение. Методами встроенного языка можно отбирать движения с заданным значением реквизита.

В системе 1С:Предприятие возможно использование регистров двух типов: регистры остатков и регистры оборотов. Разница между ними понятна из их названия и заключается в характере хранимой информации: в регистрах остатков всегда хранится информация о конечном состоянии средств, а в регистрах оборотов, образно выражаясь, — как это состояние было достигнуто.

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

Рассмотрим в качестве примера отслеживание взаиморасчетов с покупателями товаров, которые производит или продает предприятие.

Для того чтобы оперативно получать информацию о взаимной задолженности предприятия и покупателя, потребуется регистр «Взаиморасчеты», в котором для каждого покупателя будет храниться сумма задолженности. При совершении хозяйственной операции состояние регистра будет соответствующим образом изменяться, каждый раз отражая текущее состояние взаиморасчетов. Регистр «Взаиморасчеты» — это регистр остатков.

Однако, легко получить информацию об объеме закупок, совершенных данным покупателем за какой-либо период времени, из регистра «Взаиморасчеты» нельзя. Можно проанализировать все движения, имеющие отношение к данному покупателю, и вычислить общую сумму закупок. Но, когда необходимо получать эти сведения оперативно (например, по условиям договора при достижении определенного объема закупок покупателю должна предоставляться скидка), такой способ, конечно же, не подходит.

В этом случае решением проблемы может быть использование регистра оборотов. В таком регистре — назовем его «Объем закупок» — в разрезе покупателей будет храниться информация об объеме закупок (об обороте покупателя). При создании регистра оборотов можно указывать, с какой периодичностью будет накапливаться информация: день, неделя, месяц и так далее.

Теперь, при совершении хозяйственных операций, необходимо будет изменять не только состояние регистра «Взаиморасчеты», но и регистр «Объем закупок». В этот регистр при совершении клиентом каждой покупки будет заноситься информация о сумме покупки. В результате в регистре «Объем закупок» будет постоянно накапливаться информация об общем объеме закупок клиента.

Основы программирования

Оборотный регистр Доходы
Измерения: Клиент, Товар
Ресурсы: Доход
Реквизиты: нет
Периодичность: День
Регистр остатков Товары
Измерения: Товар, Склад
Ресурсы: Количество, Стоимость
Реквизиты: нет
Хранит доходы от продаж за день в разрезе клиентов и товаров. Хранит остатки товаров на каждом складе в количественном и суммовом выражении.

Запись движений в регистр остатков
(только при проведении документа)
р.Доходы.ДвижениеПриход(Покупатель,КупленныйТовар,СуммаПокупки)

Методы ДвижениеПриходВыполнить и ДвижениеРасходВыполнить
Пример:

Регистр.Доходы.Клиент = Покупатель;
Регистр.Доходы.Товар = КупленныйТовар;
Регистр.Доходы.Доход = СуммаПокупки;
Регистр.Доходы.ДвижениеПриходВыполнить();

Запись движений в оборотный регистр
(только при проведении документа)

1. Метод Движение

Пример: Регистр.Товары.Движение (ПоступившийТовар, ТекСклад, КолвоПоНакладной, СуммаПоНакладной)

2. Метод ДвижениеВыполнить
Пример:
Регистр.Товары.Товар = ПоступившийТовар;
Регистр.Товары.Склад = ТекСклад;
Регистр.Товары.Количество = КолвоПоНакладной;
Регистр.Товары.Стоимость = СуммаПоНакладной;
Регистр.Товары.ДвижениеВыполнить();

Примечание: Если сумма или количество в движении будет отрицательным, то это движение будет расходом, иначе приходом.

Обращение к итогам регистра

1-й способ.
РегТовары = СоздатьОбъект(«Регистр.Товары»);
РегТовары. ВыбратьИтоги();
Пока РегТовары.ПолучитьИтог()=1 Цикл
. Сообщить(«Товар » + Строка(РегТовары.Товар) +
. » на складе » + Строка(РегТовары.Склад) +
. » кол-во: » + Строка(РегТовары.Количество) +
. » стоимость: » + Строка(РегТовары.Стоимость) +
КонецЦикла;

2-й способ. Выгрузка итогов в таблицу значений

РегДоходы = СоздатьОбъект(«Регистр.Доходы»);
ТабЗнач = СоздатьОбъект(«ТаблицаЗначений»);

РегДоходы.ВыгрузитьИтоги(ТабЗнач);

ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
. Сообщить(«Товар » + Строка(ТабЗнач.Товар) +
. » на складе » + Строка(ТабЗнач.Склад) +
. » кол-во: » + Строка(ТабЗнач.Количество) +
. » стоимость: » + Строка(ТабЗнач.Стоимость) +
КонецЦикла;

Обращение к итогам оборотного регистра

РегДоходы = СоздатьОбъект(«Регистр.Доходы»);
//установить период выборки «30 ноября 2001 года»
РегДоходы.ИспользоватьПериод(2001,11,30);

1. Метод Итог

Пример:
//получить доход за день по данному клиенту и данному товару
Доход = РегДоходы.Итог(ТекКлиент, ТекТовар, «Доход»);

2. Метод Итоги
Пример:
//получить доход за день по данному клиенту и данному товару
РегДоходы.Итоги(ТекКлиент, ТекТовар);
Доход = РегДоходы.Доход;

3. Метод СводныйИтог

Могут быть указаны не все измерения. Фиксируются только указанные измерения.

Пример:
//получить сводные итоги за день
ДоходПоКлиенту = РегДоходы.СводныйИтог(ТекКлиент,,»Доход»);
ДоходПоТовару = РегДоходы.СводныйИтог(,ТекТовар,»Доход»);

4. Метод СводныеИтоги

Могут быть указаны не все измерения. Фиксируются только указанные измерения.

Пример:
//получить сводные итоги за день по клиенту
РегДоходы.СводныеИтоги(ТекКлиент,); //указано только одно измерение
ДоходПоКлиенту = РегДоходы.Доход;

//получить сводные итоги за день по товару
РегДоходы.СводныеИтоги(,ТекТовар); //указано только одно измерение
ДоходПоТовару = РегДоходы.Доход;

Обращение к итогам регистра остатков

Пример:
//получить остаток данного товара на данном складе
Колво = РегТовары.Остаток (ТекТовар, ТекСклад, «Количество»);

//получить стоимость данного товара на данном складе
Стоимость = РегТовары.Остаток (ТекТовар, ТекСклад, «Стоимость»);

2. Метод Остатки

Пример:
//получить остаток данного товара на данном складе по кол-ву и по сумме
РегТовары.Остатки (ТекТовар, ТекСклад);
Колво = РегТовары.Количество;
Стоимость = РегТовары.Стоимость;

3. Метод СводныйОстаток

Могут быть указаны не все измерения. Фиксируются только указанные измерения.

Пример:
//получить остаток данного товара на всех складах
КолвоТовара = РегТовары.СводныйОстаток (ТекТовар,,»Количество»);
СтоимостьТовара = РегТовары.СводныйОстаток (ТекТовар,,»Стоимость»);

//получить стоимость всех товаров на данном складе
СтоимостьПоСкладу = РегТовары.СводныйОстаток (,ТекСклад,»Стоимость»);

4. Метод СводныеОстатки
Пример:
//получить сводные остатки по товару
РегТовары.СводныеОстатки(ТекТовар,); //указано только одно измерение
КолвоТовара = РегТовары.Количество;
СтоимостьТовара = РегТовары.Стоимость;

//получить стоимость всех товаров на данном складе
РегТовары.СводныеИтоги(,ТекСклад); //указано только одно измерение
СтоимостьПоСкладу = РегТовары.Стоимость;

Обращение к движениям регистра

РегТовары.ВыбратьДвижения(ДатаНач, ДатаКон);
Пока РегТовары.ПолучитьДвижение()=1 Цикл
. Сообщить(«Дата движения » + Строка(РегТовары.ТекущийДокумент.ДатаДок));
. Сообщить(«Клиент: » + РегТовары.Клиент);
. Сообщить(«Товар: » + РегТовары.Товар);
. Сообщить(«Сумма: » + РегТовары.Доход);
КонецЦикла;

Фильтрация движений и итогов

1. Метод УстановитьФильтр

Пример:
//выбрать все движения по данному складу за период
РегТовары.УстановитьФильтр(,ТекСклад);
РегТовары.ВыбратьДвижения(ДатаНач, ДатаКон);
Пока РегТовары.ПолучитьДвижение()=1 Цикл
.
КонецЦикла;

//выбрать все товары на данном складе
РегТовары.УстановитьФильтр(,ТекСклад);
РегТовары.ВыбратьИтоги();
Пока РегТовары.ПолучитьИтог()=1 Цикл
.
КонецЦикла;

2. Метод УстановитьЗначениеФильтра

Пример:
//выбрать все движения по данному складу за период
РегТовары.УстановитьЗначениеФильтра(«Склад», ТекСклад);

//далее идет выборка движений или итогов

3. Метод ВыбратьДвиженияДокумента

4. Метод ВыбратьДвиженияСОстатками
Применяется только для регистра остатков.

Временный расчет регистров

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

РегТовары = СоздатьОбъект(«Регистр.Товары»);
РегДоходы = СоздатьОбъект(«Регистр.Доходы»);

//установка флага временного расчета для регистров
РегТовары.ВременныйРасчет(1);
РегДоходы.ВременныйРасчет(1);

1. Метод РассчитатьРегистрыНа
Рассчитать все регистры с установленным флагом временного расчета на начало события.
(на начало даты или на момент до проведения документа)

2. Метод РассчитатьРегистрыПо
Рассчитать все регистры с установленным флагом временного расчета на конец события.
(на конец даты или на момент после проведения документа)

Запрос к регистру
В запросах к регистрам применяются функции НачОст, КонОст, Приход, Расход. В запросах к оборотным регистрам обязательно указывается Период.

ТекстЗапроса = »
|Период С ДатаНач По ДатаКон;
|Товар = Регистр.Доходы.Товар;
|Клиент = Регистр.Доходы.Клиент;
|Доход = Регистр.Доходы.Доход;
|Условие (Товар = ТекТовар);
|Группировка Клиент;
|Функция ПриходПоКлиенту = Приход(Доход);
|»;

Источник