При работе в программе 1С:Управление торговлей 11 (начиная с версии 11.2 и выше) пользователи часто сталкиваются с ситуацией, когда документ ЗаказКлиента отказывается проводиться. Система выдает сообщения об ошибках, ограничивающих права доступа, хотя у пользователя вроде бы есть все необходимые основные роли. Разберем детально, почему это происходит и как правильно настроить права доступа, не нарушая логику бизнес-процессов предприятия.
Проанализируем ситуацию: под полными правами документ проводится без нареканий, а под ограниченным пользователем возникают ошибки. Это явный признак того, что срабатывают механизмы контроля условий продаж. В конфигурации УТ 11 заложен жесткий алгоритм проверки соответствия данных в заказе (цены, скидки, график оплаты) тем правилам, которые зафиксированы в справочнике СоглашенияСКлиентами.
Если в заказе менеджер установил цену ниже, чем в прайс-листе, или предоставил ручную скидку, на которую у него нет полномочий, система блокирует проведение. Основной технический код, отвечающий за эту проверку, обычно располагается в общем модуле ПродажиСервер. Рассмотрим подробнее основные пути решения этой задачи.
Это самый быстрый и прямой способ решения проблемы, когда необходимо разрешить менеджеру самостоятельно принимать решения о скидках и ценах. Выясним, как это сделать правильно через механизм профилей групп доступа.
В 1С 8.3 права крайне редко назначаются напрямую в конфигураторе. Правильным подходом считается использование Профилей групп доступа в режиме «1С:Предприятие». Пройдем по шагам:
Отклонение от условий продаж.Важный нюанс: роль Отклонение от условий продаж дает пользователю право игнорировать ограничения, установленные в соглашениях. Это касается не только цен, но и условий оплаты (например, если в соглашении указана предоплата, а менеджер выбрал кредит).
Если политика компании запрещает менеджерам самостоятельно менять цены, то выдача прав на «отклонение» будет ошибкой. В этом случае разберем альтернативный механизм — Согласование. В УТ 11 предусмотрена штатная схема работы, при которой документ проходит через проверку руководителем.
Посмотрим, как работает этот механизм:
ЗаказКлиента с отклонениями от условий и устанавливает статус На согласовании.Согласование заказов клиентов), проверяет документ.Иногда добавление роли не помогает из-за кастомных доработок или специфических настроек. Проанализируем, на что именно стоит обратить внимание в коде. В модуле ПродажиСервер за проверку прав отвечает процедура, проверяющая наличие права на чтение цен и прав на отклонение. Выглядит это примерно следующим образом (упрощенный пример логики):
// Пример логики проверки прав в модуле ПродажиСервер
Если Не ПравоДоступа("ОтклонениеОтУсловийПродаж", Метаданные.Документы.ЗаказКлиента) Тогда
Если ПараметрыДокумента.ЕстьОтклоненияОтСоглашения Тогда
ВызватьИсключение "Недостаточно прав на отклонение от условий продаж";
КонецЕсли;
КонецЕсли;
Если вы создали копию роли (например, БухгалтерРеализации путем копирования полных прав), убедитесь, что в ней не забыты права на чтение регистров сведений, связанных с ценами номенклатуры. Без доступа к регистру ЦеныНоменклатуры система не сможет сравнить цену в заказе с эталонной и может выдать ошибку прав.
Рассмотрим вопрос о том, может ли роль Отклонение от условий продаж негативно повлиять на другие участки учета, например, на ПеремещениеТоваров или РеализациюТоваровИУслуг.
Проанализируем ситуацию: документ ПеремещениеТоваров обычно не связан с коммерческими условиями (ценами продажи и соглашениями с клиентами), поэтому данная роль на него не влияет. Однако для документа РеализацияТоваровИУслуг, если он создается не на основании заказа, эта роль будет так же критична, как и для заказа. Если реализация вводится строго по согласованному заказу, то дополнительные права на отклонение в самой реализации обычно не требуются.
Иногда корень проблемы кроется не в ролях, а в функциональных опциях. Разберем, что нужно проверить в разделе НСИ и администрирование:
Разрешить продажи ниже себестоимости.Таким образом, для полноценного решения проблемы мы рекомендуем сначала проверить возможность использования штатного механизма согласования, а если он не подходит — добавить роль Отклонение от условий продаж именно через Профиль групп доступа, чтобы сохранить целостность системы прав 1С:Предприятия.