Имя: Пароль:
1C
 
Долгое выполнение запроса из за шаблона ораничений в роли
,
0 raytan
 
18.05.17
11:51
Столкнулся с такой ситуацией:
1С 8.2, переделанная УПП.
В документе ЗАказПокупателя выставляются счета учета по умолчанию с помощью процедуры "СчетаУчетаВДокументах.ЗаполнитьСчетаУчетаТабличнойЧасти(ИмяТабЧасти, ТабличнаяЧасть, ЭтотОбъект, ЗаполнятьБУ, ЗаполнятьНУ)". В дальнейшем в общем модуле вызывается процедурка ОбщегоНазначения.ПолучитьСписокВышестоящихГрупп(Номенклатура). В этой процедуре есть запрос:
    Запрос.Текст = "
    |ВЫБРАТЬ
    |    Справочник1.Родитель КАК Родитель1,
    |    Справочник2.Родитель КАК Родитель2,
    |    Справочник3.Родитель КАК Родитель3,
    |    Справочник4.Родитель КАК Родитель4,
    |    Справочник5.Родитель КАК Родитель5
    |ИЗ
    |    Справочник." + ИмяСправочника + " КАК Справочник1
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник." + ИмяСправочника + " КАК Справочник2
    |        ПО (Справочник2.Ссылка = Справочник1.Родитель)
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник." + ИмяСправочника + " КАК Справочник3
    |        ПО (Справочник3.Ссылка = Справочник2.Родитель)
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник." + ИмяСправочника + " КАК Справочник4
    |        ПО (Справочник4.Ссылка = Справочник3.Родитель)
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник." + ИмяСправочника + " КАК Справочник5
    |        ПО (Справочник5.Ссылка = Справочник4.Родитель)
    |ГДЕ
    |    Справочник1.Ссылка = &Ссылка";

Все отрабатывает здорово, НО при условии, что у роли нет ограничений по ВидамНоменклатуры. Как только добавляю ограничение запрос выполяется 2 минуты.
Ситуация вызывает удивление, так как подобным механизмом пользуемся во многих других документах и там таких проблем не возникает.
1 Ц_У
 
18.05.17
11:59
выбрать разрешенные попробуй
2 igork1966
 
18.05.17
12:01
(0) Неужели это типовой код? Чего-то я сомневаюсь что 1С-цы догадались так написать запрос.
3 raytan
 
18.05.17
12:20
(2) типовой
4 raytan
 
18.05.17
12:21
(1) хорошая мысль, попробую