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 Сейчас в теме
ваш код почему не работать не будет?
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день


Программисты 1С УТ / БУЗ/ЗУП / БИТ ФИНАНС
Москва
зарплата от 100 000 руб. до 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 150 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству