В процессе работы с подсистемой электронного документооборота (ЭДО) в конфигурации 1С:Бухгалтерия 3.0 КОРП пользователи часто сталкиваются с двумя критическими проблемами: несанкционированным доступом к сертификатам, назначенным на список пользователей, и невозможностью принудительно закрыть электронный документ, если в информационной базе ведется учет по нескольким организациям.
Давайте разберем, почему возникают эти сложности и как правильно настроить систему для корректной работы.
Разработчики 1С внедрили механизм, позволяющий назначать один сертификат не конкретному пользователю, а списку сотрудников. На практике это привело к «глюку»: сертификат, который должен быть ограничен списком, становится доступен любому пользователю, имеющему права на работу с ЭДО.
Причина проблемы: Механизм профилей безопасности и проверки прав доступа в текущем релизе может некорректно фильтровать доступ к хранилищу сертификатов. Если система не выполняет строгую проверку текущего пользователя при вызове функции подписания, право на использование ключа расширяется на всех, кто имеет доступ к регистру настроек ЭДО.
Как с этим работать:
Ролей и Профилей доступа. Даже если сертификат назначен группе, при отсутствии ограничений на уровне записей (RLS) для объекта НастройкиЭДО, доступ может распространяться шире.1С работа с криптографией переведена в фоновый режим. Если вы сталкиваетесь с тем, что документ подписывается «молча» без участия пользователя, это свидетельствует об автоматизации процесса выбора сертификата по заданным правилам, которые в данный момент настроены неявно (по принципу «один на всех»).Второй, более сложный аспект, касается работы с регистром СостоянияПоОбъектамУчетаЭДО. При попытке принудительно закрыть документ в версии 3.0.105.40 пользователи без Полных прав получают отказ, даже если у них есть соответствующие права на организацию.
Разберем детально, где кроется программная ошибка и как ее проанализировать:
Анализ ситуации:
Проблема заключается в роли ДобавлениеИзменениеЭлектронныхДокументов. При попытке изменения записей в регистре СостоянияПоОбъектамУчетаЭДО разработчики добавили проверку прав на Организацию. Однако, при выполнении процедуры принудительного закрытия документа, поле Организация в регистре может оставаться пустым. Система, встретив «пустую ссылку», корректно не обрабатывает исключение, что приводит к блокировке операции для всех пользователей, не обладающих административными правами.
Как устранить:
Поскольку проблема носит характер ошибки конфигурации, рекомендуется выполнить следующие шаги:
ЭлектроннымДокументам). Проанализируйте значение параметра Организация при вызове метода записи в регистр.
// Пример логики, которую необходимо отследить в отладчике
// при возникновении ошибки доступа:
Функция ПроверитьПравоНаОрганизацию(Организация)
Если ЗначениеЗаполнено(Организация) Тогда
// Проверка прав по RLS для конкретной организации
Возврат ПравоДоступа("Изменение", Метаданные.РегистрыСведений.СостоянияПоОбъектамУчетаЭДО, , Организация);
Иначе
// Ошибка: логика не учитывает, что Организация может быть не заполнена
Возврат Истина;
КонецЕсли;
КонецФункции
Для предотвращения подобных «граблей» при работе с ЭДО в 1С:Бухгалтерии КОРП, придерживайтесь следующих правил:
МЧД позволяет точнее делегировать права. Вместо того чтобы «раздавать» сертификат всем, настройте МЧД для каждого сотрудника, который имеет право подписи. Это снимает необходимость в общем доступе к одному сертификату.Групп доступа с ограничением по Организациям. Если ошибка прав возникает при выполнении регламентных задач или автоматических обработок, выносите эти операции в отдельного технического пользователя с необходимым минимумом прав.RLS в ЭДО, оперативно исправляются фирмой 1С в патчах. Если вы столкнулись с подобным поведением, первым делом проверьте наличие новых Исправлений (патчей) в разделе «Обслуживание» программы, даже если релиз формально не менялся.Работа с ЭДО требует внимательности к настройкам безопасности. Если вы обнаружили, что система позволяет подписывать документы пользователям, не имеющим на это прав из-за «размытых» настроек сертификата, немедленно пересмотрите политику Профилей безопасности и ограничьте список пользователей на уровне Криптографии.