После обновления конфигурации 1С:Управление торговлей (редакция 11.5) многие администраторы и разработчики сталкиваются с лавинообразным появлением ошибок в Журнале регистрации. Текст ошибки обычно сообщает о невозможности получения характеристик для различных типов (например, Бизнес-регион, Внешний пользователь, Номенклатура) или о сбое в ограничении доступа к данным для объекта ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения. Ситуация осложняется тем, что ошибки часто сопровождаются пометкой «Задание отменено пользователем», хотя сам пользователь ничего не отменял.
В этой статье мы подробно разберем причины такого поведения системы, проанализируем взаимосвязь механизмов RLS и фоновых заданий, а также выработаем пошаговый алгоритм решения проблемы.
Разберем ситуацию: в современных версиях УТ 11.5 поиск в динамических списках (таких как список номенклатуры или контрагентов) стал «умным» и многопоточным. Когда пользователь вводит запрос в строку поиска, система запускает фоновое задание для фильтрации данных. Это сделано для того, чтобы интерфейс не «зависал» во время сложных запросов. Если в процессе этого фонового выполнения механизм Ограничения доступа на уровне записей (RLS) натыкается на нехватку прав или некорректный шаблон ограничения, фоновое задание аварийно завершается. Интерфейс интерпретирует это как «отмену задания», и в Журнал регистрации записывается целая серия связанных ошибок.
Основные факторы, провоцирующие проблему:
Внешние пользователи у вас отключены, этот тип данных присутствует в метаданных плана видов характеристик, и система пытается проверить права на него при построении дерева характеристик.Проанализируем наши роли. Если вы используете расширения с собственными ролями, созданными еще в версии 11.4, это первая точка отказа. В версии 11.5 существенно изменился синтаксис функций БСП, используемых в текстах ограничений Чтение.
Рассмотрим, как правильно обновить шаблоны:
ЧтениеКонтрагентов).Важный нюанс: Часто ошибка возникает на объекте Справочник.Контрагенты или Справочник.Партнеры. Убедитесь, что в ваших ролях текст ограничения для права Чтение соответствует актуальному типовому коду. Старые конструкции типа #ПоЗначениям(...) могут работать некорректно, если состав параметров шаблона в конфигурации-поставщике изменился.
Как показывает практика, явное добавление прав на чтение метаданных часто решает проблему «загадочных» ошибок при поиске. Нам необходимо убедиться, что у пользователя есть право на чтение объекта ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения. Для такой проверки подойдёт обработка для анализа прав доступа на объект базы данных в режиме 1С:Предприятия.
Посмотрим на ситуацию глубже: даже если у пользователя есть роль Добавление и изменение дополнительных реквизитов и сведений, она может содержать внутренние ограничения RLS, которые конфликтуют с фоновым поиском. Рекомендуем выполнить следующие действия:
_ИсправлениеПравПоиска).ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения БЕЗ каких-либо условий RLS (пустое поле в ограничениях).НаборыДополнительныхРеквизитовИСведений.Если шаблоны верны, а права даны, но ошибки продолжаются, значит, проблема в «зависших» данных в таблицах ключей доступа. Проанализируем состояние системы через типовые инструменты обслуживания.
Выполним принудительное обновление доступа:
Ограничивать доступ на уровне записей, дождаться завершения регламентных заданий и включить её снова. Это спровоцирует полную очистку и перезаполнение вспомогательных таблиц.Иногда настройки динамического списка «запоминают» некорректное состояние колонок или параметров поиска, что приводит к ошибке именно у конкретного пользователя. Разберем, как это исправить.
Воспользуемся следующим алгоритмом:
Справочник.Номенклатура.Форма.ФормаВыбора или Список.Если ваша база работает в файловом режиме, стоит учитывать, что фоновые задания в ней выполняются последовательно и часто блокируют друг друга. Рассмотрим специфические рекомендации:
Для гарантированного обновления прав доступа в файловой базе рекомендуется запустить сеанс с параметром /AllowExecuteScheduledJobs -Force. Это заставит систему выполнить все регламентные задания, включая Заполнение данных для ограничения доступа, в приоритетном режиме. Убедитесь, что в этот момент в базе нет других пользователей, чтобы исключить блокировки таблиц СведенияОПользователях и КлючиДоступа.
Резюмируем: решение проблемы с «сыплющимися» ошибками RLS в УТ 11.5 требует комплексного подхода. Сначала мы обновляем шаблоны в кастомных ролях, затем обеспечиваем беспрепятственный доступ к ПВХ дополнительных реквизитов, и в завершение инициируем полную перерегистрацию данных доступа в интерфейсе управления программой.