Как обойти дату запрета изменения данных для определенного документа?

8. akink 1 31.05.16 15:41 Сейчас в теме
При запуске сеанса устанавливается "Параметры сеанса" - "ГраницаЗапретаИзмененияДанных"

Вариант №1
Дать "полные права" + Применять дату запрета для пользователей с «Полными правами» (Ложь)

Вариант №2
Создать Роль "РедактированиеВЗакрытомПериоде" + забурится в процедуру где устанавливается ""ГраницаЗапретаИзмененияДанных"
и исключить по этой роли

Вариант №3
При открытии Нужного документа
очистить значение "Параметры сеанса" - "ГраницаЗапретаИзмененияДанных"
///что то делаем с документом
восстанавливаем "Параметры сеанса" - "ГраницаЗапретаИзмененияДанных"
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
10. sidelev08 23.01.17 10:41 Сейчас в теме
(8)Если идти по 3 варианту, то как очистить значение ПараметрыСеанса.ГраницыЗапретаИзменения данных. ?
9. tailer2 07.06.16 15:11 Сейчас в теме
загрузка = ИСТИНА может спасти отца демократии
user1088651; Mizhgan42; ivangrant; 1c_ssnik; BrainWashed; ipoloskov; milov.aleksey; +7 Ответить
11. ture 606 23.01.17 10:57 Сейчас в теме
(-1) у меня есть консолька, которая прямо на sql шлет измененные данные http://infostart.ru/public/118593/
и обычные процедуры и события не реагируют на это.
12. Asintelekt 26.08.09 17:58 Сейчас в теме
Платформа – 1С:Предприятие 8.1 (8.1.14.72)
Конфигурация - Зарплата и Управление Персоналом, редакция 2.5 (2.5.14.3)

В конфигурации сделаны следующие настройки:
1) Установлена даты запрета изменения данных (Сервис – Пользователи и права доступа – Установка даты запрета изменения данных).
2) Дата запрета применяется для всех пользователей (Предприятие – Настройка параметров учета – Применять дату запрета для пользователей с «Полными правами» (Истина)).
Есть пара документов, которые надо редактировать до даты запрета, как решить данную задачу?

Заранее спасибо!
13. Душелов 4017 26.08.09 18:12 Сейчас в теме
В модуле проверки на редактирование добавить нужное условие.
ipoloskov; +1 Ответить
14. Asintelekt 26.08.09 18:33 Сейчас в теме
(2) Пробывал, но не успешно
15. Душелов 4017 26.08.09 18:34 Сейчас в теме
Значит не так пробовали.
16. Asintelekt 26.08.09 18:40 Сейчас в теме
(4)
Я целый день пытался сделать и каждый раз думал, что все прозрачно:)
Но где-то все время вылазили косяки.
Два пункта точно правильно сделал:
1) Закоментил в этих доках в Событии "приОткрытии" проверку даты редактирования.
2) Снял источник в подписях на события для документов

Но так же есть подписи на регистры, с которыми мучаюсь целый день:(
17. anig99 2843 26.08.09 18:45 Сейчас в теме
18. Re:аниматор 338 04.09.09 12:44 Сейчас в теме
(5) как все сложно. а зачем раздать права "Полные права" всем? полные только узкому кругу

достаточно, использовать полные права и выключить флаг "Применять дату запрета для пользователей с «Полными правами»" и не надо извращений 1 и 2
19. milov.aleksey 398 16.10.18 16:29 Сейчас в теме
До проведения отключить контроль:
УстановитьПривилегированныйРежим(Истина);
ОбменДаннымиСервер.ПропуститьПроверкуЗапретаИзменения(Истина);
УстановитьПривилегированныйРежим(Ложь);

После проведения включить контроль:

УстановитьПривилегированныйРежим(Истина);
ОбменДаннымиСервер.ПропуститьПроверкуЗапретаИзменения(Ложь);
УстановитьПривилегированныйРежим(Ложь);
mihapat; Dabro; JohnyDeath; avp72; oir; akimov-aa; moff; mcgoblin; rainbowdemon2; manuzin; Stein1C; EvJ; +12 Ответить
22. Азверин 3 22.05.20 10:43 Сейчас в теме
(19)
УстановитьПривилегированныйРежим

не забываем, что УстановитьПривилегированныйРежим работает не всегда (читаем СП). Полные права не у всех есть.

Я вышел из ситуации так:
...
ГраницыЗапрета = ПараметрыСеанса.ГраницыЗапретаИзмененияДанных;
ОбщийМодульДоработкиПривилегированный.СнятьГраницыЗапретаИзмененияДанных(Истина,ГраницыЗапрета);
ОбъектДокумента.Записать(РежимЗаписиДокумента.Запись);
ОбщийМодульДоработкиПривилегированный.СнятьГраницыЗапретаИзмененияДанных(Ложь,ГраницыЗапрета);
...

Процедура СнятьГраницыЗапретаИзмененияДанных(Снять,ГраницыЗапрета) Экспорт
	
	Если Снять Тогда
		ПараметрыСеанса.ГраницыЗапретаИзмененияДанных = Новый ХранилищеЗначения(Новый Соответствие);
	Иначе
		ПараметрыСеанса.ГраницыЗапретаИзмененияДанных = ГраницыЗапрета;
	КонецЕсли;
	
КонецПроцедуры
Показать
20. ToJIuK 06.02.20 13:20 Сейчас в теме
В КА 2.4 Перед записью документа установил свойство
Объект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);

и все . но чтобы найти это решение ушло 3 дня)
a.russkikh; EvgeniyOlxovskiy; Gendelf; ApTeM_26_; Alexs_2012; Anchoret; svilsa; marku; SotNick; SIrina9; Nastya1111111; Maruska77; mihapat; Alexandr_U; KOTzilla; kovgard; ChekarV; myoker; segatron; +19 Ответить
23. redtram 29 01.10.20 02:44 Сейчас в теме
(20)
ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);

Для бухгалтерии 3.0 не работает. Лень открывать конф и смотреть название допсвойста :) пошел снес дату запрета.
user1835472; +1 Ответить
24. nikeefn 23.12.20 15:43 Сейчас в теме
(23) У меня работает так:
до на сервере функция
УстановитьПривилегированныйРежим(Истина);
ДатыЗапретаИзменения.ОтключитьПроверкуДатЗапрета(Истина);
УстановитьПривилегированныйРежим(Ложь);

Делаем что нужно
запускаем функцию на сервере
УстановитьПривилегированныйРежим(Истина);
ДатыЗапретаИзменения.ОтключитьПроверкуДатЗапрета(ДатыЗапретаИзменения.ПроверкаДатЗапретаОтключена());
УстановитьПривилегированныйРежим(Ложь);
Gendelf; Dmitri93; JohnyDeath; v.e.oksana; svilsa; RizhkovSergio; dmitriy.volt; Asenka; Award; +9 Ответить
31. ssn5810 79 04.10.23 08:31 Сейчас в теме
Не получилось, в сеансе открылись все документы закрытого периода.

ПОЛУЧИЛОСЬ ;
УстановитьПривилегированныйРежим(Истина);
ДатыЗапретаИзменения.ОтключитьПроверкуДатЗапрета(Истина);

Делаем что нужно =============

ДатыЗапретаИзменения.ОтключитьПроверкуДатЗапрета(Ложь);
УстановитьПривилегированныйРежим(Ложь);
EvgeniyOlxovskiy; +1 Ответить
27. KOTzilla 16 13.08.21 07:08 Сейчас в теме
(20)
УТ 8.3 ОФ
Спасибо за подсказку, реализовал след образом:

Есть самописный документ, что-то типа возврата, создается на основании реализации, при его проведении меняется реализация в согласованной глубине Дат. Перед его проведением установил
Объект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);


Перед проверкой на проведение документа реализации запускается процедура ПроверкаПериодаДокумента, в общем модуле (скорее всего типовая).
В ней заполняется структура ПараметрыПроверкиДокумента, добавил туда новый параметр ПропуститьПроверкуЗапретаИзменения

Затем происходит контроль процедурой ПроверитьВерсиюДокумента , при не прохождении контроля возвращается Отказ, собственно в этой процедуре добавил нужное мне условие
Если ПараметрыПроверкиДокумента.ПропуститьПроверкуЗапретаИзменения = Истина Тогда
	Если ДокументОбъект.Дата <  ГлубинаПериода Тогда
		Отказ = Истина;	
	КонецЕсли;
КонецЕсли;
30. mark_oilbass 06.02.23 10:53 Сейчас в теме
(20)на документ срабатывает, но в момент проведения ругается на наборы записей.
21. segatron 30.04.20 11:15 Сейчас в теме
ToJIuK, спасибо за подсказанное направление.

В УТ11 сделал поиск в модулях по слову "ПропуститьПроверкуЗапретаИзменения".
Поиск позволил найти например в ОсновнаяКонфигураця.Документ.ПланПродаж.Форма.ФормаДокумента.Форма.Модуль (319, 50)

Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	Планирование.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
	
	Если Объект.ЗаполнятьПоФормуле Тогда
		ЗаписатьДополнительныеПараметры(ТекущийОбъект);
	КонецЕсли;
	
	Если ПропуститьПроверкуЗапретаИзменения Тогда
		ТекущийОбъект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения");
	КонецЕсли;
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);

КонецПроцедуры
Показать



У себя в ЗаявкаКлиента в модуле формы сделал по аналогии

Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	ТекущийОбъект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения");
	
	// Обработчик механизма "Свойства"
	УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);

	МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
	
КонецПроцедуры
Показать


и выставил ДатуЗапретаРедактирования по вчерашний день.


Теперь мои менеджеры могут спокойно корректировать ЗаказКлиента (поставить в Резерв, КОтгрузке) и не могут редактировать отгрузки.
25. Nihonjin 22.04.21 17:50 Сейчас в теме
Требуется 2 изменения для документа:
1. В МодулеФормы вставляем в доп. свойства свойство "ПропуститьПроверкуЗапретаИзменения" в значении Истина в ТекущийОбъект. Выглядит это так:
Пример1


При открытии формы он должен проверить даты запрета изменения. Благодаря коду он пропускает проверку, не блокируя кнопки "Провести и закрыть", "Записать" и "Провести".

///////////////////////////

2. В Модуле Объекта вставляем доп. свойства то же самое, только без указания "ТекущийОбъект" Выглядит так:
Пример2

На истину не претендую, но работает в УХ, изменений минимум. Обновление проходит динамически.
AlexBorkh; katrineKA; Ганс; +3 Ответить
26. softmaker 39 30.04.21 13:22 Сейчас в теме
У меня сработало так в БИТ. Автотранспорт 3.0.80.36/3.0.4.55:

УстановитьПривилегированныйРежим(Истина);   
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда
	МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный");
	МодульДатыЗапретаИзмененияСлужебный.ПропуститьПроверкуЗапретаИзменения(Истина);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь); 

После проведения включил контроль:

УстановитьПривилегированныйРежим(Истина);  
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДатыЗапретаИзменения") Тогда
	МодульДатыЗапретаИзмененияСлужебный = ОбщегоНазначения.ОбщийМодуль("ДатыЗапретаИзмененияСлужебный");
	МодульДатыЗапретаИзмененияСлужебный.ПропуститьПроверкуЗапретаИзменения(Ложь);
КонецЕсли; 
УстановитьПривилегированныйРежим(Ложь);
28. Danila7Zz 17 15.06.22 13:38 Сейчас в теме
Конкретно в моем случае вышеуказанные способы не работали. ЗУП 3.1

Пришлось через доработку общего модуля, "ДатыЗапретаИзменения" обходить проверку при определенном условии - источник.

Т.Е. через доработку этого модуля можно отключить дату запрета для нужных регистров/документов и тд.
Либо прописать свои условия.

Вставайте отладкой на:
ПроверитьДатуЗапретаИзмененияПередЗаписью()
ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента()
ПроверитьДатуЗапретаИзмененияПередЗаписьюНабораЗаписей()
и пишите то, что вам нужно.
29. user1835472 17.10.22 14:24 Сейчас в теме
ДокументРеализация.ОбменДанными.Загрузка = Истина;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот