Подскажите, как можно сделать блокировку на определенное время, например, есть изменяемые данные в независимом регистре сведений, 2 измерения: Изм1 и Изм2, если значение Изм2 изменили, то он блокируется до 8 утра и потом снова становится доступен для изменения, как то так, не прошу готовое решение, просто совет нужен, как к этому проще всего подступиться и ещё, по идее если стоит периодичность в день, то изменения в регистре только один раз в день должны меняться или я что то не правильно понял?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)Еще момент, есть код на при открытии, которые ставит блокировку на изменение вне положенного времени, т.е. изменять данные можно только в том случае, если время не меньше 8 утра и не больше 11 утра, и получается, что при открытии всегда будет ставится блокировка, изменим мы изм2 проведем документ и если время позволяет снова сможем его изменить, а надо что он остался заблокирован до 8:00 следующего дня
(4)Суть такова, есть склад, у него есть материально-ответственное лицо, есть документ перемещение материалов, например с одного склада на другой, соответственно, когда материал списывают с одного из складов, то за него отвечает МОЛ, но вот он типа заболел и его надо поменять на другого человека, менять надо в регистре сведений, но по условию менять можно только один раз в сутки в определенное время, т.е. по стандарту был Иванов, поменяли на Петрова, запись заблокировалась до 8 утра следующего дня и изменить её больше нельзя в этот день, как то так, блокировку на определенное время я то сделал, но как сделать, что бы потом, при повторном открытии, через минуту например, она не слетала
(6)да, но при открытии тоже исполняется код, он одну блокировку снимет другую поставит получается
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Блок();
КонецПроцедуры
&НаСервере
Функция Блок() Экспорт
Форма = Элементы.МатериальноОтветственноеЛицо;
ЭтаФорма.ТолькоПросмотр = Истина;
ДатаБлок = ТекущаяДата();
ДатаБлок1 = НачалоДня(ДатаБлок)+28800; //8 утра
ДатаБлок2 = НачалоДня(ДатаБлок)+39600; //11 утра
Если ЭтаФорма.Запись.МатериальноОтветственноеЛицо.Пустая()
Тогда ЭтаФорма.ТолькоПросмотр = Ложь;
Иначе Если (ДатаБлок > ДатаБлок1 И ДатаБлок < ДатаБлок2)
Тогда ЭтаФорма.ТолькоПросмотр = Ложь;
Иначе ЭтаФорма.ТолькоПросмотр = Истина
КонецЕсли;
КонецЕсли;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот