1. user1194102 13.02.20 09:38 Сейчас в теме

Как найти причину недостатки прав у пользователя для изменения данных?

При тестировании с полными права не было проблем, все записывалось как нужно. У пользователя вышла ошибка "У пользователя недостаточно прав на исполнение операции над базой данных". Объект - Обработка в корне конфигурации. На форме это табличное поле в колонке дерева значений. У пользователя для этой обработки следующие права - Все права, Использование, Просмотр. Перед изменением поля в текущей строке, присутствует код.
ЭлементыФормы.Дерево1.ТолькоПросмотр  = Ложь;


и код изменения поля

ЭлементыФормы.Дерево1.ТекущаяСтрока.ДатаИa=ТекущаяСтрока.ЗаказНаПроизводство.ДатаИa;
вот для этого действия у пользователя не хватает прав.

Что нужно/можно посмотреть в программе, что бы понять в чем ошибка?
Найденные решения
16. starjevschik 13.02.20 12:14 Сейчас в теме
У пользователя недостаточно прав на исполнение операции над базой данных
- это ошибка доступа RLS к какому-то объекту, который нужен в этом отчете.
user1194102; +1 Ответить
Остальные ответы
Избранное Подписка Сортировка: Древо
2. RustamZz 13.02.20 09:39 Сейчас в теме
В ЖР будет подробно написано на какие объекты и каких прав не хватает.
6. user834357 28 13.02.20 10:16 Сейчас в теме
(2)А если журнал регистрации не ведётся?)
7. RustamZz 13.02.20 10:16 Сейчас в теме
(6) включить на пару минут и потом выключить.
8. user1194102 13.02.20 10:43 Сейчас в теме
(2)
В ЖР будет подробно написано на какие объекты и каких прав не хватает
ЖР есть, но ошибки там нет. Ошибка оказалось выходит не у всех пользователей.
10. RustamZz 13.02.20 10:45 Сейчас в теме
(8) Ну понятно надо смотреть ЖР только по тем у кого выходит.
3. user633533_encantado 6 13.02.20 09:41 Сейчас в теме
Скорее всего прав нет на какой-то объект в дереве. Например на заказ производства.
user834357; +1 Ответить
11. user1194102 13.02.20 10:49 Сейчас в теме
(3)
Скорее всего прав нет на какой-то объект в дереве. Например на заказ производства
после того как выяснилось, что ошибка не у всех, стало легче. При подробном тестировании выяснилось (лопух, нет слов, и опыта практического в отладке мало). Ошибка выходит не в каждой записи, а в той где у документа по ссылке нет ДатыИа. (у этого документа вообще нет никаких реквизитов - он в свою очередь берется из регистра). Что проверять дальше? Права на регистр, откуда приходит документ по ссылке? Или сделать запись в дерево через попытку и посмотреть на чем выходит ошибка.
12. RustamZz 13.02.20 11:12 Сейчас в теме
(11) Если у ЗаказаНаПроизводство нет поля ДатаИа, зачем написано в коде:
ЭлементыФормы.Дерево1.ТекущаяСтрока.ДатаИa=ТекущаяСтрока.ЗаказНаПроизводство.ДатаИa;

?
15. user1194102 13.02.20 12:11 Сейчас в теме
(12)
Если у ЗаказаНаПроизводство нет поля ДатаИа
Почему нет поля??? Конечно оно есть, я имел в виду что данных в этом поле нет никаких, даже просто точек по формату соответствующих шаблону /формату значения дата. Я бы сказал даже девственно чистое значение данных в поле, если так можно выразиться (0 бит).
18. RustamZz 13.02.20 13:00 Сейчас в теме
(15) И почему оно не тип дата? и зачем оно вообще если там не планируется хранить информацию? и самый главный вопрос зачем присваивать полю ДЗ значение из реквизита, которого там быть не может?
19. user1194102 13.02.20 13:48 Сейчас в теме
(18)
И почему оно не тип дата?
Оно как раз тип Дата, а вот значение из регистра пустое, которое должно записаться в поле дерева. Раскручивать полностью зачем и почему думаю не имеет смысла, так как уйдет много времени, это все доработки делали франчази много лет назад, и разбираться что и как не уверен что нужно. Пользователи самые лучшие тестировщики (если таков нет физически), а разработчику не протестить все полностью. И за примерами далеко не нужно ходить, когда приходит обновление из 1С не всегда все работает правильно, а уж там работают не простые программисты, а золотые. Если не ошибаюсь, то физтех занимается разработкой 1С.Поэтому пока остановился на таком решении.
21. RustamZz 13.02.20 14:43 Сейчас в теме
(19) Ну это просто сильный аргумент писать говнокод - у 1С еще хуже. Если каждый на своем месте будет писать код правильно, то мир станет лучше.
user1194102; +1 Ответить
22. user1194102 13.02.20 16:20 Сейчас в теме
(21) я с вами полностью согласен, но все должно быть в жизни сбалансировано, можно вылизывать код два года в одной процедуре, все будет чисто и по всем правилам, но это будет не оправдано по времени выполнения. Поэтому какое бы ни было решение оно всегда и не полностью правильное и не полностью не правильное, так есть другие влияющие факторы, которые в теме форума не показать, да это и не нужно. В идеале вы правы, по сути нет.
4. dame 13.02.20 09:53 Сейчас в теме
Создать новую роль( например ДобавлениеИзменениеОбработка ) для данной обработки. Дать права пользователю на новую роль.
5. Дон Кихот 1 13.02.20 10:07 Сейчас в теме
У объекта в конфигураторе есть вкладка права, там написано какие роли и какие права у роли на данный объект
9. user1194102 13.02.20 10:44 Сейчас в теме
(5)
У объекта в конфигураторе есть вкладка права, там написано какие роли и какие права у роли на данный объект
С ролями все нормально, про роли написал сразу в теме , нужные права есть.
13. user1194102 13.02.20 11:14 Сейчас в теме
Дальнейшее тестирование показало, что у источника данных периодически появляется дата со следующей ошибкой чтения
Ошибка при получения атрибута контекста(ДатаИа)
, а по сути поле чистое, дет ни даты, ни нулевой даты, нет ничего.
Тогда возникает вопрос, каким образом сделать проверку на пустую дату и эти строки вообще не заменять (пропустить)?

такая проверка не работает
Если ТекущаяСтрока.ЗаказНаПроизводство.Ссылка.ДатаИа>Дата('00010101') Тогда
выходит таже самая ошибка
20. RustamZz 13.02.20 14:40 Сейчас в теме
(13) Там не пустая дата, а NULL с ним операции сравнения не проводятся. Надо проверять на ЗначениеЗаполнено(ТекущаяСтрока.ЗаказНаПроизводство)
14. user1194102 13.02.20 12:07 Сейчас в теме
Оказалось что можно записывать и через попытку, в обработке есть подобный код, пока оставим так, осталось разобраться с правами на регистры, из которых формируется дерево.
16. starjevschik 13.02.20 12:14 Сейчас в теме
У пользователя недостаточно прав на исполнение операции над базой данных
- это ошибка доступа RLS к какому-то объекту, который нужен в этом отчете.
user1194102; +1 Ответить
17. user1194102 13.02.20 12:27 Сейчас в теме
(16) Спасибо, проверю, на попытке работает, но проверю RLS ради интереса сути проблемы, тему можно закрыть.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата до 150 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Бизнес-аналитик 1С
Москва
зарплата от 150 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата до 130 000 руб.
Полный день