Почему в 1С нельзя ввести номер телефона и адрес контрагента при наличии прав?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет IT и автоматизация бизнеса
← На главную

В типовых конфигурациях 1С (таких как 1С:Управление нашей фирмой, 1С:ERP, 1С:Комплексная автоматизация и 1С:Управление торговлей) нередко возникает ситуация, когда рядовой пользователь может создавать и редактировать данные контрагента, но поля «Телефон», «Адрес» или «Email» остаются недоступными для изменения или не сохраняются. При этом под пользователем с полными правами редактирование выполняется штатно.

Проанализируем технические причины такого поведения системы, разберем особенности архитектуры контактной информации и выясним, почему попытки назначить права напрямую в Конфигураторе приводят к их постоянному сбросу.

Архитектурная причина: почему «слетают» роли, назначенные в Конфигураторе

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

Рассмотрим, как функционирует механизм синхронизации прав:

  1. В пользовательском режиме за права отвечают справочники ПрофилиГруппДоступа и ГруппыДоступа.
  2. Каждый профиль содержит строго определенный перечень ролей, заданный администратором.
  3. При входе пользователя в систему, записи элемента справочника Пользователи или выполнении регламентного задания синхронизации состава ролей, БСП сверяет текущие роли пользователя в базе с составом назначенных ему групп доступа.
  4. Все роли, которые были установлены в Конфигураторе вручную в обход профилей групп доступа, автоматически удаляются, так как они отсутствуют в зарегистрированных группах пользователя.

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

Специфика подсистемы «Контактная информация»

В современных конфигурациях поля «Телефон», «Юридический адрес», «Фактический адрес» и «Электронная почта» не являются простыми реквизитами справочника Контрагенты. Они формируются программно средствами подсистемы БСП Контактная информация.

Поля ввода генерируются на форме динамически в обработчике ПриСозданииНаСервере. Если у пользователя отсутствуют права хотя бы на один связанный объект метаданных, поля переводятся в режим «Только просмотр» либо становятся невидимыми. Разберем, доступ к каким объектам необходим для полноценной работы:

  1. Справочник «Виды контактной информации»: у роли пользователя обязательно должно быть право Чтение для этого объекта (обычно входит в базовую роль БСП или специализированную роль ЧтениеВидовКонтактнойИнформации). Без этого форма не сможет определить формат и состав отображаемых полей.
  2. Справочник «Страны мира»: требуется для валидации телефонных кодов, масок ввода и форматов международных адресов.
  3. Регистры адресных сведений: при вводе адресов задействуются данные адресного классификатора. Если чтение классификатора заблокировано на уровне ролей, редактирование адреса блокируется.
  4. Регистр сведений «Контактная информация» или табличная часть КонтактнаяИнформация справочника Контрагенты: требуются права на чтение и запись соответствующих данных.

Ограничения на уровне записей (RLS) и настройки видов контактной информации

Если необходимые роли назначены, но доступ к реквизитам все еще заблокирован, проанализируем настройки внутри режима «1С:Предприятие»:

  1. Настройки видов контактной информации: перейдем в раздел Администрирование → Общие настройки → Виды контактной информации. Откроем настройки полей для справочника Контрагенты (например, «Юридический адрес контрагента» или «Телефон»). Проверим, не установлен ли флаг запрета редактирования или признак только для чтения.
  2. Ограничение доступа на уровне записей (RLS): если в базе включено разграничение прав по менеджерам или подразделениям, пользователь может иметь право на просмотр карточки контрагента, но не иметь прав на изменение данных контрагентов других менеджеров. Если в карточке контрагента указан другой ответственный, поля будут заблокированы.

Кэширование прав и серверные сеансы

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

Для корректного применения настроек выполним следующие действия:

  1. Завершим все сеансы проблемного пользователя.
  2. При необходимости выполним очистку локального кэша 1С на рабочем месте (удаление временных каталогов в папках %LocalAppData%\1C\1Cv8 и %AppData%\1C\1Cv8).
  3. В клиент-серверном варианте базы перезапустим рабочий процесс кластера серверов 1С:Предприятия или выполним перезапуск службы сервера для сброса серверного кэша сеансов.

Пошаговый алгоритм правильной настройки прав

Разберем по шагам, как корректно предоставить права пользователю на редактирование контактной информации контрагентов:

  1. Откроем базу в режиме 1С:Предприятие под учетной записью с административными правами.
  2. Перейдем в раздел Администрирование → Настройки пользователей и прав → Профили групп доступа.
  3. Найдем профиль, назначенный пользователю (или создадим копию типового профиля), и убедимся, что в список ролей включены роли для работы с контрагентами и базовые роли подсистемы контактной информации.
  4. Если требуется создать новую роль в Конфигураторе, добавим ее в дерево метаданных, назначим права на нужные справочники и регистры, после чего обязательно включим эту роль в Профиль групп доступа в режиме «1С:Предприятие».
  5. Перейдем в карточку пользователя в справочнике Пользователи, проверим его включение в соответствующую Группу доступа и сохраним изменения.
  6. Запустим сеанс под целевым пользователем и проверим доступность полей ввода телефона и адреса в карточке контрагента.
← На главную