Difference between revisions of "TempDB.LoadFrom"
1>Admin |
m (1 revision imported) |
(No difference)
|
Revision as of 08:05, 28 June 2021
LoadFrom (Загрузка данных во временную таблицу) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция выполняет загрузку записей из указанного источника данных (таблицы объекта проекта или другой временной таблицы базы данных), при этом указанные столбцы таблицы заполняются требуемым образом. Запрос к источнику базы данных может быть выполнен с использованием агрегации или без оной. Если выполняется запрос агрегации, для вычисления столбцов возможно применять функции агрегации. Предыдущие записи, находившиеся до этого момента в таблице не изменяются, операция только добавляет новые записи.
Синтаксис
TempDB.LoadFrom(<Источник данных (DB,STRING,TEMPDB)>,<Формулы для вычисления столбцов (STRING)>,<Стандартные фильтры>...)
Аргументы
<Источник данных (DB,STRING,TEMPDB)>
- Источник данных для добавления записей может быть:- Объект базы данных -- принимаются объекты типа Справочник, Документ, Накопитель или Журнал.
- Строка -- задает путь объекта базы данных в виде
<Тип данных БД>.<Вид данных БД>
. - Другая временная таблица базы данных -- переменная, задающая другую временную таблицу базы данных, записи которой будут копировать в данную.
<Формулы для вычисления столбцов (STRING)>
- Аргумент задает способ вычисления столбцов текущей таблицы при добавлении записей из источника. Столбцы, не указанные в данном аргументе, при добавлении новой записи, будут заполнены пустыми значениями по умолчанию. Задание аргумента имеет следующий формат:[Aggregate[:<Столбцы группировки через ":">],]<Выражение 1>-><Имя столбца 1>,<Выражение 2>-><Имя столбца 2>...
. При наличии зарезервированного слова Aggregate к источнику данных будет создан запрос агрегации с группировкой по указанным столбцам таблицы или реквизитам объекта (планируется к реализации), при этом в выражениях для вычисления можно использовать функции агрегации. Выражения содержат весь возможный набор функций и операторов языка запросов (см. Временная таблица базы данных, Объект запрос базы данных).<Стандартные фильтры>
- (необязательный аргумент) Стандартные фильтры отбора записей источника данных описаны в статье Стандартные фильтры. Важное отличие от фильтров функций объектов базы данных заключается в том, что стандартные фильтры всегда работают в сложном (расширенном) режиме, при этом отсутствует требование, что первая строка фильтра должна начинаться на знак ~. Выражения фильтров содержат весь возможный набор функций и операторов языка запросов (см. Временная таблица базы данных, Объект запрос базы данных), при указании наименование также применимы префиксы (типа :), как это описано в статье по временной таблице базы данных.
Примеры
//Пример создает таблицу аТемп, и заполняет ее резервами документа ЗаказНаПроизводство, при этом в ней также заполнено поле документа ВыпускПродукции. // Документ ВыпускПродукции подчинен документу ЗаказНаПроизводство. Выборка документов происходит за период с НачДата по КонДата. //Таблица номенклатуры из резервов с выпусками и заданиями аТемп:=TempDB.Create("зДок:DB,зЗад:DB,зН:DB:I,Количество:NUMBER.15.5"); //Заказы на производство аТемп.LoadFrom("Stor.Резервы","@LINK->зЗад,Номенклатура->зН,?(@EXPENSE=1,-Количество,Количество)->Количество", "(BegOfDay(@DATE)>=НачДата)And(BegOfDay(@DATE)<=КонДата)","IsType(@LINK,Doc.ЗаказНаПроизводство)"); //Заполняем зДок (подчиненный документ -- ВыпускПродукции) вТемп:=TempDB.Create("зДок2:DB,зЗад:DB"); //Выбираются только те документы выпусков, основания которых (ЗаказНаПроизводство) находятся в таблице аТемп вТемп.LoadFrom("Doc.ВыпускПродукции","@ELEMENT->зДок2,@ELEMENT.ДокОснование->зЗад","@ELEMENT.ДокОснование IN аТемп.зЗад"); //Заполним столбец зДок оригинальной таблицы, объединение происходит по условию ":зЗад=зЗад". аТемп.Update(вТемп,":зЗад=зЗад,зДок2->зДок"); //В дальнейшем таблицу аТемп можно выводить на экран или использовать в последующих запросах.