При работе в системе 1С:Документооборот 2.1 администраторы часто сталкиваются с ситуацией, когда стандартная процедура удаления помеченных объектов завершается аварийно. Вместо привычного списка связей или успешного удаления система выдает лаконичное сообщение об ошибке прав доступа, сопровождая его непонятным набором символов — GUID (уникальным идентификатором). Ситуация кажется парадоксальной: как у пользователя с ролью ПолныеПрава может не хватать прав на выполнение операции?
В этой статье мы подробно разберем причины возникновения такой ошибки, выясним, почему платформа скрывает имя объекта за идентификатором, и разработаем пошаговый план решения проблемы, опираясь на практический опыт специалистов.
Когда мы видим в тексте ошибки или в Журнале регистрации нечто вроде 779f67a2-723a-48d6-950e-5a5f1e31d4e1, это верный признак того, что платформа 1С не смогла сопоставить внутренний идентификатор метаданных с их человекочитаемым представлением. Проанализируем основные причины, почему это происходит:
ПолныеПрава в основной конфигурации не дает автоматического доступа к объектам расширения. В самом расширении должна быть либо своя роль с правами на эти объекты, либо необходимо добавить эти объекты в заимствованную роль ПолныеПрава внутри расширения.Рассмотрим ситуацию, описанную в теме: администратор пытается удалить лишних контрагентов, но процесс прерывается. Выясним причину, проверив расширения конфигурации. Если в вашей базе установлены расширения, первым делом необходимо проанализировать права доступа именно там.
Проанализируем алгоритм проверки:
ПолныеПрава (если она была заимствована) или специфические роли расширения.ПолныеПрава не установлены галочки «Чтение», «Просмотр», «Изменение» и, что критично для удаления, «Интерактивное удаление помеченных» или «Удаление», то даже администратор получит ошибку прав.Важный момент: в 1С:Документооборот права на объекты расширения должны быть явно прописаны. Если вы добавили реквизит к справочнику Контрагенты в расширении, убедитесь, что права на этот реквизит также есть у администратора в рамках расширения.
Если визуальный осмотр расширений не помог, воспользуемся инструментами разработчика. Чтобы точно понять, на каком объекте «спотыкается» система, мы можем настроить отладку фоновых заданий, так как удаление помеченных объектов в 1С 8.3 обычно выполняется в фоновом режиме.
Рассмотрим порядок действий:
Ссылка или Объект, мы сможем увидеть тип данных, вызывающий проблему.Если отладка в фоновом задании затруднена, попробуем запустить удаление через внешнюю обработку, которая работает в сеансе пользователя (интерактивно), а не в фоне. Это позволит поймать ошибку обычным прерыванием.
Проанализируем особенности конфигурации 1С:ДО. В отличие от многих других программ, здесь механизм RLS (ограничение доступа на уровне записей) работает крайне интенсивно. Даже при наличии полных прав система может проверять дескрипторы доступа.
Посмотрим на возможные скрытые связи:
В этом случае решением может быть временное отключение RLS для администратора или запуск удаления в режиме УстановитьПривилегированныйРежим(Истина) через консоль кода.
Если система упорно выдает GUID, мы можем выяснить, что это за объект, выполнив простой запрос в консоли запросов. Рассмотрим пример кода, который поможет определить тип объекта по его идентификатору:
// Пример поиска типа объекта по GUID в консоли кода
Идентификатор = "779f67a2-723a-48d6-950e-5a5f1e31d4e1"; // GUID из ошибки
Для Каждого Метаданное Из Метаданные.Справочники Цикл
Ссылка = Справочники[Метаданное.Имя].ПолучитьСсылку(Новый УникальныйИдентификатор(Идентификатор));
Попытка
Если Ссылка.ПолучитьОбъект() <> Неопределено Тогда
Сообщить("Это справочник: " + Метаданное.Имя);
Прервать;
КонецЕсли;
Исключение
// Игнорируем ошибки поиска
КонецПопытки;
КонецЦикла;
Чаще всего ошибка прав возникает не на сам удаляемый объект, а на запись в Регистре Сведений или Регистре Накопления, которая ссылается на этот объект. Проверьте права на регистры, добавленные в расширениях.
Если стандартная обработка «Удаление помеченных объектов» в интерфейсе «Документооборота» не справляется, рекомендуем использовать альтернативные методы:
Подводя итог, можно сказать: если вы столкнулись с ошибкой прав доступа под администратором при удалении в 1С:ДО 2.1, с вероятностью 90% проблема кроется в расширении. Убедитесь, что для роли ПолныеПрава внутри каждого расширения проставлены все необходимые разрешения на добавленные в этом расширении объекты. Как только права в расширении будут синхронизированы с основной конфигурацией, GUID превратится в имя объекта, а ошибка исчезнет.