УточнитьНастройкуДатыЗапретаПриИзменении (БСП)

Автор: 1С
ОбщийМодуль.ДатыЗапретаИзмененияСлужебныйКлиентСервер
БСП

Уточнить настройку даты запрета при изменении.

Процедура УточнитьНастройкуДатыЗапретаПриИзменении(Контекст, РассчитатьДатуЗапрета = Истина) Экспорт
	
	Если Контекст.ВыбранРасширенныйРежим Тогда
		Если Контекст.ОписаниеДатыЗапрета = "" Тогда
			Контекст.ДатаЗапрета = "00010101";
		КонецЕсли;
	Иначе
		Если Контекст.ДатаЗапрета <> '00010101' И Контекст.ОписаниеДатыЗапрета = "" Тогда
			Контекст.ОписаниеДатыЗапрета = "ПроизвольнаяДата";
			
		ИначеЕсли Контекст.ДатаЗапрета = '00010101' И Контекст.ОписаниеДатыЗапрета = "ПроизвольнаяДата" Тогда
			Контекст.ОписаниеДатыЗапрета = "";
		КонецЕсли;
	КонецЕсли;
	
	Контекст.ТекстНадписиОтносительнойДатыЗапрета = "";
	
	Если Контекст.ОписаниеДатыЗапрета = "ПроизвольнаяДата" Или Контекст.ОписаниеДатыЗапрета = "" Тогда
		Контекст.КоличествоДнейРазрешения = 0;
		Возврат;
	КонецЕсли;
	
	РасчетныеДатыЗапрета = РасчетДатыЗапрета(
		Контекст.ОписаниеДатыЗапрета, Контекст.НачалоДня);
	
	Если РассчитатьДатуЗапрета Тогда
		Контекст.ДатаЗапрета = РасчетныеДатыЗапрета.Текущая;
	КонецЕсли;
	
	ТекстНадписи = "";
	
	Если Контекст.РазрешитьИзменениеДанныхДоДатыЗапрета Тогда
		Сутки = 60*60*24;
		
		СкорректироватьКоличествоДнейРазрешения(
			Контекст.ОписаниеДатыЗапрета, Контекст.КоличествоДнейРазрешения);
		
		СрокРазрешения = РасчетныеДатыЗапрета.Текущая + Контекст.КоличествоДнейРазрешения * Сутки;
		
		Если Контекст.НачалоДня > СрокРазрешения Тогда
			ТекстНадписи = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'Запрещен ввод и редактирование данных за все прошлые периоды 
					|по %1 включительно (%2).
					|Отсрочка, разрешавшая ввод и редактирование данных 
					|за период с %3 по %4, истекла %5.'"),
				Формат(Контекст.ДатаЗапрета, "ДЛФ=Д"), НРег(ОписанияДатЗапрета()[Контекст.ОписаниеДатыЗапрета]),
				Формат(РасчетныеДатыЗапрета.Предыдущая + Сутки, "ДЛФ=Д"), Формат(РасчетныеДатыЗапрета.Текущая, "ДЛФ=Д"),
				Формат(СрокРазрешения, "ДЛФ=Д"));
		Иначе
			Если РассчитатьДатуЗапрета Тогда
				Контекст.ДатаЗапрета = РасчетныеДатыЗапрета.Предыдущая;
			КонецЕсли;
			ТекстНадписи = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = '• По %1 включительно запрещен ввод и редактирование данных
					|  за все прошлые периоды по %2
					|  и действует отсрочка, разрешающая ввод и редактирование данных 
					|  за период с %4 по %5;
					|• С %6 начнет действовать запрет на ввод и редактирование данных
					|  за все прошлые периоды по %5 (%3).'"),
					Формат(СрокРазрешения, "ДЛФ=Д"), Формат(Контекст.ДатаЗапрета, "ДЛФ=Д"), НРег(ОписанияДатЗапрета()[Контекст.ОписаниеДатыЗапрета]),
					Формат(РасчетныеДатыЗапрета.Предыдущая + Сутки, "ДЛФ=Д"),  Формат(РасчетныеДатыЗапрета.Текущая, "ДЛФ=Д"), 
					Формат(СрокРазрешения + Сутки, "ДЛФ=Д"));
		КонецЕсли;
	Иначе 
		Контекст.КоличествоДнейРазрешения = 0;
		ТекстНадписи = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = 'Запрещен ввод и редактирование данных за все прошлые периоды
			           |по %1 (%2)'"),
			Формат(Контекст.ДатаЗапрета, "ДЛФ=Д"), НРег(ОписанияДатЗапрета()[Контекст.ОписаниеДатыЗапрета]));
	КонецЕсли;
	
	Контекст.ТекстНадписиОтносительнойДатыЗапрета = ТекстНадписи;
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ПриЗаполненииРазделовДатЗапретаИзменения (БСП)

РассчитанныеДатыЗапретаИзменения (БСП)

ОбновитьОтображениеДатыЗапретаПриИзменении (БСП)

Проверка даты запрета изменения данных

ОбновитьВерсиюДатЗапретаИзменения (БСП)

ПроверитьДатыЗапретаИзмененияЗагрузкиДанных (БСП)

УстановитьНачальнуюДатуЗапретаИзменения (БСП)

НайденЗапретИзмененияДанных (БСП)

ПропуститьПроверкуДатЗапрета (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз