#0
by The gray Cardinal
8.2.11.229, УТ 10.3.8.9. Документ "РКО" там настроен так, что не удаляет свои движения автоматически. Есть проблема у определённой роли: успешно проводим документ, но тут же не можем его сделать непроведённым ("У пользователя недостаточно прав на исполнение операции над базой данных."). Всё упирается в заданные ограничения RLS для двух регистров накопления (на чтение), если эти ограничения убрать, всё становится хорошо (это специально проверено). В общем, не знаю, как быть. Ограничения RLS для регистров реально нужны, т.к. влияют на отчёты. Мне непонятна логика поведения программы: провести документ даёт, а тут же отменить это проведение — не даёт. Причём происходит это ТОЛЬКО от RLS на регистры, что специально проверено.
#1
by hhhh
ну поставьте правильные флажки там на Отмену проведения. Что вы нам мозг парите? Проведение - это одно, отмена проведения - это другое.
#2
by Злопчинский
а как вы себе представляете например: провели РКО, чек по кассе пробился допустим вдобавок.. а вы тут распроводить... правильно что не дает. с какого будуна вдруг распроводить?
#3
by The gray Cardinal
Извините, не догоняю, где "там" правильные флажки на Отмену проведения, конкретно? Право "Отмена проведения" для документа РКО у этой роли есть.
#5
by The gray Cardinal
Проблема не в отмене проведения как таковой, а в программном удалении движений регистров. Исключение RLS возникает в процедуре ОбщегоНазначения.УдалитьДвиженияРегистратора.
#15
by The gray Cardinal
Я не понимаю логики. УстановитьПривилегированныйРежим якобы отменяет проверки прав, и что? Если у роли есть право на отмену проведения документа, и получается провести конкретный документ, почему не получается тут же распровести/перепровести его (конкретно — просто программно удалить движения регистра)?
#16
by hhhh
ну вы же только что приставали, что не те права на регистры, а теперь вдруг перекинулись на документ.
#17
by The gray Cardinal
Да не приставал я, что "не те права на регистры", я вообще не понимаю, что Вы имеете в виду. Для регистров стоят ограничения RLS (на чтение). Эти ограничения нужны для отчётов и правильно работают в случае проведения документа — всё проводится. Право на отмену проведения документа тоже есть. Не ясно, почему не удаётся удалить движения документа при отмене проведения, см. . Удаляемые значения измерений регистров вполне соответствуют ограничениям RLS — это те значения, с которыми пользователь только что провёл документ. Если эти ограничения RLS на регистры убрать, документ успешно распроводится — это специально проверено.
#18
by GedKo
перед удалением движений - эти движения читаются (и стоят ограничения) при нехватке прав и возникает исключение. поэтому отключи проверку прав при отмене проведения. и все.
#19
by The gray Cardinal
Вопрос в том, как добиться распроведения документа, не убирая RLS на регистры. Я не понимаю, с какой радости возникает такое исключение. Скажем, при формировании отчёта "Движения документа по регистрам" никаких исключений не возникает, всё читается и отображается. Распроводить я пытаюсь этот же документ.
#22
by The gray Cardinal
Зачем это нужно, я не понимаю логики. Пользователь не может удалить движения, которые он только что записал и которые полностью соответствуют его RLS и успешно читаются в его отчётах. Отчёт стандартный, "Ведомость по денежным средствам". Эта монстрятина ссылается на "УниверсальныйОтчет". Ограничения RLS при его использовании работают как надо, это тоже специально проверялось.
#23
by The gray Cardinal
А куда конкретно можно запихать вызов "УстановитьПривилегированныйРежим", если уж идти таким путём?
#24
by НетуаНадо
что то у тебя не так корее всего где то в ролях есть роль проведение нету роли отменить проведение
#27
by The gray Cardinal
Это процедура "ОбработкаУдаленияПроведения", там такой вызов не отрабатывает.
#28
by Defender aka LINN
"Пользователь не может удалить движения, которые он только что записал и которые полностью соответствуют его RLS" - Я тебе такую вещь скажу про чудеса - их НЕ БЫВАЕТ. Живи с этим. И если у пользователя нет прав хоть на одну запись из набора - ты хоть мамой нам клянись на форуме и приноси 1С жертвы в тысячи быков - кина не будет. "Это процедура "ОбработкаУдаленияПроведения", там такой вызов не отрабатывает." - 1С тебя явно ненавидит. Не связывайся с ней, иди в дворники.
#29
by The gray Cardinal
Как у пользователя может не быть прав хоть на одну запись из набора, если он только что провёл этот документ? Выпендриваешься много, лучше бы дельное что-нибудь посоветовал. Я в курсе, что чудес не бывает. А это значит только то, что я не вижу чего-то простого. Вот и прошу мне помочь. Кстати, "УстановитьПривилегированныйРежим" не используется в УТ (поиск по всем текстам не даёт ни одного вхождения). Это значит, что она нужна в ОЧЕНЬ экзотических случаях. Так что не надо делать вид, что её использование очевидно — это не так.
#30
by The gray Cardinal
Давайте по-простому: право на отмену проведения документа есть, документ успешно проводится. Распровести/перепровести документ не удаётся. Исключение вылезает в момент программного удаления движений. Прошу перечислить все места по порядку, куда надо посмотреть, чтобы обнаружить проблему. Я не великий программист, так что мог пропустить очевидное...
#31
by hhhh
что-то ты гонишь. Вот я открыл УТ. Общий модуль ПолныеПрава, щелкаю свойства и вижу: стоит галка "Привилегированный".
#32
by hhhh
просто поставь везде точки останова, во всех этих процедурках и в подписках ПередЗаписью и ПРиЗаписи и в процедурах регистров ПередЗаписью и ПриЗаписи и пройдись отладчиком. Это у тебя займет максимум 20 минут. А ты уже целый день сидишь, ждешь у моря погоды.
#33
by Dzenn
Обрати внимание на следующую особенность при работе с привилегированным режимом - движения/удаления по регистрам надо записывать явно, в пределах действия привилегированного режима. Если ты этого не сделаешь, то платформа попробует сделать это за тебя - и получишь ошибку при проведении.
#34
by The gray Cardinal
Я говорю о вызовах УстановитьПривилегированныйРежим. Уже давно, и ещё до создания темы. В всё сказано. Пожалуйста, для тупых (я тупой): куда вписать вызов УстановитьПривилегированныйРежим(Истина), конкретно? Так, чтобы это выполнилось на сервере (иначе не отработает). Если нужны директивы, прошу написать кусок кода вместе с директивами. ОбработкаУдаленияПроведения в модуле документа содержит единственный вызов ОбщегоНазначения.УдалитьДвиженияРегистратора, где позже и отваливается. Отваливается в конструкции Попытка/Исключение при вызове метода Записать для набора записей регистра. Т.е. попадает в ветвь "Исключение", где радостно и сообщается о неудаче.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- где в ЗуПе АДВ 6-3 ?
- 1C Розница возврат покупателя.
- Тормозит регистр сведений.
- СКД цвета ячеек по интервалам
- Расчет зарплаты по табелю, а не графику
- Модифицированность формы
- Справочник: Скрыть строки в форме списка
- СКД. Расшифровка в отчете по регистратору.
- Exchange 2010, не доходит почта с адресов mail.ru
- ИМЕЮЩИЕ (having) в запросе 1с
- КАК не выводить предупреждение при записи элемента
- Коллизии обмена и метод ИзменениеЗарегистрировано
- Бухгалтерия КОРП постоянные временные разницы
- КЛАДР не грузится в комплексную
- Программа "БухСофт: Зарплата, Табель, Кадры", что за "зверь"?
- Как можно отменить проведение документа если документ изменился, но не провелся
- СКД: Вывод группировок свернутыми
- Сканер штрих кода Symbol Ls2208 USB
- При тестировании базы пишет "Проверка операций. Операция документа... Изменено время"
- Отчет о розничных продажах