Содержание:
2. Попытка выполнения запроса пользователем, у которого установлены ограничения доступа на уровне записей 1С
3. Внешние обработки и печатные формы, подключенные к конфигурации системы 1С в безопасном режиме
1. Неверно настроены права в профиле пользователя 1С
В современных конфигурациях роли, созданные в конфигураторе, агрегируются в группы доступа, в которые, в свою очередь, добавляются пользователи. Права, при добавлении в пользователя в несколько групп, объединяются. Т.е. если хотя бы в одной из групп есть право на объект метаданных, то он будет доступен пользователю несмотря на то, что в других группах может быть указан явный запрет, например, на какой-либо элемент справочника организации в 1С и он все равно будет виден. Итак, для примера мы имеем пользователя, которому видны документы условной организации, кнопки провести записать и т.п. в документе доступны, но при попытке провести появляется ошибка «Недостаточно прав для работы с таблицей» с указанием таблицы.
В первую очередь нужно найти роли, в которых разрешена запись в эту таблицу и назначена ли данная роль хоть в одной группе доступа к которой принадлежит нужный пользователь. Если нет, добавляем роль в группу или создаем новую группу и добавляем пользователя в эту группу. Проверяем, если проблема решена, то дальше не читаем.
Проверили роль есть или добавили, но ошибка все равно осталась. Дальше необходимо проверить настройки ограничений в группах. Разрешена ли запись по заданным реквизитам (Организация/Склад/Группа контрагентов/Группа номенклатуры и т.п.). У нас может быть группа в которой разрешено чтение всего и отдельно группа, разрешающая пользователю запись только по одной организации или складу. Находим группу, добавляем права на запись по необходимому реквизиту - проблема решена.
2. Попытка выполнения запроса пользователем, у которого установлены ограничения доступа на уровне записей 1С
В 99,9% такого типа ошибки возникают в доработанных конфигурациях системы 1С, в типовых такого рода ошибки исправляются в «первые дни» после выхода релиза. Считается ошибкой «новичка».
Разберем эту ошибку. Простой запрос:
"ВЫБРАТЬ
| Организации.НаименованиеПолное Как НаименованиеДляПечати
|ИЗ
| Справочник.Организации КАК Организации"
Под полноправным пользователем (а разработчики как правило «тестируют» под собой с полными правами) запрос выполнится без ошибок, а вот у пользователя с ограничением прав на уровне записей 1С появится описываемая ошибка. Главное правило (если действительно не нужно выбирать что-то запрещенное) в запросе использовать выражение «РАЗРЕШЕННЫЕ»
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Организации.НаименованиеПолное КАК НаименованиеДляПечати
|ИЗ
| Справочник.Организации КАК Организации"
Теперь рассмотрим вариант, когда действительно нужно получить данные, которые пользователю запрещены, но они нам нужны для обработки какой-либо информации.
У нас два варианта:
● Выполнить код в общем модуле с признаком Привилегированный режим в 1С
● В коде перед получением и обработкой данных установить привилегированный режим в 1С УстановитьПривилегированныйРежим(Истина).
Однако нужно учитывать, что для любых внешних обработок/отчетов которые были открыты интерактивно (через «файл» - «открыть») в клиент-серверном варианте работы данная процедура будет ПРОИГНОРИРОВАНА!! Т.е. ошибка останется. Можно использовать подключаемые отчеты и обработки с отключённым безопасным режимом, об этом ниже.
3. Внешние обработки и печатные формы, подключенные к конфигурации системы 1С в безопасном режиме
По умолчанию все внешние обработки в клиент-серверном режиме запускаются в безопасном режиме, и установка привилегированного режима в 1С и т.п. процедуры и функции либо игнорируются или выдают ошибку прав. Это сделано для обеспечения безопасности данных. Но для подключаемых обработок и отчетов в 1С можно принудительно отключить безопасный режим, делать это нужно очень сознательно. Отключение безопасного режима объявляется в параметрах регистрации обработки/отчета:
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь)
При такой возможно использование привилегированного режима 1С в обработке/отчете.
Специалист компании "Кодерлайн"
Александр Логачев