Уточнить настройку даты запрета при изменении.
Процедура УточнитьНастройкуДатыЗапретаПриИзменении(Контекст, РассчитатьДатуЗапрета = Истина) Экспорт
Если Контекст.ВыбранРасширенныйРежим Тогда
Если Контекст.ОписаниеДатыЗапрета = "" Тогда
Контекст.ДатаЗапрета = "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
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПриЗаполненииРазделовДатЗапретаИзменения (БСП)
РассчитанныеДатыЗапретаИзменения (БСП)
ОбновитьОтображениеДатыЗапретаПриИзменении (БСП)
Проверка даты запрета изменения данных
ОбновитьВерсиюДатЗапретаИзменения (БСП)
ПроверитьДатыЗапретаИзмененияЗагрузкиДанных (БСП)
УстановитьНачальнуюДатуЗапретаИзменения (БСП)