Почему у меня такое происходит?:
Если в файле defcls.prm я баню определения функций класса:
класс AccountsRecordset = AccountsRecordsetV2.ert : ODBCRecordset
{
//Неопределенный ВыполнитьИнструкцию(...);
//Число Открыть(...);
//Строка ОбрМетаСКЛ(Строка ТекстЗапроса, Число bOnOff = 1);
//void Отладка(Число bOnOff = 1);
//Неопределенный ВыполнитьСкалярный(Строка ТекстЗапроса = "");
//void УложитьСписокГрупп(Неопределенный СписокОбъектов, Строка ИмяТаблицы, Строка ВидОбъектов = "");
};
то такая конструкция работает нормально:
NameOfFunction="fn_getrestsoftmz";
_DeleteFunction(NameOfFunction);
rs_acc=createobject("AccountsRecordset");
ТекстЗапроса = "
|select
| rests.Субконто1 [Субконто1 $Субконто]
|, rests.Субконто1_вид
|, upper(rtrim(storage.descr)) [Склад]
|, rests.Субконто2 [Субконто2 $Субконто]
|, rests.Субконто2_вид
|, rtrim(tmz.descr) [ТМЦ]
|, rtrim($tmz.КодТНВД) [КодТНВД]
|, rests.Субконто3 [Субконто3 $Субконто]
|, rests.Субконто3_вид
|, rtrim(part.descr) [Партия]
|, isnull($part.Цена_Прих,0) [ЦенаПартии]
|, $part.Дата_Прих [ДатаПартии]
|, isnull(rests.СуммаОстатокДт,0) [СуммаСКД]
|, isnull(rests.СуммаОстатокКт,0) [СуммаСКК]
|, isnull(rests.КоличествоОстатокДт,0) [КвоСКД]
|, isnull(rests.КоличествоОстатокКт,0) [КвоСКК]
|, 0 [Обработано]
|from
| $БИОстатки.Основной(:ВыбДата,,(Счет = :ВыбСчет),(МестаХранения, ТМЦ, Партии),) rests
| inner join $Справочник.МестаХранения storage(nolock) on storage.id = Субконто1
| left join $Справочник.ТМЦ tmz(nolock) on tmz.id = Субконто2
| left join $Справочник.Партии part(nolock) on part.id = Субконто3
|";
rs_acc=createobject("AccountsRecordset");
rs_acc.УстановитьТекстовыйПараметр("ВыбДата",'30.09.2007');
ной));
Мета = rs_acc.ОбрМетаСКЛ(ТекстЗапроса,1);
textQuery="create function dbo."+NameOfFunction+" ()
|returns table
|as
|return
|(
|"+Мета+")";
if rs.execute(textQuery)=0 then
message("Ошибка создания функции "+NameOfFunction+"!","!!!");
message(rs.GetLastError());
Return;
endif;
а если оставляю так как есть, т.е. такой prm как в архиве, то сыпятся ошибки:
Метод AccountsRecordset::ВыполнитьСкалярный - различаются параметры ( Знач или без Знач ) в описании класса (prm-файл) и его реализации (модуль класса)
Метод AccountsRecordset::ОбрМетаСКЛ - различаются параметры ( Знач или без Знач ) в описании класса (prm-файл) и его реализации (модуль класса)
Метод AccountsRecordset::ВыполнитьСкалярный - различаются параметры ( Знач или без Знач ) в описании класса (prm-файл) и его реализации (модуль класса)
Метод AccountsRecordset::ОбрМетаСКЛ - различаются параметры ( Знач или без Знач ) в описании класса (prm-файл) и его реализации (модуль класса)
Мета = rs_acc.ОбрМетаСКЛ(ТекстЗапроса,1);
{D:\DB1C\ACCOUNT_DB\EXTFORMS\UNIPROCS\CREATEFUNCTION.ERT(292)}: Метод - различаются параметры в описании класса (prm-файл) и его реализации (модуль класса)