Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Запрет на проведение документов старше месяца

Запрет на проведение документов старше месяца
Я
   prilforreal
 
01.08.18 - 09:59
Доброго, Миста! Нужно запретить проводить любые документы старше месяца, можно ли сделать это не прописывая в каждом документе в процедуре ПередЗаписью отказ по условию, или хотя бы задать в модуле приложения эту процедуру и вызывать ее перед записью?

Процедурка такая:

Процедура ПроверкаДатыДокумента(Отказ, РежимЗаписи, РежимПроведения)
    
    ТекДата=ТекущаяДата();
    Если не СокрЛП(ПараметрыСеанса.ТекущийПользователь) = "Администратор" Тогда
    Если ЭтотОбъект.Дата<=ТекДата - 2592000 Тогда
            Если ЭтотОбъект.Проведен И РежимЗаписи=РежимЗаписиДокумента.Проведение Тогда
            Отказ=Истина;
            Предупреждение("Отказано в проведении, документ старше месяца!");
            Возврат;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;    
    
КонецПроцедуры
 
 
   Lexey_
 
1 - 01.08.18 - 10:06
(0) используй подписку на событие
   leonidk
 
2 - 01.08.18 - 10:10
(0) Подписки на события. И да, пользователи очень быстро научаться обходить этот код путем распроведения документов :)
   prilforreal
 
3 - 01.08.18 - 10:11
(2) Тогда уберу условие Если ЭтотОбъект.Проведен и им ничто не поможет =)
   prilforreal
 
4 - 01.08.18 - 10:12
(2) Можно и распроводить запретить
   prilforreal
 
5 - 01.08.18 - 10:12
(1) Ни разу с подписками на события не сталкивался
   strange2007
 
6 - 01.08.18 - 10:12
(0) Подписка перед записью и всё решено. После десятка таких разов, сам захочешь сделать небольшой модуль по автоматизации всех этих кусочков, чтобы потом вообще в конфигурации ничего не менять.

Да, в моих конфах уже стоит перед записью регистров, перед и при записи документов и справочников, при проведении документов и интерфейсные обработчики.

И да, перед записью если ставить контроль, то и распровести не смогут
   Lexey_
 
7 - 01.08.18 - 10:12
(5) пришло время
   Гобсек
 
8 - 01.08.18 - 10:14
(1) +100
   prilforreal
 
9 - 01.08.18 - 10:18
(1) (2) Спасибо!
   prilforreal
 
10 - 01.08.18 - 10:28
(6) Создал новый общий модуль, но недопонимаю синтаксис, почему то ругается на переменную ЭтотОбъект, процедуру использую ту же:


Процедура ПроверкаДатыДокумента(Отказ, РежимЗаписи, РежимПроведения) Экспорт
    
    ТекДата=ТекущаяДата();
    Если не СокрЛП(ПараметрыСеанса.ТекущийПользователь) = "Администратор" Тогда
    Если ЭтотОбъект.Дата<=ТекДата - 2592000 Тогда
            Если ЭтотОбъект.Проведен И РежимЗаписи=РежимЗаписиДокумента.Проведение Тогда
            Отказ=Истина;
            Предупреждение("Отказано в проведении, документ старше месяца!");
            Возврат;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;    
    
КонецПроцедуры
 
 Рекламное место пустует
   ildary
 
11 - 01.08.18 - 10:29
(10) вы бы доку для начала почитали, а если как всегда некогда и надо трясти - почитайте существующие подписки на события.
   prilforreal
 
12 - 01.08.18 - 10:34
(11) Я первую создаю=D
   ildary
 
13 - 01.08.18 - 10:35
(12) Гугл я понимаю Вам тоже заблокировали? Предпочитаете свой позор незнания на форум носить?
   prilforreal
 
14 - 01.08.18 - 10:47
(13) Нет, уже разобрался) Нетерпение и спешка овладели.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует