Не проводится ПКО

1. aleks123321 16.08.11 11:36 Сейчас в теме
Коллеги, вчера перешли с платформы 8.1 на новую платформу 8.2. (8.2.14.528)
Причина понятна, 8.1. больше не поддерживается.
Сталкнулся с такой проблемой.
Если пользователь с полными правами - все ОК, все работает.
Если права пользователя урезаны на уровне RLS, то не проводится ПКО,
выдается ошибка
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{ОбщийМодуль.УправлениеЗапасами.Модуль(415)}: Ошибка при вызове метода контекста (Выполнить)

по причине:

по причине:
Ошибка выполнения запроса
по причине:
Построенный запрос к СУБД использует слишком много таблиц. Допустимо не более 256.
Microsoft OLE DB Provider for SQL Server: SqlDumpExceptionHandler: Process 79 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.

HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=1, Severity=13, native=0, line=1

Хотя весь текст запроса мизерный, какие там 256 таблиц?

ВЫБРАТЬ РАЗРЕШЕННЫЕ
Док.ДоговорКонтрагента.ВедениеВзаиморасчетов КАК ВедениеВзаиморасчетов,
Док.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
Док.ДоговорКонтрагента.Организация КАК ДоговорОрганизация,
Док.ДоговорКонтрагента.ВидДоговора КАК ВидДоговора,
Док.ДоговорКонтрагента.КонтролироватьДенежныеСредстваКомитента КАК КонтролироватьДенежныеСредстваКомитента,
Док.Организация.ОтражатьВРегламентированномУчете КАК ОтражатьВРегламентированномУчете,
Константы.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета
ИЗ
Документ.ПриходныйКассовыйОрдер КАК Док
,Константы
ГДЕ Док.Ссылка = &ДокументСсылка



Как решить эту бяку?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. kolya_tlt 90 16.08.11 13:09 Сейчас в теме
3. alexk-is 6546 16.08.11 13:14 Сейчас в теме
(2) Нет. Это сам запрос, который не работает
4. tango 546 16.08.11 13:55 Сейчас в теме
РАЗРЕШЕННЫЕ - слишком много таблиц
просто на шаблоны глянь
5. aleks123321 16.08.11 18:17 Сейчас в теме
tango,
Вот шаблон по ограничению по RLS (документ ПКО)

#Если &ИспользоватьОграничениеПоКонтрагенты ИЛИ &ИспользоватьОграничениеПоОрганизации ИЛИ &ИспользоватьОграничениеПоПодразделения #Тогда
ТекущаяТаблица
ИЗ
#ТекущаяТаблица КАК ТекущаяТаблица
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
СоставГруппы.Ссылка КАК ГруппаПользователей
ИЗ
Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
ГДЕ
СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
ПО (ИСТИНА)
ГДЕ
НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL
И
(НЕ 1 В
(ВЫБРАТЬ ПЕРВЫЕ 1
1
ИЗ
РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа

#Если &ИспользоватьОграничениеПоКонтрагенты #Тогда
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
ПО Контрагенты.Ссылка = ТекущаяТаблица.Контрагент
#КонецЕсли

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
ПО
НастройкиПравДоступаПользователей.ОбъектДоступа = ВЫБОР

#Если &ИспользоватьОграничениеПоКонтрагенты #Тогда
КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты)
ТОГДА ЕСТЬNULL(Контрагенты.ГруппаДоступаКонтрагента, ЗНАЧЕНИЕ(Справочник.ГруппыДоступаКонтрагентов.ПустаяСсылка))
#КонецЕсли

#Если &ИспользоватьОграничениеПоОрганизации #Тогда
КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
ТОГДА ТекущаяТаблица.Организация
#КонецЕсли

#Если &ИспользоватьОграничениеПоПодразделения #Тогда
КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Подразделения)
ТОГДА ТекущаяТаблица.Подразделение
#КонецЕсли

КОНЕЦ
И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа
И
НастройкиПравДоступаПользователей.ОбластьДанных =
#Если &ИспользоватьОграничениеПоКонтрагенты #Тогда
ВЫБОР КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты)
ТОГДА ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.КонтрагентыДанные)
ИНАЧЕ
ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)
КОНЕЦ
#Иначе
ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)
#КонецЕсли

И НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей
ГДЕ
НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В (
ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПустаяСсылка)

#Если &ИспользоватьОграничениеПоКонтрагенты #Тогда
, ВЫБОР КОГДА ТекущаяТаблица.Контрагент ССЫЛКА Справочник.Контрагенты
ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты)
КОНЕЦ
#КонецЕсли

#Если &ИспользоватьОграничениеПоОрганизации #Тогда
, ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
#КонецЕсли

#Если &ИспользоватьОграничениеПоПодразделения #Тогда
, ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Подразделения)
#КонецЕсли

)

И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL))
#КонецЕсли


Но в 8.1 все работало на ура.
6. elijah.k 25 12.09.11 14:21 Сейчас в теме
Похожую ситуацию удалось разрешить, выполнив запрос в привилегированном режиме.
Оставьте свое сообщение

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