Почему модуль Диадок в 1С:Бухгалтерия 3.0 требует права администратора и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При внедрении электронного документооборота через модуль Диадок в типовых конфигурациях 1С, таких как Бухгалтерия предприятия 3.0, специалисты часто сталкиваются с неприятной ситуацией. Внешняя обработка, скачанная с официального сайта, прекрасно работает под учетной записью с полными правами, но при попытке запуска обычным бухгалтером выдает ошибку "Недостаточно прав" и немедленно закрывается. Попытки отладки могут указывать на выполнение кода в модуле объекта, например, на строке:


Если Выборка.Следующий() Тогда
    // Код обработки данных
КонецЕсли;

Давайте разберем по шагам, почему это происходит, проанализируем технические причины блокировки (поможет инструмент детального анализа прав и RLS) и рассмотрим способы решения, которые позволят пользователям работать с ЭДО без предоставления им избыточных прав администратора.

Причина №1: Ограничения механизма «Файл — Открыть»

Рассмотрим ситуацию с точки зрения безопасности платформы 1С. Когда пользователь пытается запустить внешнюю обработку через стандартное меню «Файл — Открыть», система запускает ее в так называемом Безопасном режиме. В этом режиме накладываются жесткие ограничения на следующие операции:

  1. Доступ к файловой системе сервера и клиента.
  2. Работа с внешними компонентами (COM-объекты, библиотеки криптографии).
  3. Выполнение привилегированного кода.
  4. Доступ к ХранилищеОбщихНастроек.

Модуль Диадок активно использует внешние компоненты для работы с криптографией и API сервиса, а также сохраняет настройки авторизации в общее хранилище. Именно попытка обращения к этим ресурсам из-под обычного пользователя в безопасном режиме вызывает отказ в доступе.

Решение №1: Регистрация в справочнике «Дополнительные отчеты и обработки»

Это самый правильный и эффективный способ решения проблемы. Выясним, как корректно подключить модуль, чтобы снять ограничения безопасности. Разберем алгоритм действий:

  1. Зайдем в информационную базу под правами администратора.
  2. Перейдем в раздел Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки.
  3. Нажмем кнопку «Добавить из файла» и выберем файл модуля Diadoc1C_UF_... .epf.
  4. В открывшейся карточке настройки крайне важно обратить внимание на поле «Режим управления» или наличие галочки «Безопасный режим».
  5. Необходимо отключить безопасный режим (снять галочку или установить режим «Небезопасный»). Только в этом случае модуль получит необходимые разрешения для работы с криптопровайдером.
  6. Настроим список пользователей или разделов командного интерфейса, где будет доступна эта обработка.

После такой регистрации пользователь сможет запускать модуль через раздел «Сервис» или «Дополнительные обработки» без ошибки прав доступа.

Причина №2: Недостаток специфических ролей 1С

Проанализируем ситуацию, когда даже после регистрации в дополнительных обработках ошибка сохраняется. Это может означать, что у профиля пользователя отсутствуют права на объекты, которые использует модуль «внутри» конфигурации. Для работы с ЭДО пользователю должны быть назначены определенные роли. Для их анализа и корректировки можно использовать обработку для просмотра и изменения ролей пользователей и профилей групп доступа.

Решение №2: Настройка профиля групп доступа

Необязательно давать права «Администратор». Рассмотрим минимально необходимый набор ролей (удобно через автоматический подбор ролей и формирование профилей), которые нужно добавить в профиль пользователя:

  1. Использование дополнительных отчетов и обработок — позволяет в принципе видеть и запускать внешние модули.
  2. Чтение данных электронных подписей и Добавление и изменение данных электронных подписей — критически важные роли для работы с сертификатами.
  3. Отправка и получение электронных документов — стандартная роль БСП для работы с ЭДО.
  4. Чтение и просмотр хранилища настроек — для сохранения личных фильтров и логинов пользователя в ХранилищеОбщихНастроек.

Если в базе включено ограничение на уровне записей (RLS), убедитесь, что у пользователя есть доступ хотя бы к одной организации, по которой ведется обмен в Диадоке. Модуль при инициализации может делать выборку организаций:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |    Организации.Ссылка КАК Организация
    |ИЗ
    |    Справочник.Организации КАК Организации";
Выборка = Запрос.Выполнить().Выбрать();

Если у пользователя нет прав на чтение справочника Организации или RLS настроен слишком жестко, Выборка.Следующий() может приводить к ошибкам доступа в контексте внешней обработки. Для этой задачи есть администрирование прав и подбор ролей к объектам.

Решение №3: Использование расширения Диадок

Разработчики Контура часто выпускают вместе с обработкой специальное расширение конфигурации. Рассмотрим преимущества его использования:

Для установки перейдем в Администрирование — Печатные формы, отчеты и обработки — Расширения и добавим файл расширения, предварительно сняв галочку «Безопасный режим» для этого расширения.

Технические нюансы на уровне операционной системы

Иногда «Недостаточно прав» — это сообщение не от 1С, а от операционной системы Windows, которое платформа транслирует пользователю. Выясним технические причины:

  1. Доступ к папке %TEMP%: При запуске модуля 1С распаковывает во временную папку пользователя дополнительные библиотеки (DLL). Если у пользователя Windows ограничены права на запись в свою временную папку, модуль не сможет инициализироваться.
  2. Криптопровайдер (КриптоПро CSP): Если используется усиленная квалифицированная электронная подпись, модуль обращается к веткам реестра и библиотекам криптопровайдера. Убедитесь, что под ограниченным пользователем Windows эти библиотеки доступны для чтения.

Подведем итог: залог успешного запуска модуля Диадок без прав администратора — это его регистрация как дополнительной обработки с отключенным безопасным режимом и наличие у пользователя прав на использование электронной подписи. Это позволяет соблюсти баланс между безопасностью системы и работоспособностью сервиса ЭДО.

← На главную