Почему в модуле «Диадок» для 1С не отображается пункт меню «Доверенности»?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием
← На главную

Сталкивались ли вы с ситуацией, когда у одного сотрудника в настройках модуля «Диадок» есть пункт для работы с доверенностями, а у другого он отсутствует, хотя в веб-кабинете все настроено корректно? Это не ошибка, а логичное поведение системы, которое зависит от типа используемого сертификата электронной подписи. Давайте подробно разберемся, почему так происходит и как это работает «под капотом» в коде 1С.

Основной вопрос заключается в следующем: у пользователя в веб-версии «Диадока» настроен и сертификат, и машиночитаемая доверенность (МЧД), но в обработке для 1С соответствующий пункт меню для управления доверенностями не виден. Проанализируем причину и найдем решение.

Причина: Тип сертификата и логика работы с МЧД

Ключевая причина отсутствия пункта «Доверенности» — тип сертификата электронной подписи (КЭП), с которым пользователь авторизуется в модуле. Система 1С автоматически определяет, требуется ли для работы с этим сертификатом машиночитаемая доверенность, и в зависимости от этого показывает или скрывает нужный элемент интерфейса.

Рассмотрим основные типы сертификатов и их влияние на отображение настроек:

  1. Сертификат физического лица. С 1 сентября 2023 года это основной тип сертификата для сотрудников. Он выпускается на конкретного человека. Чтобы подписывать документы от имени компании, сотрудник с таким сертификатом обязан использовать машиночитаемую доверенность (МЧД). Именно при входе с таким сертификатом модуль «Диадок» понимает, что нужна МЧД, и отображает пункт меню «Доверенности».
  2. Сертификат юридического лица старого образца. До завершения переходного периода сотрудники могли использовать сертификаты, выпущенные на организацию, но содержащие также данные сотрудника. Такой сертификат сам по себе подтверждал полномочия, и МЧД для него не требовалась. Если пользователь по ошибке авторизуется с таким (уже неактуальным) сертификатом, система не увидит необходимости в МЧД и скроет меню доверенностей.
  3. Сертификат руководителя организации. Директор или генеральный директор действует от имени компании без доверенности. Его сертификат, выданный ФНС, не требует прикрепления МЧД. Соответственно, при входе под таким сертификатом пункт «Доверенности» также будет скрыт.

Таким образом, проблема, описанная в исходной ситуации, решилась, когда пользователь вошел в систему под правильным, актуальным сертификатом физического лица, а не под старым сертификатом сотрудника юрлица. Система корректно определила необходимость МЧД и показала соответствующий пункт меню.

Технический анализ: как это реализовано в коде 1С

Чтобы полностью понять механику процесса, давайте заглянем в код обработки «Диадок». Видимость кнопки для перехода к настройкам доверенностей управляется специальной процедурой.

Вот процедура, которая отвечает за отображение элемента:


Процедура НастроитьВидимостьКнопкиНастроекДоверенности()

    Элементы.ОткрытьСписокДоверенностей.Видимость = ЕстьЯщикДляДействийСДокументамиВКоторомНужнаМЧД();

КонецПроцедуры

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

Код функции:


//&НаКлиенте
Функция ЕстьЯщикДляДействийСДокументамиВКоторомНужнаМЧД()

    Результат = Ложь;

    СтрокиКонтекста = Модуль_Ядро().КонтекстСеанса_СтрокиКонтекста();
    Для Каждого СтрокаКонтекста Из СтрокиКонтекста Цикл
        КонтекстЯщика = СтрокаКонтекста.Значение;
        Если КонтекстЯщика.ТребуетсяМЧД Тогда
            Результат = Истина;
            Прервать;
        КонецЕсли;
    КонецЦикла;

    Возврат Результат;
КонецФункции

Разберем логику этой функции по шагам:

  1. Инициализация. Вначале переменная Результат устанавливается в значение Ложь. Если проверка не найдет ни одного ящика, для которого нужна МЧД, функция вернет именно это значение.
  2. Получение контекста. Строка Модуль_Ядро().КонтекстСеанса_СтрокиКонтекста() получает информацию о текущем сеансе работы пользователя в «Диадоке», включая данные о его ящиках (организациях).
  3. Перебор ящиков. Далее код в цикле Для Каждого перебирает все доступные пользователю ящики.
  4. Ключевая проверка. Внутри цикла происходит самое главное: система обращается к свойству КонтекстЯщика.ТребуетсяМЧД. Этот флаг устанавливается самим модулем «Диадок» в момент авторизации пользователя на основе анализа его сертификата.
    • Если сертификат на физ. лицо — флаг будет Истина.
    • Если сертификат на руководителя или старого образца на сотрудника юр. лица — флаг будет Ложь.
  5. Завершение. Как только система находит хотя бы один ящик, для которого флаг ТребуетсяМЧД установлен в Истина, она присваивает переменной Результат значение Истина и немедленно выходит из цикла с помощью команды Прервать. Этой информации достаточно, чтобы показать кнопку.

Вывод из анализа кода: видимость пункта «Доверенности» — это не просто настройка, а результат логической проверки, заложенной разработчиками. Она напрямую связана с тем, какой сертификат был использован для входа, и соответствует текущим требованиям законодательства по работе с электронными подписями.

Решение и пошаговые действия

Если вы или ваш пользователь столкнулись с проблемой отсутствия пункта «Доверенности», выполните следующие шаги для диагностики и решения:

  1. Проверьте используемый сертификат. Это самый важный шаг. Попросите пользователя при входе в модуль «Диадок» в 1С внимательно выбрать сертификат. Убедитесь, что он использует свой личный сертификат физического лица, а не какой-либо другой (старый, или сертификат руководителя).
  2. Проверьте настройки в веб-интерфейсе «Диадока». Убедитесь, что для данного сотрудника (и его сертификата) в веб-кабинете добавлена и активирована машиночитаемая доверенность от организации.
  3. Выполните переавторизацию в 1С. Если пользователь зашел не с тем сертификатом, нужно полностью выйти из его учетной записи в модуле «Диадок» (обычно это можно сделать через настройки) и войти заново, выбрав на этот раз правильный сертификат.
  4. Проверьте права доступа. В редких случаях проблема может быть связана с недостаточными правами пользователя в самой системе 1С, но, как правило, причина именно в сертификате.

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

← На главную