Difference between revisions of "DB.Totals"
(No difference)
|
Revision as of 08:00, 30 September 2019
| Totals, Gross (Запросы к накопителям) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция выполняет запрос к таблице остатков текущего накопителя, в разрезе заданных реквизитов-аккумуляторов, накапливая остатки по заданным реквизитам актива. Остатки будут получены на указанную дату и могут иметь режим начальный остаток или конечный остаток. При вычислении остатков могут применяться фильтры по требуемым реквизитам-аккумуляторам. Функция возвращает таблицу значений, имеющую количество столбцов, совпадающих с количеством заданных реквизитов группировки и реквизитов агрегации. Имена столбцов соответствуют указанным реквизитам. Функция применима только к накопителям, имеющим таблицу остатков (записи накопителя датируются и имеется по крайней мере один реквизит-аккумулятор и один реквизит актива), для накопителей без таблицы остатков можно использовать функцию Compute.
Синтаксис
DB.Totals(<Список реквизитов группировки (STRING)>,<Список реквизитов суммирования (агрегации) (STRING)>,<Остатки на дату (DATE)>,<Режим даты (INT)>,<Стандартные фильтры>...):<Таблица итогов в требуемом разрезе (TAB)>
Аргументы
<Список реквизитов группировки (STRING)>- Задает наименования реквизитов группировки запроса. Каждый реквизит должен присутствовать в накопителе, каждый реквизит должен иметь признак аккумулятора.<Список реквизитов суммирования (агрегации) (STRING)>- Задает наименования реквизитов агрегации запроса. Каждый реквизит должен присутствовать в накопителе, каждый реквизит должен иметь признак актив.<Остатки на дату (DATE)>- Задает дату нахождения остатков.<Режим даты (INT)>- Задает режим нахождения остатков на дату, доступны следующие значения:- 0 (по умолчанию) -- находить остатки на указанную дату (включая день даты). К примеру, для даты '31.12.2013 12:00:00' остатки будут найдены для периода с датами записей <= '31.12.2013 23:59:59.999', т.е. с записями < '01.01.2014'.
- 1 -- находить остатки до указанной даты (не включать день даты). К примеру, для даты '31.12.2013 12:00:00' остатки будут найдены для периода с датами записей < '31.12.2013'.
- 2 -- находить остатки на указанную дату и время (включая дату и время). К примеру, для даты '31.12.2013 12:00:00' остатки будут найдены для периода с датами записей <= '31.12.2013 12:00:00'.
- 3 -- находить остатки до указанной даты и времени (не включая дату и время). К примеру, для даты '31.12.2013 12:00:00' остатки будут найдены для периода с датами записей < '31.12.2013 12:00:00'.
<Стандартные фильтры>- (необязательный аргумент) Стандартные фильтры описаны в статье Стандартные фильтры. Имеет смысл использовать только фильтры по реквизитам-аккумуляторам (не обязательно их присутствие в реквизитах группировки), иначе остаток будет найден неверно, так как таблица остатков содержит записи только в разрезе реквизитов-аккумуляторов.
Возвращаемое значение
Возвращается таблица, каждая запись которой содержит остаток указанных активов в разрезе указанных аккумуляторов.
Примеры
//Фрагмент заполняет строки документа текущими остатками склада документа за минусом резервов
//Переменные: aEl -- текущий документ
// aTab -- строчная часть документа
aTab.ClearLines();
Tab1:=Stor.ОстаткиТМЦ.Gross("Номенклатура","Количество",,0,"Склад",aEl.Склад);
Tab2:=Stor.РезервыТМЦ.Gross("Номенклатура","Количество",,0,"Склад",aEl.Склад);
Tab2.Select();
While Tab2.Next() Do
Tab2.Количество:=-Tab2.Количество;
EndDo;
//Добавим таблицу резервов к таблице текущих остатков
Tab1.FullJoin(Tab2,"Номенклатура","Количество");
Tab1.Select();
While Tab1.Next() Do
If Round(Tab1.Количество,6)>0 Then
aTab.AddLine("Номенклатура,Количество",Tab1.Номенклатура,Tab1.Количество);
EndIf;
EndDo;