Перенос процедур для выполнения их на сервере

1. Mudrii_Gankster 25.09.07 15:30 Сейчас в теме
В базе работает много пользователей, возникла ситуация блокировок для решения которой необходимо часто используемые процедуры перенести на сервер вот...

Сделал следующее - процедура стандартная в УТ в модуле , настройкаПравДоступа

#Если Сервер Тогда
Процедура ПроверкаСуществующихЗаписейРегистра(НаборЗаписей, СтруктураПараметров, Отказ) Экспорт

ИмяРегистра = СтруктураПараметров.МетаданныеНабора.ПолноеИмя();

Запрос = Новый Запрос;
ВложенныйЗапрос = "";
ЕСли СтруктураПараметров.ЕстьОрганизация Тогда
индекс = 1;
ИмяПоляОрганизации = "Организация";
Для Каждого КлючИЗначение ИЗ СтруктураПараметров.СоответствиеГраницЗапрета Цикл
ВложенныйЗапрос = ВложенныйЗапрос + ?(ВложенныйЗапрос = "", "", "
|ОБЪЕДИНИТЬ") +"
|ВЫБРАТЬ &Организация"+индекс+" КАК Организация, &ДатаЗапрета" + Формат(индекс, "ЧГ=0") + " КАК ДатаЗапрета";
Запрос.УстановитьПараметр("Организация"+индекс, КлючИЗначение.Ключ);
ГраницаПериода = КлючИЗначение.Значение;
Запрос.УстановитьПараметр("ДатаЗапрета"+индекс, ?(ГраницаПериода=Неопределено, NULL, ГраницаПериода));
индекс = индекс + 1;
КонецЦикла;
Иначе
ПустаяОрганизация = Справочники.Организации.ПустаяСсылка();
ИмяПоляОрганизации = "&ПустаяОрганизация";
ВложенныйЗапрос = "ВЫБРАТЬ &ПустаяОрганизация КАК Организация, &ДатаЗапрета КАК ДатаЗапрета";
Запрос.УстановитьПараметр("ПустаяОрганизация", ПустаяОрганизация);
ГраницаПериода = СтруктураПараметров.СоответствиеГраницЗапрета[ПустаяОрганизация];
Запрос.УстановитьПараметр("ДатаЗапрета", ?(ГраницаПериода=Неопределено, NULL, ГраницаПериода));
КонецЕсли;

Запрос.Текст = "
|ВЫБРАТЬ НаборЗаписей.Организация, НаборЗаписей.Период, ДатыЗапрета.Организация, ДатыЗапрета.ДатаЗапрета
|ИЗ
|(
|ВЫБРАТЬ " + ИмяПоляОрганизации + " КАК Организация, МИНИМУМ(Период) КАК Период ИЗ " + ИмяРегистра + " КАК Набор
|ГДЕ Регистратор = &Регистратор
|СГРУППИРОВАТЬ ПО " + ИмяПоляОрганизации + "
|) КАК НаборЗаписей
|ЛЕВОЕ СОЕДИНЕНИЕ
|(" + ВложенныйЗапрос + "
|) КАК ДатыЗапрета
|ПО НаборЗаписей.Организация = ДатыЗапрета.Организация
|ГДЕ НаборЗаписей.Период < ДатыЗапрета.ДатаЗапрета ИЛИ ДатыЗапрета.ДатаЗапрета ЕСТЬ NULL";
Запрос.УстановитьПараметр("Регистратор", НаборЗаписей.Отбор.Регистратор.Значение);

Если НЕ Запрос.Выполнить().Пустой() Тогда
Отказ = Истина;
Иначе
Отказ = Ложь;
КонецЕсли;

КонецПроцедуры
#КонецЕсли

и программа ругаеться - попытка передачи мутабельного метода 1 ПроверкаСуществующихЗаписейРегистра()
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Mudrii_Gankster 25.09.07 16:42 Сейчас в теме
кто нибудь хоть какие мысли скажите я не знаю где почитать про это
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот