VladProg писал(а):Хочу в запросах использовать ПАРАМЕТР КОНФИГУРАЦИИ "ОТБОР_РМ()",
Функция ОТБОР_РМ (или FIZ_OTDS) возвращает SQL-предложение для отбора
записей по номеру подразделения. Функция имеет параметр - имя поля, в
котором хранится номер подразделения. Например, если в качестве параметра
передать строку "CH_70_S.OTD", то результат будет примерно следующим:
(CH_70_S.OTD IS NULL OR
CH_70_S.OTD IN ('
','0013','2','6013','1','5','3','4','6003','6004','6005','6006','6009','6007
','6008','6010') OR CH_70_S.OTD IN ('6011','6001'))
Если оператор имеет полный доступ, функция возвращает пустую строку.
Функцию можно использовать в бизнес-процедурах для формирования текста
SQL-запроса. Пример бизнес-процедуры:
s = FIZ_OTDS("CH_70_S.OTD")
if not empty(s) then
s = " and "+s
end if
q = SQL "SELECT * FROM CH_70_S WHERE CH_70_S.GM_RAS='201005'"+s
...
Также функцию можно использовать при настройке связи со справочником с
помощью запросной формы - для заполнения макропараметров.
Непосредственно в мастере запросов функция не может быть использована, так
как при описании запроса значение макропараметра может быть только
константой и не может быть выражением. Но если при описании запроса имеются
макропараметры, то при использовании этого запроса из бизнес- процедуры с
помощью функций SQL или QForm одному из макропараметров может быть присвоено
значение, полученное с помощью функции FIZ_OTDS. Пример такой процедуры:
mac = ListBox
s = FIZ_OTDS("CH_70_S.OTD")
if not empty(s) then
mac.Add " and "+s
else
mac.Add ""
end if
a = QForm "CH_70_S_MAC",mac,"201005"
a.ShowModal
Здесь предполагается, что запросная форма "CH_70_S_MAC" имеет один параметр
и один макропараметр. Например, она может содержать следующий текст запроса:
SELECT * FROM CH_70_S
WHERE CH_70_S.GM_RAS=:mon
%s