Блокировка данных по времени

1. KirsKay 11.09.19 11:37 Сейчас в теме
Подскажите, как можно сделать блокировку на определенное время, например, есть изменяемые данные в независимом регистре сведений, 2 измерения: Изм1 и Изм2, если значение Изм2 изменили, то он блокируется до 8 утра и потом снова становится доступен для изменения, как то так, не прошу готовое решение, просто совет нужен, как к этому проще всего подступиться и ещё, по идее если стоит периодичность в день, то изменения в регистре только один раз в день должны меняться или я что то не правильно понял?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Den75Ch 11.09.19 11:47 Сейчас в теме
Перед записью не пробовали код написать?
3. KirsKay 11.09.19 13:40 Сейчас в теме
(2)Еще момент, есть код на при открытии, которые ставит блокировку на изменение вне положенного времени, т.е. изменять данные можно только в том случае, если время не меньше 8 утра и не больше 11 утра, и получается, что при открытии всегда будет ставится блокировка, изменим мы изм2 проведем документ и если время позволяет снова сможем его изменить, а надо что он остался заблокирован до 8:00 следующего дня
4. Den75Ch 11.09.19 14:20 Сейчас в теме
тогда надо ставить запрет именно в документе, который делает движения. то есть тупо их не делать
5. KirsKay 11.09.19 14:48 Сейчас в теме
(4)Суть такова, есть склад, у него есть материально-ответственное лицо, есть документ перемещение материалов, например с одного склада на другой, соответственно, когда материал списывают с одного из складов, то за него отвечает МОЛ, но вот он типа заболел и его надо поменять на другого человека, менять надо в регистре сведений, но по условию менять можно только один раз в сутки в определенное время, т.е. по стандарту был Иванов, поменяли на Петрова, запись заблокировалась до 8 утра следующего дня и изменить её больше нельзя в этот день, как то так, блокировку на определенное время я то сделал, но как сделать, что бы потом, при повторном открытии, через минуту например, она не слетала
6. Den75Ch 11.09.19 14:53 Сейчас в теме
в коде же будет определенное условие по времени и по дню
7. KirsKay 11.09.19 15:54 Сейчас в теме
(6)да, но при открытии тоже исполняется код, он одну блокировку снимет другую поставит получается

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Блок();		
КонецПроцедуры

&НаСервере
Функция Блок() Экспорт
	Форма = Элементы.МатериальноОтветственноеЛицо;
    ЭтаФорма.ТолькоПросмотр = Истина;
	ДатаБлок = ТекущаяДата();
	ДатаБлок1 = НачалоДня(ДатаБлок)+28800; //8 утра
	ДатаБлок2 = НачалоДня(ДатаБлок)+39600; //11 утра	
	Если ЭтаФорма.Запись.МатериальноОтветственноеЛицо.Пустая() 
		Тогда ЭтаФорма.ТолькоПросмотр = Ложь;
		Иначе Если (ДатаБлок > ДатаБлок1 И ДатаБлок < ДатаБлок2) 
	              Тогда ЭтаФорма.ТолькоПросмотр = Ложь;
	              Иначе ЭтаФорма.ТолькоПросмотр = Истина
			  КонецЕсли;
		  КонецЕсли;
КонецФункции
Показать
8. Den75Ch 11.09.19 15:59 Сейчас в теме
что-то не понял ничего. может надо использовать время документа,а не текущую дату?
9. KirsKay 12.09.19 08:49 Сейчас в теме
(8)Почему время документа?
10. Den75Ch 12.09.19 09:39 Сейчас в теме
ваш код почему не работать не будет?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот