Вообщем такая ситуация. Имеем 1С:Комплексная автоматизация 2 (2.4.7.151) (типовая) Centos 7 и PostgreSQL 9.6 платформа 8.3.13.1644
PostgreSQL и 1с сервер на разных виртуальных машинах. RLS НЕ ВЛКЮЧЕН!!
1) Обновил Комплексная автоматизация 2 до последнего релиза вроде все взлетело и новую платформу поставил 8.3.15.1830
2) Но после этого было у пользователей не с полными правами начались проблемы, а именно открывать списки документов как "Внутреннее товары движения", Документы закупок и Документы Продаж
3) После этого вернули копию базу до обновлений и копию вирутальной машины, но проблемы остались
4) После этого включили отладку на сервере и выяснили что глючит запрос в модуле УправлениеДоступомСлужебный.ЕстьОграничениеТаблицыПоВидуДоступа
Сам запрос:
"ВЫБРАТЬ
| ГруппыДоступа.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ГруппыДоступаПользователя
|ИЗ
| Справочник.ИдентификаторыОбъектовМетаданных КАК СвойстваТекущейТаблицы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа КАК ГруппыДоступа
| ПО (СвойстваТекущейТаблицы.ПолноеИмя = &ИмяОсновнойТаблицыСписка)
| И (ИСТИНА В
| (ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА
| ИЗ
| РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступа
| ГДЕ
| ТаблицыГруппДоступа.Таблица = СвойстваТекущейТаблицы.Ссылка
| И ТаблицыГруппДоступа.ГруппаДоступа = ГруппыДоступа.Ссылка))
| И (ГруппыДоступа.Ссылка В
| (ВЫБРАТЬ
| ГруппыДоступаПользователи.Ссылка КАК ГруппаДоступа
| ИЗ
| Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ПО
| СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь
| И СоставыГруппПользователей.ГруппаПользователей = ГруппыДоступаПользователи.Пользователь))
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗначенияПоУмолчанию.ГруппаДоступа КАК ГруппаДоступа,
| ЗначенияПоУмолчанию.ТипЗначенийДоступа КАК ВидДоступа
|ИЗ
| РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ГруппыДоступаПользователя КАК ГруппыДоступаПользователя
| ПО ЗначенияПоУмолчанию.ГруппаДоступа = ГруппыДоступаПользователя.Ссылка
|ГДЕ
| НЕ ЗначенияПоУмолчанию.ВсеРазрешеныБезИсключений
| И ИСТИНА В
| (ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА
| ИЗ
| Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ПО
| ГруппыДоступаПользователи.Ссылка = ЗначенияПоУмолчанию.ГруппаДоступа
| И ГруппыДоступаПользователи.Пользователь = СоставыГруппПользователей.ГруппаПользователей
| И СоставыГруппПользователей.Пользователь = &АвторизованныйПользователь)"
Показать
5) После понял что надо обновить профили группы доступа и группы доступа, а так же обновить справочники Идентификаторы Объектов Метаданных, Идентификаторы Объектов Расширений и регистры сведений "ТаблицыГруппДоступа, ЗначенияГруппДоступа и ЗначенияГруппДоступаПоУмолчанию"
6) После это был разбора запроса детально и выяснил, что уходит в астрал запрос в данном куске кода
| И (ИСТИНА В
| (ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА
| ИЗ
| РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступа
| ГДЕ
| ТаблицыГруппДоступа.Таблица = СвойстваТекущейТаблицы.Ссылка
| И ТаблицыГруппДоступа.ГруппаДоступа = ГруппыДоступа.Ссылка))
Показать
7) После пробывал обновить конфигурацию поставщика, думал что побился элемент справочника Идентификаторы Объектов Метаданных "РегистрСведений.РеестрДокументов"
8) Создавать новых пользователей и группы доступа тоже новые, не помогло
9) Удаляли и очищали таблицу РегистрСведений.ТаблицыГруппДоступа с помощью скуля
Доброго времени суток. Вообщем удалось решить проблему средствами СУБД. Операция называется "Вакум" на Postgres. (https://postgrespro.ru/docs/postgrespro/9.5/sql-vacuum) Так как у меня не было доступа к серверу, где СУБД то запустить эту процедуру не могу. То только в выходные администраторы запустили эту процедуру и вуаля все заработала. Так же прикладываю скрины ошибок. вдруг кому пригодиться.
Моделирование ошибки такая:
1) Пользователь с урезанными права нажимает на "Внутренние документы"
2) Идём в средства администрирование и видим как колонка "захват СУБД" растет до 1000 значений и 1с виснет.
Повышена скорость выполнения запросов, в которых используется соединение таблиц
и
Не должно наблюдаться существенной разницы в производительности между работой системы с включенными ограничениями доступа к данным и с выключенными ограничениями доступа к данным.
И вы много написали про то что делали, и что rls не включен. Однако не привели снимка экрана и точного подробного текста ошибки, только лишь пространное
"Но после этого было у пользователей не с полными правами начались проблемы, а именно открывать списки документов как "Внутреннее товары движения", Документы закупок и Документы Продаж "
Доброго времени суток. Вообщем удалось решить проблему средствами СУБД. Операция называется "Вакум" на Postgres. (https://postgrespro.ru/docs/postgrespro/9.5/sql-vacuum) Так как у меня не было доступа к серверу, где СУБД то запустить эту процедуру не могу. То только в выходные администраторы запустили эту процедуру и вуаля все заработала. Так же прикладываю скрины ошибок. вдруг кому пригодиться.
Моделирование ошибки такая:
1) Пользователь с урезанными права нажимает на "Внутренние документы"
2) Идём в средства администрирование и видим как колонка "захват СУБД" растет до 1000 значений и 1с виснет.