Как разрешить пользователю изменять дату заказа клиента в 1С:Управление торговлей 11.4?

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

В процессе работы с конфигурацией 1С:Управление торговлей (релиз 11.4.11.100) администраторы часто сталкиваются с ситуацией, когда пользователю необходимо расширить права на редактирование конкретных полей, например, даты в документе Заказ клиента. При этом простые попытки добавить роли в Конфигураторе или изменить типовые профили могут привести к ошибкам или блокировкам системы. В этой статье мы подробно разберем, как правильно настроить права доступа, избежать блокировок и диагностировать скрытые ошибки доступа.

Где настраивать права: Конфигуратор или Предприятие?

Для начала проанализируем фундаментальный вопрос: где именно следует вносить изменения в права доступа? В современных версиях УТ 11, построенных на базе Библиотеки стандартных подсистем (БСП), управление правами практически полностью вынесено в режим 1С:Предприятие. Рассмотрим причины, почему работа в Конфигураторе в данном случае не рекомендуется:

  1. Динамическое обновление: Права в УТ 11 зависят от справочника Идентификаторы объектов метаданных. Если вы назначите роль в Конфигураторе напрямую, система при очередном обновлении параметров работы с правами может сбросить эти настройки или они просто не вступят в силу корректно.
  2. Сложность структуры: Современные конфигурации используют механизм RLS (права на уровне записей), который корректно настраивается только через Профили групп доступа.

Таким образом, для настройки возможности изменения даты заказа мы будем использовать раздел НСИ и администрирование — Настройка пользователей и прав.

Почему появляется окно «Объект заблокирован» при настройке прав?

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

  1. Попытка изменения поставляемого профиля: В системе УТ 11 существуют «желтые» (поставляемые) профили, которые созданы разработчиками 1С. Они закрыты для редактирования, чтобы при обновлении программы ваши изменения не затерлись.
  2. Активные сеансы: Если форма профиля или группы доступа уже открыта под другим пользователем (или тем же пользователем в другом окне), система заблокирует объект.

Решение: Никогда не пытайтесь менять стандартный профиль (например, «Менеджер по продажам»). Вместо этого выделите нужный профиль, нажмите кнопку Создать копию, дайте ему новое имя (например, «Менеджер по продажам (расширенный)») и уже в нем проставляйте необходимые галочки. После этого создайте Группу доступа, выберите в ней ваш новый профиль и добавьте туда нужных пользователей.

Настройка прав на изменение даты заказа

Теперь выясним, какие конкретно роли отвечают за возможность изменения даты. Если документ Заказ клиента еще не проведен, пользователю достаточно прав на «Изменение». Однако, если документ уже имеет статус Проведен, система накладывает дополнительные ограничения.

Проанализируем необходимые шаги в профиле группы доступа:

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

Диагностика ошибки «Нарушение прав доступа» при сохранении

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

  1. Перейдем в раздел НСИ и администрирование — Обслуживание — Журнал регистрации.
  2. Установим фильтр по пользователю и по событию «Отказ в доступе».
  3. Проанализируем колонку «Данные». Там будет четко указано имя объекта, на который не хватило прав. Например, это может быть РегистрНакопления.РасчетыСКлиентами или РегистрСведений.ГрафикПоступленияДенежныхСредств.

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

Влияние даты запрета редактирования

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

Перейдем в НСИ и администрирование — Обслуживание — Даты запрета изменения данных. Выясним, не установлена ли дата запрета для конкретного пользователя или общей группы. Помните, что дата запрета может быть установлена как по разделам учета, так и по конкретным организациям.

Как вывести блок «Отчеты по складу» в интерфейс

Разберем вопрос о том, какая «галочка» (роль) отвечает за видимость раздела складских отчетов. Если пользователь работает в интерфейсе «Продажи» или «Склад», ему может не хватать прав на просмотр аналитики.

Для активации этого блока в профиль группы доступа необходимо добавить одну из следующих ролей:

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

Практический пример настройки через код

Хотя мы договорились использовать режим Предприятие, иногда программисту нужно программно проверить наличие прав у пользователя. Рассмотрим пример кода, который позволяет проверить, может ли текущий пользователь изменять проведенные заказы:


Если Не ПравоДоступа("ИнтерактивноеИзменениеПроведенных", Метаданные.Документы.ЗаказКлиента) Тогда
    Сообщить("У вас недостаточно прав для изменения даты в проведенном заказе!");
    Возврат;
КонецЕсли;

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

Резюме по шагам

Подводя итог, проанализируем последовательность действий для успешного решения задачи:

  1. Создаем копию стандартного профиля в режиме Предприятие.
  2. Добавляем в копию роль Интерактивное изменение проведенных документов.
  3. Проверяем настройки Даты запрета редактирования.
  4. Если ошибка сохраняется — используем Журнал регистрации для поиска заблокированного регистра.
  5. Назначаем пользователю созданную Группу доступа.

Такой системный подход гарантирует корректную работу прав доступа без нарушения целостности конфигурации и проблем при будущих обновлениях 1С:Управление торговлей.

← На главную