Популярно, доступно, полезно

Дата запрета редактирования документов 1с 7.7


Немного о константе «Дата запрета редактирования документов»

В 1С 7.7 есть такая константа — дата запрета редактирования документов. Что делает — понятно из названия.
Однако контролировать ее пользователь может только вручную зайдя в таблицу констант в 1с (пункт «Операции»->»Константы»).
То есть пользователь, обладающий достаточными правами, должен каждый день(неделю/месяц/год?) заходить и перетыкивать эту дату на нужную, дабы пользователи не правили старые документы (а как известно, что не запрещено, значит будут делать).
Ну просто оооочень удобно. Функциональная работа константы реализована, тут придраться не к чему. Функция вызывается при каждом открытии любого документа, если дата запрета редактирования больше или равна дате документа, то на форме устанавливается свойство «ТолькоПросмотр». Сия функция, если что, в глобальном модуле.

Автоматическая установка значения константы

На этом хватит разглагольствовать. Непосредственно, для того, чтобы менять эту крайне важную константу автоматически нам нужно внести изменения в конфигурацию. В глобальном модуле в процедуре «ПриНачалеРаботыСистемы» или «ПриЗавершенииРаботыСистемы» добавляем строки:
Если константа.ДатаЗапретаРедактирования < (ТекущаяДата()-1) Тогда
константа.ДатаЗапретаРедактирования = (ТекущаяДата()-1);
КонецЕсли;

А еще лучше, если подумать, добавить этот код в обе процедуры. Тогда:
а) первый вошедший в систему пользователь изменит дату запрета на правильную;
б) по завершению работы константа снова будет установлена в правильное значение, если вдруг забывчивый пользователь не вернул ее на место после редактирования.
В данном примере дата запрета устанавливается на вчерашний день, но вы можете, естественно, настроить на нужный вам день/неделю/месяц.

Разрешаем или запрещаем ручное редактирование даты запрета редактирования документов

Чтобы позволить определенным пользователям менять эту константу, опять же можно в глобальном модуле добавить следующий код:
Процедура ПриЗаписиКонстанты(ИмяКонстанты, Значение)
Если ИмяКонстанты="ДатаЗапретаРедактирования" Тогда
Если (ИмяПользователя()<>"Администратор") Тогда
Предупреждение("У вас нет прав на запись константы");
СтатусВозврата(0);
КонецЕсли;
КонецЕсли;
//далее стандартные условия
КонецПроцедуры

Или можно пойти другим путем и создать копию интерфейса для пользователей, где просто напросто отсутствует данный пункт в меню.

Если у вас вдруг появятся вопросы по какому-либо пункту, не стесняйтесь, пишите в комментариях и вам обязательно помогут)

Добавить комментарий

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