Привет Алл!
В скульной базе 1С применяются пользовательские функции, формируемые из одной обработки, содержимое типа:
Процедура Сформировать()
ОДБС=СоздатьОбъект("ODBCRecordset");
ТекстЗ="CREATE FUNCTION dbo.fn_tovar_pril2 (@docum char(9))
|returns table
|as
|return (
|select
| d.iddoc Док,
| n.descr Товар,
| k.descr Единица,
| Ltrim(Str($d.КоличествоОсн,17,3)) КоличествоОсн,
| Ltrim(Str($d.Количество,17,3)) Количество,
| Ltrim(Str($d.ЦенаБезНДСОсн,17,2)) ЦенаБезНДСОсн,
| Ltrim(Str($d.ЦенаБезНДС,17,2)) ЦенаБезНДС,
| Ltrim(Str($d.ЦенаСНДС,17,2)) ЦенаСНДС,
| Ltrim(Str($d.СуммаБезНДС,17,2)) СуммаБезНДС,
| Ltrim(Str($d.СуммаСНДС,17,2)) СуммаСНДС
|from $ДокументСтроки.Приложение2 d(nolock)
| left join $Справочник.Номенклатура n(nolock) on n.id = $d.Товар
| left join $Справочник.КлассификаторЕдИзм k(nolock) on k.id = $d.Единица
|where d.iddoc = @docum
|)";
ОДБС.ВыполнитьИнструкцию(ТекстЗ);
ТекстЗ="CREATE FUNCTION dbo.fn_tovar_nn (@docum char(9))
|returns table
|as
|return (
........
ОДБС.ВыполнитьИнструкцию(ТекстЗ);
Иногда требуется заменить измененную функцию, иногда добавить... Отследить наличие или версию в попыхах бывает проблематичным...
Вопрос: подскажите, плз, как в этой обработке прямым запросом к скулю узнать существует ли уже польз. функция с таким именем для автоматического или интерактивного принятия решения о перезаписи или пропуске добавления?
Как программно удалить одну/все польз. функции перед их полной перезаписью?