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