|
Ограничение на 256 таблиц. | ☑ | ||
---|---|---|---|---|
0
palm1c
12.12.11
✎
13:33
|
Добрый день.
Есть база УТП. Есть пользователь с ограничением прав на уровне записей. В справочнике Контрагенты он нажимает перейти - документы по контрагенту, и вываливается ошибка о том, что построенный запрос к субд использует больше 256 таблиц. В конфигуратор не приглашает при этой ошибке. Значит, запрос строился платформой, как не? В общем, вопрос такой: Где мне нужно оптимизировать запрос, (в роли, не?) и вообще, возможно ли это. Спасибо. |
|||
1
palm1c
12.12.11
✎
13:33
|
Извините за сумбурность.
|
|||
2
kaiiii
12.12.11
✎
13:35
|
Переходи на MS SQL Server 2008. Там нет ограничения на 256 таблиц.
|
|||
3
palm1c
12.12.11
✎
13:39
|
(2) Хочу победить без перехода (пока что).
|
|||
4
palm1c
12.12.11
✎
13:42
|
(2) Я передумал. Мне нужно рассмотреть все возможные варианты, и выбрать из них подходящий.
Вопрос: 1с 7.7 работает с 2008 SQL? |
|||
5
skunk
12.12.11
✎
13:42
|
7.7 работает
|
|||
6
NcSteel
12.12.11
✎
13:43
|
Но с хитростями.
|
|||
7
skunk
12.12.11
✎
13:47
|
там все хитрости задать правильный вопрос гуглу
зы: вот только как утп из сабжа связана с клюшками |
|||
8
ice777
12.12.11
✎
13:47
|
(4) переходи с 77 на 82. Чего уж мелочиться ;)
|
|||
9
palm1c
12.12.11
✎
13:57
|
В общем, баз на сервере крутится немало, есть и 7.7, есть и 8.2.
Насчет перехода - как раз в процессе. Какое-то время крутиться будет и 7.7 и 8.2 параллельно. Каким образом ещё решается проблема (0)? |
|||
10
Живой Ископаемый
12.12.11
✎
13:59
|
для 8.2 используется одна СУБД, для 77 - другая.
|
|||
11
palm1c
12.12.11
✎
14:03
|
(10) Как вариант.
Вопрос вот в чем: решается ли вопрос не переходя на другую СУБД? |
|||
12
el-gamberro
12.12.11
✎
14:04
|
(0) Проверь выборку и соединения в запросе по составным типам.
К примеру если ты выбираешь из регНакопления Регистратор а у него реквизит дата. то это равно значное соединению с таблцимаи всех документов которыми может быть регистратор. хотя в запросе это всего лишь Регистратор.Дата |
|||
13
palm1c
12.12.11
✎
14:07
|
(12) Насколько я понимаю, нужно проверять всё это в шаблоне ограничений у роли и править шаблон.
|
|||
14
palm1c
12.12.11
✎
14:11
|
ТекущаяТаблица
ИЗ #ТекущаяТаблица КАК ТекущаяТаблица ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ СоставГруппы.Ссылка КАК ГруппаПользователей ИЗ Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы ГДЕ СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей ПО (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей) ГДЕ (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ ИЛИ (НЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 КАК ПолеОтбора ИЗ РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа ГДЕ НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей И ВЫБОР КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации) ТОГДА ВЫБОР КОГДА (НЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрСведений.ОбъектыДоступаДокументов КАК ОбъектыДоступаДокументов ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей ПО НастройкиПравДоступаПользователей.ОбъектДоступа = ОбъектыДоступаДокументов.ОбъектДоступа И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации) И (НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)) ГДЕ ОбъектыДоступаДокументов.ДокументСсылка = ТекущаяТаблица.Ссылка И ОбъектыДоступаДокументов.ОбъектДоступа ССЫЛКА Справочник.Организации И НастройкиПравДоступаПользователей.ОбластьДанных ЕСТЬ NULL )) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты) ТОГДА ВЫБОР КОГДА (НЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрСведений.ОбъектыДоступаДокументов КАК ОбъектыДоступаДокументов ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты ПО Контрагенты.Ссылка = ОбъектыДоступаДокументов.ОбъектДоступа ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей ПО НастройкиПравДоступаПользователей.ОбъектДоступа = Контрагенты.ГруппаДоступаККонтрагенту И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты) И (НастройкиПравДоступаПользователей.Пользователь = НазначениеВидовОбъектовДоступа.ГруппаПользователей ИЛИ НастройкиПравДоступаПользователей.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)) ГДЕ ОбъектыДоступаДокументов.ДокументСсылка = ТекущаяТаблица.Ссылка И НастройкиПравДоступаПользователей.ОбластьДанных ЕСТЬ NULL )) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ ИНАЧЕ ИСТИНА КОНЕЦ = ЛОЖЬ)) И НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL) |
|||
15
palm1c
12.12.11
✎
14:13
|
Вот один из шаблонов.
|
|||
16
palm1c
12.12.11
✎
14:15
|
(12) Запроса этого? Наверное нет.
Как я понял, платформа берет критерий отбора, генерит запрос, берет этот шаблон, соединяет их вместе и делает запрос к СУБД. Поправьте меня, если я ошибаюсь. Спасибо. |
|||
17
palm1c
12.12.11
✎
14:16
|
То есть ошибка вылазит, когда уже открыта форма критерия отбора.
|
|||
18
palm1c
12.12.11
✎
14:29
|
Вверх
|
|||
19
Axel2009
12.12.11
✎
14:35
|
без перехода не победишь.
|
|||
20
el-gamberro
12.12.11
✎
14:42
|
НастройкиПравДоступаПользователей.ОбъектДоступа - вот тут скорее и есть эти 256 таблиц
ВЫБРАТЬ РАЗЛИЧНЫЕ ТИПЗНАЧЕНИЯ(НастройкиПравДоступаПользователей.ОбъектДоступа) ИЗ НастройкиПравДоступаПользователей что показывает? |
|||
21
palm1c
12.12.11
✎
15:36
|
(20) Нет. Организации, ГруппыДоступаККонтрагентам
|
|||
22
palm1c
12.12.11
✎
15:38
|
(19) Инфа 100%?
|
|||
23
Vladal
12.12.11
✎
15:42
|
RLS имеет свой запрос по объектам, который описан в роли.
Запрос из модуля объединяется с запросом роли и получается суммарно больше 256 таблиц. Попробуйте изменить уровень доступа пользователя. Если проблема только у него, а он имеет ограничение по RLS, то при отключении ограничений RLS проблема должна исчезнуть. |
|||
24
palm1c
12.12.11
✎
16:31
|
(23) Так и есть, только это ограничение должно быть.
Всем спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |