Имя: Пароль:
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) Типа так:


ВЫБРАТЬ
    ВЫРАЗИТЬ(Права.Документ КАК Документ.НашДокумент).Дата КАК ДатаДок
ИЗ
    РегистрСведений.ПраваДоступа КАК Права
    
ГДЕ
    Права.Документ ССЫЛКА Документ.НашДокумент
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn