Difference between revisions of "DB.Totals"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:43, 7 February 2021
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;