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


#0 by Asintelekt
Платформа – 1С:Предприятие 8.1 (8.1.14.72) Конфигурация - Зарплата и Управление Персоналом, редакция 2.5 (2.5.14.3) В конфигурации сделаны следующие настройки: 1)    Установлена даты запрета изменения данных (Сервис – Пользователи и права доступа – Установка даты запрета изменения данных). 2)    Дата запрета применяется для всех пользователей (Предприятие – Настройка параметров учета – Применять дату запрета для пользователей с «Полными правами» (Истина)). Есть пара документов, которые надо редактировать до даты запрета, какие есть варианты решения данной задачи? Заранее спасибо!
#1 by ТелепатБот
#2 by ZanderZ
из подписки на события убрать эти два документа
#3 by Asintelekt
Можно подробнее? Что за подписка на события?
#4 by ZanderZ
в конфигураторе сть подписки на события
#5 by Asintelekt
в подписи на событие "ПередЗаписьюДокументаДатаЗапретаРедактирования" убрал из источника нужные документы, а они все равно не редактикуются, что я делаю не так?
#6 by ZanderZ
ну они наверно еще и по регистрам делают движения...
#7 by Asintelekt
да, то есть прийдется отключать еще каждый регистр?:)
#8 by ZanderZ
там же в подписках у словие на документ поставь
#9 by Asintelekt
Может, я что-то не понял, но сделал так: После этого перестали проводиться новые документы:) + В других документах стала появляться ошибка из-за Источник.Отбор.Регистратор.Значение.Ссылка.Метаданные, так как не обнаружено поле "Отбор". Без понятия, что тут делать:(
#10 by 5 Элемент
Зачем код подписки ломать, если можно просто в свойствах подписки снять галку с нужного документа. А вот с регистрами сложнее ...
#11 by Asintelekt
так у меня тут код про регистры:) Поэтому и прошу помощь:) в доках снял галку
#12 by John83
какой еще отбор? о_О
#13 by asady
посмотри в сторону .... ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) ДополнительныеСвойства (AdditionalProperties) Использование: Только чтение. Описание: Тип: Структура. Может использоваться в тех случаях, когда необходимо хранить некоторые значения, связанные с объектом, на время выполнения некоторых операций, без изменения объекта. Например, при обработке событий в подписке на события. XML-сериализация.
#14 by Serg_1960
Разрешаю изменять дату запрета перед записью этих документов и восстанавливать значение после записи этих документов. Подпись: Я.
#15 by 5 Элемент
+ запрещаю это делать, т.к. снизится параллельность работы.
#16 by 5 Элемент
Хотя конечно где менять. Если в кэше менять, то нормально будет.
#17 by 5 Элемент
Точнее ее в кэше и нужно менять, т.к. из БД она берется только первый раз. Серж хорошую идею подкинул
#18 by Asintelekt
Можно код?:)
#19 by Asintelekt
Для документа "УвольненияИзОрганизаций" Источник.Метаданные.Имя = "ЗанятыеШтатныеЕдиницыОрганизаций" !!!, поэтому документ можно получить только Источник.Отбор.Регистратор.Значение.Ссылка.Метаданные. А некоторые документы прокатывают с "Источник.Метаданные.Имя"
#20 by Asintelekt
up
#21 by John83
может не так понимаю... сначала нужно сделать условие в ПередЗаписьюДокументаПроверкаДоступностиПериода( затем проверять регистры в ПередЗаписьюРегистраНакопленийПроверкаДоступностиПериода все нормально работает
#22 by Asintelekt
ПередЗаписьюДокументаПроверкаДоступностиПериода - не надо, тут просто из источника убрать документ. А в регистрах так и делал: В итоге ошибка при проведении:
#23 by John83
ну если ты так решил сделать, то отладчик в руки
#24 by Asintelekt
Предложите свой вариант в виже кода:)
#25 by John83
#26 by John83
в принципе у тебя идея интересная, т.к. не надо перебирать все нужные регистры, но еще раз говорю, что в таком случае надо отладчиком смотреть
#27 by John83
моя идея в принципе тоже рабочая, т.к. сначала идет отработка процедуры ОпределитьДоступностьВозможностьИзмененияДокументаПоДатеЗапрета если там есть условие на документ (а оно должно быть), то уже будет отказ
#28 by Asintelekt
Что-то в коде нету процедуры ОпределитьДоступностьВозможностьИзмененияДокументаПоДатеЗапрета
#29 by AndreYAN
А можно еще проще, правда опаснее :( Добавить привилегированный модуль с одной процедурой:
#30 by Asintelekt
Куда добавить данную процедуру и откуда ее вызывать?
#31 by AndreYAN
Добавить общий модуль с включенной галочкой "Привилегированный", но так делать ПЛОХО!
#32 by Kashemir
См. . Использование дополнительных свойств заметно упростят реализацию обхода запретов в отдельных случаях.
#33 by Asintelekt
раз на столько плохо, значит я пас:) можно пример?
#34 by Kashemir
Примерно так: в процедурах проверки перед собственно проверками ... ...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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