Запретить изменение документов с установленными признаками БУ или НУ #752026


#0 by AliceLight
Добрый день! Конфа УПП 1.3.66.2, платформа 8.2.19.83. Проблема такая: для всех документов, у которых есть реквизиты "Отражать в бух. учете" и "Отражать в нал. учете", нужно запретить изменение документа, если эти галки установлены (вернее, хотя бы 1 установлена). Думала сделать так: подписка на событие "ПередЗаписью", в ней через Источник и Источник.Ссылка проверяем, изменена ли какая-нибудь из галок, если изменена - шлем на фиг, ничего не записываем. Естественно, перед этим проверю, есть ли в документе вообще такой реквизит. Но такое вариант не сработает, ведь пользователь может убрать галку, натворить дел, а затем поставить галку обратно. Никак не соображу, как исключить такой вариант. Насколько поняла, роль "ОтражениеВРегламентированномУчете" мне мало поможет. Или это неверно? Кто может предложить какие-то иные способы?
#1 by EugeniaK
А зачем проверять, изменена ли галка?
#2 by EugeniaK
Если она вообще была установлена т.е. ссылка.ОтражатьБУ = Истина, то просто не записываем документ.
#3 by AliceLight
ничего себе я глобальненько стормозила
#4 by Azverin
а проводить документы по БУ как тогда?)
#5 by Azverin
для запрета изменения документов используйте стандартный механизм. с допилом)
#6 by Azverin
у меня такой вопрос решён разграничением прав на отражение в БУ (роль "ОтражениеВРегламентированномУчете"): одни пользователи работают только с УУ, а кто-то с УУ и БУ. После проведения по БУ, пользователь с УУ идёт к пользователю с БУ за изменением.
#7 by AliceLight
Хм. EugeniaK, такой вариант тоже не пойдет, т.к. нужно оставить возможность проводить документ. Как в подписке поймать, что документ был в целом изменен? Модифицированность с "Источник" не работает. Еще деталь, о которой не сказала: все вышеуказанное запрещать нужно только тем, у кого нет полных прав либо специально для этой цели добавленной роли. Кроме этого, устанавливать галки тоже нужно запретить.
#8 by AliceLight
Azverin, вы не могли бы рассказать поподробнее? То есть просто не давать роль  "ОтражениеВРегламентированномУчете" кому не надо?
#9 by Cube
Глянь тут:
#10 by Serg_1960
Разберись внимательно как работает механизм типовой конфигурации по дате запрета редактирования (НастройкаПравДоступа.ОпределитьДоступностьВозможностьИзмененияДокументаПоДатеЗапрета) - в него легко внести нужные Вам изменения (в функцию ПолучитьПараметрыПроверкиДокумента).
#11 by AliceLight
по ссылке совсем не тот случай, т.к. в моей задаче пользователь должен иметь возможность провести такие документы. Пользователю без нужной роли нельзя снимать галки БУ, НУ; ставить галки БУ, НУ; и изменять документ, если они установлены. Проводить,ничего не меняя - можно. спасибо, сейчас попробую.
#12 by Cube
Чего не тот-то? Условия свои вставляй и вперде... Не забудь, что есть не только Источник, но и Источник.Ссылка...
#13 by Serg_1960
"Пользователю без нужной роли нельзя снимать галки БУ, НУ; ставить галки БУ, НУ" - это типовой механизм конфигурации. В формах документа есть вызов РаботаСДиалогами.УправлениеПризнакомОтраженияВРеглУчете - управление доступностью (изменение) к признакам проведения по БУ и НУ.
#14 by AliceLight
вот мой код после подсказки EugeniaK:         Если (Источник.Ссылка.ОтражатьВБухгалтерскомУчете = Истина ИЛИ Источник.Ссылка.ОтражатьВНалоговомУчете = Истина) Тогда             сообщить("У документа " + Источник.Ссылка+ " установлены признак БУ или НУ: у вас недостаточно прав для изменения!"); Итак, что получаем: зашел пользователь без указанных ролей в документ с галками и решил его перепровести: попал в первое условие, получил ругательство и не смог провести документ (при проведении ж подписка "ПередЗаписью") должна сработать. Или: зашел пользователь в документ без галок, установил галки, изменил что-то попытался записать, попал во 2е условие, получил ругательства. А затем поставил галки обратно в измененном документе и записал. То есть дел натворил. А задача в том, чтобы если галки стоят - перепроводил он сколько душе угодно, но ничего в самом документе не менял. Если не стоят - и не ставил.
#15 by AliceLight
в параметрах есть УправлениеПризнакомОтраженияВРеглУчете есть "Форма", ее не получится использовать в подписке. если б 1-2 документа было, это просто, а мне нужно для всех... Другого выхода, кроме подписки, не вижу, т.к. даже примерно представить у скольких документов в УПП есть эти гребаные признаки, страшно.
#16 by Azverin
куда уж подробнее? что не понятно?
#17 by Azverin
да, роль "ОтражениеВРегламентированномУчете" + допю. право отсутствует у некоторых пользователей.
#18 by Cube
"но ничего в самом документе не менял" Ну и где у тебя проверка, что он ничего не поменял? Платформа телепатировать не умеет...
#19 by Mirnin
ПриОткрытии, ТолькоЧтение = Истина. Для галок, табличных частей и остального что нельзя менять.
#20 by Cube
+ Попробуй через ВерсияДанных сделать такую проверку. На сколько помню, она для этого и придумана была...
#21 by AliceLight
так и нет у меня такой проверки, я знаю. В я и спрашивала: "Как в подписке поймать, что документ был в целом изменен? Модифицированность с "Источник" не работает.". За подсказку с ВерсияДанных спасибо, ей еще не приходилось пользоваться, попробую. и с ролью "ОтражениеВРегламентированномУчете" сейчас попробую поиграться, спасибо
#22 by AliceLight
нет, версия данных меняется при каждом сохранении объекта. После сохранения мне пользователя только поругать остается, данные-то он уже покоцает.
#23 by Cube
То есть, ты хочешь сказать, что если открыть документ, то у него Объект.ВерсияДанных не совпадет с Ссылка.ВерсияДанных?
#24 by Azverin
не придумывайте самокатов - есть штатный функционал для этого.
#25 by John83
все не читал, но чем плохо ОтражениеВРегламентированномУчете? если права нет, то при любом раскладе пользователь идет лесом
#26 by AliceLight
Всем спасибо, разобралась со штатным функционалом ("ОтражениеВРегламентированномУчете" и доп.право "Разрешать отражать в регл.учете") велосипеды и самокаты убрала)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С