Как исправить ошибки прав доступа у кассира при записи номера чека и печати бланков возврата в УТ 11.4?

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

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

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

Проблема №1: Ошибка записи номера чека в информационную базу

Рассмотрим ситуацию: касса работает через драйвер в терминальном режиме. При попытке пробития чека под учетной записью кассира система выдает критическую ошибку в модуле расширения (например, ТитанАСервер): «Ошибка при вызове метода контекста (Записать): Нарушение прав доступа!». При этом под пользователем с полными правами всё работает корректно.

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

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

  1. Выясним, в какой объект идет запись. В УТ 11 за хранение информации о пробитых чеках отвечает регистр сведений РегистрСведений.ФискальныеОперации.
  2. Проверим текущие права кассира. Обычно стандартная роль дает право только на чтение этого регистра.
  3. Добавим в профиль доступа роль «Добавление и изменение фискальных операций». Именно эта роль позволяет методу Записать() успешно отработать на стороне сервера.

Важное замечание для разработчиков: если вы используете собственное расширение для работы с ККТ (как в примере с модулем ТитанАСервер), рекомендуется оборачивать код записи в привилегированный режим. Это позволит избежать избыточного назначения прав обычным пользователям. Рассмотрим пример кода:


// Пример безопасной записи фискальных данных в расширении
УстановитьПривилегированныйРежим(Истина);
МенеджерЗаписи = РегистрыСведений.ФискальныеОперации.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Период = ТекущаяДата();
// Заполнение остальных измерений и ресурсов
МенеджерЗаписи.Записать();
УстановитьПривилегированныйРежим(Ложь);

Проблема №2: Недостаточно прав для работы с таблицей «ФИОФизическихЛиц»

Разберем вторую проблему: кассиру необходимо распечатать «Заявление на возврат товара» или «Акт о возврате денежных средств», но система блокирует действие с ошибкой доступа к таблице РегистрСведений.ФИОФизическихЛиц.

Выясним, почему это происходит. При формировании печатной формы система обращается к справочнику ФизическиеЛица, чтобы получить ФИО ответственного лица (кассира) или покупателя. В конфигурациях на базе БСП (Библиотеки Стандартных Подсистем) ФИО хранится в отдельном регистре сведений с историей изменений. Если у кассира ограничены права на работу с персональными данными, печать бланка становится невозможной.

Для исправления ситуации выполним настройку прав:

  1. Откроем профиль групп доступа, назначенный кассиру.
  2. Найдем и добавим роль «Чтение данных физических лиц». Это обеспечит доступ к истории ФИО без возможности изменения самих данных.
  3. В некоторых случаях может потребоваться роль «Просмотр данных физических лиц», если механизмы печати используют стандартные отчеты или формы выбора.
  4. Дополнительно убедимся, что включена роль «Работа с физическими лицами», которая является базовой для доступа к объектам данного типа.

Особенности работы в терминальном режиме (RDP)

Проанализируем специфику терминального доступа. Когда используется стороннее расширение (например, для проброса COM-портов или использования TCP-сокетов ККТ), 1С часто взаимодействует с внешними компонентами и временными файлами.

Посмотрим, какие дополнительные настройки могут потребоваться:

Итоговый список ролей для добавления

Подведем итог. Чтобы кассир в 1С:УТ 11.4 мог беспрепятственно пробивать чеки и печатать сопутствующие документы по возвратам, в его профиль (Группы доступа — Профили) необходимо добавить следующие роли:

  1. Добавление и изменение фискальных операций — для фиксации номера чека и фискального признака в базе.
  2. Чтение данных физических лиц — для корректного отображения ФИО в печатных формах заявлений и актов.
  3. Использование торгового оборудования — для обеспечения связи с драйвером ККТ.
  4. Чтение ответов на запросы ИС МП — если вы работаете с маркированным товаром, так как кассиру нужны права на получение статусов кодов маркировки.

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

← На главную