В современных конфигурациях 1С, таких как «1С:Комплексная автоматизация 2.4» (КА 2.4), работающих на платформе 8.3.12 и выше, пользователи часто сталкиваются с невозможностью непосредственного удаления объектов (комбинация Shift+Del). Даже при наличии «Полных прав» в конфигураторе система может выдавать ошибку или просто помечать объект на удаление вместо его физического стирания из базы. Рассмотрим подробно, почему это происходит и как решить данную проблему.
Проанализируем архитектуру прав в современных типовых решениях. В конфигурациях, построенных на базе Библиотеки стандартных подсистем (БСП), классических ролей из Конфигуратора недостаточно. Механизмы ограничения доступа вынесены на уровень данных и интерфейса.
Выясним, почему «Полные права» в конфигураторе не всегда дают право на удаление:
Интерактивное удаление в конкретном профиле.Разрешить непосредственное удаление в свойствах формы списка. Это делается для того, чтобы пользователь не мог случайно нарушить ссылочную целостность базы, удалив объект, на который ссылаются другие документы.Для решения этой проблемы на уровне прав, выполним следующие шаги:
Проверим, назначена ли пользователю роль Интерактивное удаление (или аналогичная в вашей версии БСП). Если мы создаем собственную роль, недостаточно просто поставить галочку напротив объекта. Нужно убедиться, что эта роль добавлена в соответствующий Профиль групп доступа и обновлены метаданные прав в режиме предприятия.
Обратим внимание на версию платформы. Релиз 8.3.12.1685 имеет известные проблемы с управлением памятью и выполнением фоновых заданий. Если при попытке удаления помеченных объектов вы видите сообщение «Аварийно завершился рабочий процесс фонового задания», это явный признак платформенной ошибки Access Violation.
Разберем, почему это происходит при удалении:
Процесс удаления в 1С — это не просто стирание строки из таблицы. Система запускает поиск ссылок на удаляемый объект по всей базе данных. На платформе 8.3.12 этот процесс может потреблять чрезмерное количество оперативной памяти, что приводит к аварийному завершению процесса rphost. Это особенно актуально для «тяжелых» конфигураций вроде КА 2.4 или ERP.
Рекомендации по устранению:
snccntx и conf в каталоге данных сервера.Если интерактивное удаление (через интерфейс) заблокировано или вызывает ошибки, мы можем прибегнуть к программному методу. Рассмотрим ситуацию, когда нам крайне необходимо удалить объект, игнорируя интерфейсные запреты.
Для этого можно воспользоваться внешней обработкой, в которой будет исполнен следующий код:
// Пример непосредственного удаления объекта без проверок
СсылкаНаОбъект = ПоискСсылокПоНаименованию(); // Ваша логика поиска
ОбъектУдаления = СсылкаНаОбъект.ПолучитьОбъект();
Если ОбъектУдаления <> Неопределено Тогда
Попытка
// Метод Удалить() выполняет физическое удаление из БД
ОбъектУдаления.Удалить();
Сообщить("Объект успешно удален");
Исключение
Сообщить("Ошибка при удалении: " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Важный нюанс: Метод Объект.Удалить() физически стирает запись. Если на этот объект есть ссылки в других документах, они станут «битыми» (вместо значения будет отображаться <Объект не найден>). Поэтому перед использованием этого метода в промышленной базе крайне рекомендуется выполнить поиск ссылок программно с помощью функции НайтиПомеченныеНаУдаление() или НайтиСсылки().
Подведем итог и составим пошаговый план действий, если Shift+Del не срабатывает:
Администрирование -> Обслуживание -> Удаление помеченных объектов. Попробуем запустить удаление оттуда. Если оно проходит успешно, значит, проблема только в настройке интерфейса (клавиша Shift+Del программно отключена разработчиками в коде формы).Удалить() программно, обходя ограничения прав интерфейса.Проанализировав ситуацию, можно сделать вывод: в связке КА 2.4 и платформы 8.3.12 проблема чаще всего кроется в стабильности платформы или настройках профилей групп доступа БСП. Выполнив очистку кэша и проверку прав внутри режима предприятия, вы с большой вероятностью восстановите работоспособность системы.