Имя: Пароль:
1C
1С v8
Построенный запрос к СУБД использует слишком много таблиц
0 lamme
 
07.11.16
17:43
Построенный запрос к СУБД использует слишком много таблиц. Допустимо не более 256.
Microsoft OLE DB Provider for SQL Server: Слишком много имен таблиц в запросе. Максимально допустимое значение - 256.
HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=1, Severity=F, native=102, line=773
1 lamme
 
07.11.16
17:44
пардон ... не заполнил все входящие услвоия.
1С8
отчет.
один юзер может его делать
у другого - выходит вот это вот сообщение.
кеш чистил - не помогает.
от учетной записи на сервере (работа через терминал) - не зависит.

в чем трабл ?
2 azernot
 
07.11.16
17:47
RLS
у второго пользователя ограничены права. И ограничены как-то криво, что в итоге количество таблиц в запросе больше 256
3 Господин ПЖ
 
07.11.16
17:53
переползайте на sql сервер повыше. или rls убирайте + "составные" поля
4 shuhard_серый
 
07.11.16
18:32
(3) + 1
лет 7 как MS SQL не страдает этой болезнью
5 Живой Ископаемый
 
07.11.16
19:08
2(0) помочь с чем?
6 lamme
 
07.11.16
23:13
2
RLC да. но как понять - криво ограничены
и на какую таблицу
там запрос трехэтажный .. много документов выбирается по регистру
все просматривать что ль права?
7 lamme
 
07.11.16
23:19
обращение к регистру
у него измерение Док = ДокументСсылка
в этом может быть косяк?

работало всегда
пока не добавил поле - <Регистр>.Док.Дата
8 skeptik_m
 
07.11.16
23:26
Скорее всего на пользователя навешано очень много ролей сразу (с разными RLS, которые в итоге складываются). Вы можете попробовать:
1) Уменьшить число ролей навешанных на пользователя.
2) Упростить запрос
3) Перейти на SQL 2008/2012/2014 - там такой проблемы вообще нет (SQL 2005 с сервис паками, кажется, тоже хватит, но точно не уверен).
4) А еще можно при построении отчета выполнить запрос в привелегированном режиме (при этом RLS использоваться не будут).

> пока не добавил поле <Регистр>.Док.Дата
И поле Док у Вас, естественно, составного типа :-)
При использовании такой конструкции происходит соединение со всеми таблицами документов ссылки на которые могут быть в этом поле. А к ним еще (неявно для написавшего запрос) соединяются таблицы используемые в RLS.
9 lamme
 
07.11.16
23:27
попробуем привелигированный режим
10 dmpl
 
07.11.16
23:57
(7) Именно в этом проблема: пока не обращаешься через точку - Док просто ссылка. Как только ставишь точку - идет неявное соединение со всеми таблицами документов. Используй ВЫРАЗИТЬ совместно с КОГДА Док ССЫЛКА, чтобы соединение шло только с 1 таблицей.
11 dmpl
 
08.11.16
00:02
(8) Переход на новый SQL - это сокрытие проблемы. Проблему надо решать. Либо ограничивая число типов в регистре, либо через ВЫРАЗИТЬ, либо добавив эту дату в регистр чтобы не ползать за ней в документы (что в первом приближении примерно то же самое что строить отчет по документам). А то потом будут жалобы "а чего этот RLS тормозит?".
12 lamme
 
08.11.16
00:13
(8)
взлетел привелигированный режим
спасибо
13 lamme
 
08.11.16
00:14
(10)
а это как?
выразить дату документа ... туплю
14 ИсчадиеADO
 
08.11.16
03:31
разбить на несколько вт как вариант
15 ИсчадиеADO
 
08.11.16
03:32
(12) добавиться у тебя еще неск видов доков к типу все ссылки документов, и отключение рлс не поможет
16 ИсчадиеADO
 
08.11.16
03:35
(1) "отчет.
один юзер может его делать "

как-то выполнять запрос для отчета в привилегированном - чета не то, мне кажется
17 dmpl
 
08.11.16
11:50
(13) Типа так:


ВЫБРАТЬ
    ВЫРАЗИТЬ(Права.Документ КАК Документ.НашДокумент).Дата КАК ДатаДок
ИЗ
    РегистрСведений.ПраваДоступа КАК Права
    
ГДЕ
    Права.Документ ССЫЛКА Документ.НашДокумент