Дата запрета редактирования

Очень часто необходимо постоянно закрывать период для редактирования документов. Вот как я вышла из этой ситуации.

Очень часто необходимо постоянно закрывать период для редактирования документов. Вот как я вышла из этой ситуации:

Я создала в базе константу ДнейЗапрета, в которую занесла количество последних рабочих дней, за которые можно редактировать документы. В процедуру ПриНачалеРаботыСистемы() Поместила следующий отрывок программы:

ДатаЗапретаНадо = РабочаяДата();
Выходных = 0;
Для н = 1 по Константа.ДнейЗапрета + Цел(Окр(Константа.ДнейЗапрета/5)*2) Цикл
ПредДата = ДатаЗапретаНадо - 1;
Если НомерДняНедели(ПредДата) > 5 Тогда
Выходных = Выходных + 1;
КонецЕсли;
Если н < Константа.ДнейЗапрета + 1 Тогда
ДатаЗапретаНадо = ДатаЗапретаНадо - 1;
ИначеЕсли н - Выходных < Константа.ДнейЗапрета + 1 Тогда
ДатаЗапретаНадо = ДатаЗапретаНадо - 1;
КонецЕсли;
Если (н = Константа.ДнейЗапрета) и (Выходных = 0) Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Константа.ДатаЗапретаРедактирования = ДатаЗапретаНадо;

К количеству дней запрета прибавляем выходные (субботы и воскресенья) , но праздники не учитываются. Поэтому когда пользователь заходит в базу, то константа ДатаЗапретаРедактирования сама меняется, а меню Операции я для пользователей скрыла, чтобы не смогли поменять эту дату. Конечно, очень продвинутые пользователи могут сменить рабочую дату на компьютере, но в программу кто-то постоянно заходит, кто-то выходит, поэтому закрытие происходит постоянно. Мне это очень помогает: не надо самой все время лазить и закрывать период. И пользователей дисциплинирует. Они уже привыкли, что документы надо вносить оперативно и не затягивать. Если какие-то документы им все-таки нужно дольше редактировать, то для них можно отдельно создать еще одну константу и ее закрывать вручную.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *